[cfe-dev] Intercepting environment variables set by xcodebuild and passing them to static analyzer
kremenek at apple.com
Thu Nov 6 01:44:28 CST 2008
On Nov 5, 2008, at 10:22 PM, Nikita Zhuk <nikita at zhuk.fi> wrote:
> On 6.11.2008, at 3.04, Ted Kremenek wrote:
>> All environment variables that xcodebuild sets should be observable
>> by the clang process. Using getenv() within your analysis code
>> should be a portable solution for accessing those values. Does
>> that not work?
> It doesn't seem to work, or I'm doing something wrong :). For
> example, the following line, when inserted into static analyzer,
> prints "TARGET_NAME env variable is set: 0":
> fprintf(stderr, "TARGET_NAME env variable is set: %d\n",
> getenv("TARGET_NAME") != NULL);
> Although xcodebuild does set the TARGET_NAME when compiling (I dump
> all env variables from xcodebuild with a Run Script Phase).
It's entirely possible that xcodebuild only sets these environment
variables for child processes that execute during the Run Script
Phase, and not when the compiler is invoked. I honestly don't know.
> The only env variables related to compiling I see from the clang
> process are CCC_ANALYZER_ANALYSIS, LDPLUSPLUS, CCC_ANALYZER_HTML,
> CLANG and CC.
These environment variables are set by scan-build, which (when running
the analyzer) is a parent process of xcodebuild. This is what makes
me suspect that xcodebuild isn't setting any special environment
variables when invoking the compiler.
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the cfe-dev