如何在SCons中检查g ++是否支持c ++ 14/17?

时间:2018-09-13 12:49:53

标签: c++11 compilation g++ c++14 scons

我正在使用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中做到这一点?

1 个答案:

答案 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()