Способ работы scan-build
заключается в том, что он устанавливает различные переменные среды, которые обычно используются системами сборки (например, make
) для управления процессом сборки.Вот некоторые из них:
CC
- имя программы для использования в качестве компилятора C CXX
- имя программы для использования в качестве компилятора C ++ CCC_*
- различные переменные среды, которые управляют поведением статического анализатора Clang
SCons обычно очищает среду перед запуском сборки (это функция).Чтобы приведенные выше переменные среды вступили в силу, сделайте что-то подобное в SConstruct
:
env = Environment()
env["CC"] = os.getenv("CC") or env["CC"]
env["CXX"] = os.getenv("CXX") or env["CXX"]
env["ENV"].update(x for x in os.environ.items() if x[0].startswith("CCC_"))