Как я могу использовать Scons для создания примера SWIG lua? - PullRequest
0 голосов
/ 28 сентября 2010

Я пытаюсь написать скрипт SCons для сборки примера lua / embed3, распространяемого с помощью swig.Инструкции по сборке с помощью make-файла выглядят следующим образом:

swig -c++ -lua -external-runtime swigluarun.h
swig -c++ -lua -module example -o example_wrap.cpp example.i
g++ -o embed3 embed3.cpp example_wrap.cpp example.cpp \
    -llua5.1 -I/usr/include/lua5.1

В вики Scons сказано, что Scons имеет встроенную поддержку Swig.Добавление файла .i в список источников должно помочь, однако я не могу найти подробного описания того, как этот сценарий может быть реализован.

Следующий скрипт собирает lua / simple project на примерах swig.Однако я не могу найти, как выполнить первую директиву swig, приведенную в моем вопросе.Спасибо за ответ.

env = Environment()

env.Append( SWIGFLAGS = '-lua' )
env.Append( CPPPATH = '/usr/include/lua5.1' )
env.Append( LIBS = 'lua5.1' )

env.SharedLibrary( target = 'example.so', 
                   source = ['example.c', 'example.i' ], SHLIBPREFIX='' )

Заранее спасибо.

Ответы [ 2 ]

1 голос
/ 28 сентября 2010

Вы пробовали / видели этот пример сценария :

import distutils.sysconfig
env = Environment(SWIGFLAGS=['-python'],
                  CPPPATH=[distutils.sysconfig.get_python_inc()],
                  SHLIBPREFIX="")
env.SharedLibrary('_example.so', ['example.c', 'example.i'])

Еще несколько интересных деталей в этом сообщении в блоге .

0 голосов
/ 28 сентября 2010

Благодаря руководству Элая, это единственный способ найти сценарий для реализации. Любые улучшения приветствуются.

env = Environment()

swigCmdLine = 'swig -c++ -lua -external-runtime swigluarun.h'
swigDefs = env.Command( 'swigluarun.h', '', swigCmdLine )
env.Depends( 'embed3', swigDefs )
env.Append( SWIGFLAGS = '-c++ -lua' )
env.Append( CPPPATH = '/usr/include/lua5.1' )
env.Append( LIBS = 'lua5.1' )
env.Program( 'embed3', ['embed3.cpp', 'example.cpp', 'example.i' ] )

Примечание: я работаю над Ubuntu 9.10, swig-1.3.36 и scons 1.3.0.

...