Waf: укажите имя библиотеки для расширений Python
Сборка библиотек с помощью waf - это хорошо, и мне нравится lib<targetname>
схема именования. Но когда я использую это с boost:: python, я бы хотел избавиться от него: я бы хотел, чтобы имя библиотеки было таким же, как имя цели. Это просто простое переименование, я знаю, но: могу ли я сказать, что ваф не нужно ставить lib
перед целевым именем (альтернативно: укажите собственное имя, которое остается нетронутым)?
1 ответ
Хорошо понял. Эта функция может быть включена с помощью python
инструмент, найденный здесь: http://docs.waf.googlecode.com/git/apidocs_16/tools/python.html
Главное, зовет conf.init_pyext()
и в директиве сборки для общей библиотеки, указывающей features='pyext'
:
def options(opt):
opt.load('python')
def configure(conf):
conf.load('python')
conf.check_python_version((2,4,2))
conf.check_python_headers()
def build(bld):
bld.shlib(
features = 'pyext',
source = "mymodule.cpp",
target = "myfoo",
use = "PYTHON BOOST_PYTHON")
Теперь в каталоге сборки находится общая библиотека myfoo.so
который может быть непосредственно import
редактор