[Scons-users] SWIG

William Roberts bill.c.roberts at gmail.com
Wed Mar 11 00:57:57 EDT 2015


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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://pairlist4.pair.net/pipermail/scons-users/attachments/20150310/fed4bc4c/attachment.html>


More information about the Scons-users mailing list