我正在使用scons作为构建系统。
我的一些代码用于cpp14和cpp17。它们位于“ newcpp”之类的文件夹中。我希望我的SConstruct / Sconscript可以检查我的g ++是否支持这些标志,如下所示的伪代码:
import os,sys
env = Environment(ENV = {'PATH' : os.environ['PATH']})
if [CXX_SUPPORTS('-std=c++14')]
env.SConscript(dirs=['newcpp'])
我知道automake / configure支持这种检查。如何在scons中做到这一点?
答案 0 :(得分:1)
您最有可能要使用“配置上下文”。 请参阅《用户指南》的本节 https://scons.org/doc/production/HTML/scons-user/ch23.html
手册页的这一部分: https://scons.org/doc/production/HTML/scons-man.html#configure_contexts
您可能想要这样的东西:
env = Environment(CFLAGS='-std=c++14')
conf = Configure(env)
if conf.CheckCXX():
print("Yes CXX14")
env.SConscript(dirs=['newcpp'])
env = conf.Finish()