是否可以使用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")
答案 0 :(得分:1)
可能你已经找到了解决方案,但无论如何,这可能仍然很有趣。我最近添加了一个选项,通过一个包含各种设置的单独的Python脚本在我们的项目中显式指定Fortran编译器,并根据需要填充它。我将此bench_compiler.py与wscript放在一起,并在配置步骤中设置选项--bench时调用它。
最好的选择是让编译器支持上游。