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

问题描述 投票:1回答:1

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

c++11 compilation g++ c++14 scons
1个回答
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()
© www.soinside.com 2019 - 2024. All rights reserved.