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редактор

Другие вопросы по тегам