Waf:为python扩展指定库名

时间:2012-01-23 20:00:27

标签: python waf

使用waf构建库很不错,我喜欢lib<targetname>命名方案。但是当我使用boost :: python时,我想摆脱它:我希望librarie的名字就像目标名称。这只是一个简单的重命名,我知道,但是:我可以告诉waf不要在目标名称之前放置lib(或者:指定一个保持不变的自己的名字)?

1 个答案:

答案 0 :(得分:3)

好的,明白了。可以使用python工具启用此功能,该工具位于:http://docs.waf.googlecode.com/git/apidocs_16/tools/python.html#module-waflib.Tools.python

重点是调用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编辑。