在waf中支持任意用户指定的编译器

时间:2014-08-26 14:17:45

标签: waf

是否可以使用waf提供常规编译器支持?假设,我下载了一个使用waf构建系统的软件包,并希望用编译器编译它,该软件包的作者由于某些原因不知道/不支持/不支持。有没有办法使用这个编译器来构建软件包而无需为它编写额外的python模块?

例如,对于测试(Fortran)项目,尝试

FC=nagfor waf configure

结果

could not configure a fortran compiler!

虽然编译器在我的系统上可用。 (我知道理论上可以在waf中启用nagfor支持,但问题是关于软件包作者没有明确考虑的编译器。)测试项目的wscript是以下简单的:

top = "."
build = "build"

def options(opt):
    opt.load("compiler_fc")

def configure(conf):
    conf.load("compiler_fc")

def build(bld):
    bld(
        features="fc fcprogram",
        source="schrodinger.f90",
        target="schrodinger",
        use=[ "schlib" ])

    bld.stlib(
        features="fc",
        source=[ "calculator.f90", "output.f90", "lapack_interface.f90",
                 "spline.f90", "accuracy.f90", ],
        target="schlib")

1 个答案:

答案 0 :(得分:1)

可能你已经找到了解决方案,但无论如何,这可能仍然很有趣。我最近添加了一个选项,通过一个包含各种设置的单独的Python脚本在我们的项目中显式指定Fortran编译器,并根据需要填充它。我将此bench_compiler.pywscript放在一起,并在配置步骤中设置选项--bench时调用它。

最好的选择是让编译器支持上游。