clang scons clang-static-analyzer scan-build

¿Cómo puedo hacer que el trabajo "scan-build" de Clang con SCons?



clang-static-analyzer (1)

Tengo un proyecto creado con SCons y estoy tratando de usar el analizador estático Clang para analizar el código. Sin embargo, cuando se ejecuta

scan-build scons

SCons parece ignorar las configuraciones introducidas por scan-build . ¿Cómo puedo hacer este trabajo?


La forma scan-build funciona la scan-build es que configura varias variables de entorno que normalmente utilizan los sistemas de creación (como make ) para controlar cómo se realiza la creación. Algunos de estos son:

  • CC - nombre del programa para usar como compilador C
  • CXX - nombre del programa para usar como compilador de C ++
  • CCC_* - varias variables de entorno que controlan el comportamiento del analizador estático de Clang

SCons normalmente limpia el entorno antes de ejecutar una compilación (esta es una característica). Para que las variables de entorno anteriores tengan efecto, haga algo como esto en 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_"))