[Scons-users] SWIG

William Blevins wblevins001 at gmail.com
Wed Mar 11 01:39:18 EDT 2015


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


More information about the Scons-users mailing list