[Scons-users] SWIG

William Blevins wblevins001 at gmail.com
Wed Mar 11 01:09:07 EDT 2015


Nevermind there was a link included.  I am used to gettings attachments.

Sorry,
William

On Wed, Mar 11, 2015 at 1:04 AM, William Blevins <wblevins001 at gmail.com>
wrote:

> You haven't supplied enough context.  This is most likely specific to your
> SConscript calls.  Can you please include your script?
>
> V/R,
> William
>
> On Wed, Mar 11, 2015 at 12:57 AM, William Roberts <
> bill.c.roberts at gmail.com> wrote:
>
>> FYI my work is here:
>> https://bitbucket.org/miniat/0x1-miniat/branch/swig-python
>>
>>
>> On Tue, Mar 10, 2015 at 8:56 PM, Bill Deegan <bill at baddogconsulting.com>
>> wrote:
>>
>>> William,
>>>
>>> If you want more control, you might break out.
>>>
>>> xyz=
>>> env.SharedObject('targetdir/file','sourcefile.i',SWIGFLAGS=['-python',
>>> '-outdir', 'out/lib'])
>>> And then use all or part of xyz
>>>
>>> Also note that all builders should be treated as if they return a list
>>> of Node objects.
>>> So your:
>>> return [l, x]
>>>
>>> Should likely be:
>>> return l+x
>>>
>>
>> doesn't scons internally flatten nested lists? Although, concatenating is
>> probably the better way, as you suggest.
>>
>> I seem to get some weird issues when I run scons without any modfications
>> to any files, it reruns swig and I see the following issues:
>>
>> scons: warning: Two different environments were specified for target
>> src/miniat_wrap.os,
>> but they appear to have the same action: $SHCC -o $TARGET -c $SHCFLAGS
>> $SHCCFLAGS $_CCCOMCOM $SOURCES
>> File "/home/bill/workspace/miniat/SConstruct", line 96, in
>> buildSharedLibrary
>> Executing script: /home/bill/workspace/miniat/out/vm/test
>> Executing script: /home/bill/workspace/miniat/out/tools/mash
>> Executing script: /home/bill/workspace/miniat/out/peripherals/debugger
>> Executing script: /home/bill/workspace/miniat/out/peripherals/simple_kb
>> Executing script: /home/bill/workspace/miniat/out/peripherals/simple_term
>> scons: done reading SConscript files.
>> scons: Building targets ...
>> swig -o out/vm/src/miniat_wrap.c -python -outdir out/lib
>> out/vm/src/miniat.i
>> LD out/vm/libminiat.so
>> CP out/lib/libminiat.so
>> LD out/system/console/miniat_console
>>
>> It also somehow ends up modifying the libminiat.so library to include
>> swig python stuff that it didn't include in that so on the first build.
>> If you use nm to dump the symbols
>>
>> First Run, builds and links fine:
>> $ nm out/lib/libminiat.so | grep swig
>> <no output>
>>
>> run scons again, see the issues noted above, and the check the library:
>> $ nm out/lib/libminiat.so | grep swig
>> 0000000000213740 d _swigc__p_char
>> 0000000000213780 d _swigc__p_miniat
>>
>> It seems to be getting confused.
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>>
>>> -Bill
>>>
>>> On Tue, Mar 10, 2015 at 6:07 PM, William Roberts <
>>> bill.c.roberts at gmail.com> wrote:
>>>
>>>>
>>>>
>>>> On Tue, Mar 10, 2015 at 6:03 PM, William Roberts <
>>>> bill.c.roberts at gmail.com> wrote:
>>>>
>>>>> So I have a heiarchical biuld going on, my SConstruct defines this
>>>>> method that is exported to my SConscripts
>>>>>
>>>>> def buildSharedLibrary(*args, **kwargs):
>>>>>         l = env.SharedLibrary(*args, **kwargs)
>>>>>         x = env.Install(libdir, l)
>>>>>         return [l, x]
>>>>>
>>>>> So all my shared libraries end up in out/lib
>>>>>
>>>>> I am currently trying to make a swig wrapper, and my SConstruct
>>>>> defines:
>>>>>
>>>>> buildSharedLibrary('_miniat.so', 'src/miniat.i', LIBS=['miniat'],
>>>>> CPPPATH=[ INC, distutils.sysconfig.get_python_inc() ], SHLIBPREFIX="",
>>>>> SWIGFLAGS=['-python'])
>>>>>
>>>>> Which builds the wrapper into a shared object just fine. However, swig
>>>>> outputs a generated python file at:
>>>>> ./out/vm/src/miniat.py
>>>>>
>>>>> What I am trying to do, is get SCons to install this into the
>>>>> SharedLibrary directory, but it doesn't seem to be ommited here:
>>>>> l = env.SharedLibrary(*args, **kwargs)
>>>>>
>>>>> How can I get that generated file output where I want it?
>>>>>
>>>>>
>>>>>
>>>> As usual, just after I sent I found what I was looking for:
>>>>
>>>> buildSharedLibrary('_miniat.so', 'src/miniat.i', LIBS=['miniat'],
>>>> CPPPATH=[ INC, distutils.sysconfig.get_python_inc() ], SHLIBPREFIX="",
>>>> SWIGFLAGS=['-python', '-outdir', 'out/lib'])
>>>>
>>>> But is this the best way?
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>> --
>>>>> Respectfully,
>>>>>
>>>>> William C Roberts
>>>>>
>>>>>
>>>>
>>>>
>>>> --
>>>> Respectfully,
>>>>
>>>> William C Roberts
>>>>
>>>>
>>>> _______________________________________________
>>>> Scons-users mailing list
>>>> Scons-users at scons.org
>>>> https://pairlist4.pair.net/mailman/listinfo/scons-users
>>>>
>>>>
>>>
>>> _______________________________________________
>>> Scons-users mailing list
>>> Scons-users at scons.org
>>> https://pairlist4.pair.net/mailman/listinfo/scons-users
>>>
>>>
>>
>>
>> --
>> Respectfully,
>>
>> William C Roberts
>>
>>
>> _______________________________________________
>> Scons-users mailing list
>> Scons-users at scons.org
>> https://pairlist4.pair.net/mailman/listinfo/scons-users
>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://pairlist4.pair.net/pipermail/scons-users/attachments/20150311/8695b054/attachment.html>


More information about the Scons-users mailing list