[Scons-users] SWIG

William Roberts bill.c.roberts at gmail.com
Wed Mar 11 01:42:05 EDT 2015


absolutely, sorry about that. It appears that it concatenates variant
directory with output directory which causes the
file not to be found.

scons: Building targets ...
scons: building `out/vm/out/lib/miniat.py' because it doesn't exist
swig -o out/vm/src/miniat_wrap.c -outdir "out/lib" -python
out/vm/src/miniat.i
scons: done building targets.


On Tue, Mar 10, 2015 at 10:39 PM, William Blevins <wblevins001 at gmail.com>
wrote:

> Can you use debug=explain please?  We need finite state descriptions to
> accompany issues or we cannot help ;)
>
> V/R,
> William
>
> On Wed, Mar 11, 2015 at 1:37 AM, William Roberts <bill.c.roberts at gmail.com
> > wrote:
>
>> I used the filtered glob from here to correct the pickup of the generated
>> wrap.c file:
>>
>> http://stackoverflow.com/questions/12518715/how-do-i-filter-an-scons-glob-result
>>
>> However, it appears that the builder doesn't handle detecting changes
>> properly, and
>> always builds the wrapper file...
>>
>> Executing script: /home/bill/workspace/miniat/out/peripherals/simple_term
>> scons: done reading SConscript files.
>> scons: Building targets ...
>> SWIG out/vm/src/miniat_wrap.c
>> scons: done building targets.
>>
>>
>> On Tue, Mar 10, 2015 at 10:30 PM, William Roberts <
>> bill.c.roberts at gmail.com> wrote:
>>
>>> looks like the Glob(src/*.c) is picking up the miniat_wrap.c file that
>>> was generated by swig in the working directory.
>>>
>>> On Tue, Mar 10, 2015 at 10:09 PM, William Blevins <wblevins001 at gmail.com
>>> > wrote:
>>>
>>>> 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
>>>>>>
>>>>>>
>>>>>
>>>>
>>>> _______________________________________________
>>>> Scons-users mailing list
>>>> Scons-users at scons.org
>>>> https://pairlist4.pair.net/mailman/listinfo/scons-users
>>>>
>>>>
>>>
>>>
>>> --
>>> 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/8f71f017/attachment-0001.html>


More information about the Scons-users mailing list