I've got a project built with SCons and I'm trying to use the Clang Static Analyzer to analyze the code. However, when running
scan-build scons
SCons seems to ignore the settings introduced by scan-build
. How can I make this work?
scan-build has little or no knowledge about how you build your code. It works by overriding the CC and CXX environment variables to (hopefully) change your build to use a "fake" compiler instead of the one that would normally build your project.
The static analyzer is a tool in Xcode that can discover bugs by analyzing the source code without running it, so it can reveal bugs, even before you do testing and quality assurance of your app.
The way scan-build
works is it sets up various environment variables that are usually used by build systems (such as make
) to control how the build happens. Some of these are:
CC
- name of program to use as C compilerCXX
- name of program to use as C++ compilerCCC_*
- various environment variables that control the behaviour of Clang's static analyzerSCons normally cleans out the environment before running a build (this is a feature). In order to make the above environment variables take effect, do something like this in 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_"))
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With