如何检查 g++ 在 SCons 中是否支持 c++14/17?
How to check if g++ supports c++14/17 in 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中实现?
您很可能想使用配置上下文。
请参阅用户指南的这一部分
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()
我正在使用 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中实现?
您很可能想使用配置上下文。 请参阅用户指南的这一部分 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()