Как проверить, поддерживает ли g ++ c ++ 14/17 в SCons? - PullRequest
0 голосов
/ 13 сентября 2018

Я использую 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 голосов
/ 16 сентября 2018

Скорее всего, вы хотите использовать Настроить контексты.См. Этот раздел руководства пользователя 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()
...