diff options
author | Jan Vorlicek <janvorli@microsoft.com> | 2019-03-07 17:31:39 -0800 |
---|---|---|
committer | Jan Vorlicek <janvorli@microsoft.com> | 2019-03-08 01:42:37 -0800 |
commit | 7b7f8ec1e3f974a43e96c3f01cb0d5a2da913e17 (patch) | |
tree | c29f73feb1e13e724e3019178f28560a3ae60b8e /build.sh | |
parent | 98cd595b35ced3adb6efe0c667f5160f21067e0b (diff) | |
download | coreclr-7b7f8ec1e3f974a43e96c3f01cb0d5a2da913e17.tar.gz coreclr-7b7f8ec1e3f974a43e96c3f01cb0d5a2da913e17.tar.bz2 coreclr-7b7f8ec1e3f974a43e96c3f01cb0d5a2da913e17.zip |
Enable build with clang static analyzer
As part of LLVM, there is a clang static analyzer tool that provides
useful analysis of potential issues in the source code base.
This change enables building coreclr with that analyzer enabled.
Diffstat (limited to 'build.sh')
-rwxr-xr-x | build.sh | 20 |
1 files changed, 17 insertions, 3 deletions
@@ -61,6 +61,7 @@ usage() echo "-msbuildonunsupportedplatform - build managed binaries even if distro is not officially supported." echo "-numproc - set the number of build processes." echo "-portablebuild - pass -portablebuild=false to force a non-portable build." + echo "-staticanalyzer - build with clang static analyzer enabled." exit 1 } @@ -276,11 +277,15 @@ build_native() # Regenerate the CMake solution if [[ $__GccBuild == 0 ]]; then - echo "Invoking \"$__ProjectRoot/src/pal/tools/gen-buildsys-clang.sh\" \"$__ProjectRoot\" $__ClangMajorVersion \"$__ClangMinorVersion\" $platformArch $__BuildType $__CodeCoverage $generator $extraCmakeArguments $__cmakeargs" - "$__ProjectRoot/src/pal/tools/gen-buildsys-clang.sh" "$__ProjectRoot" $__ClangMajorVersion "$__ClangMinorVersion" $platformArch $__BuildType $__CodeCoverage $generator "$extraCmakeArguments" "$__cmakeargs" + scan_build= + if [[ $__StaticAnalyzer == 1 ]]; then + scan_build=scan-build + fi + echo "Invoking \"$__ProjectRoot/src/pal/tools/gen-buildsys-clang.sh\" \"$__ProjectRoot\" $__ClangMajorVersion \"$__ClangMinorVersion\" $platformArch $__BuildType $__CodeCoverage $scan_build $generator $extraCmakeArguments $__cmakeargs" + source "$__ProjectRoot/src/pal/tools/gen-buildsys-clang.sh" "$__ProjectRoot" $__ClangMajorVersion "$__ClangMinorVersion" $platformArch $__BuildType $__CodeCoverage $scan_build $generator "$extraCmakeArguments" "$__cmakeargs" else echo "Invoking \"$__ProjectRoot/src/pal/tools/gen-buildsys-gcc.sh\" \"$__ProjectRoot\" $__GccMajorVersion \"$__GccMinorVersion\" $platformArch $__BuildType $__CodeCoverage $generator $extraCmakeArguments $__cmakeargs" - "$__ProjectRoot/src/pal/tools/gen-buildsys-gcc.sh" "$__ProjectRoot" "$__GccMajorVersion" "$__CGccMinorVersion" $platformArch $__BuildType $__CodeCoverage $generator "$extraCmakeArguments" "$__cmakeargs" + source "$__ProjectRoot/src/pal/tools/gen-buildsys-gcc.sh" "$__ProjectRoot" "$__GccMajorVersion" "$__CGccMinorVersion" $platformArch $__BuildType $__CodeCoverage $generator "$extraCmakeArguments" "$__cmakeargs" fi popd fi @@ -299,6 +304,10 @@ build_native() # Check that the makefiles were created. pushd "$intermediatesForBuild" + if [ $__StaticAnalyzer == 1 ]; then + buildTool="$SCAN_BUILD_COMMAND $buildTool" + fi + echo "Executing $buildTool install -j $__NumProc" $buildTool install -j $__NumProc @@ -649,6 +658,7 @@ __BuildManagedTools=1 __SkipRestoreArg="" __SignTypeArg="" __OfficialBuildIdArg="" +__StaticAnalyzer=0 # Get the number of processors available to the scheduler # Other techniques such as `nproc` only get the number of @@ -937,6 +947,10 @@ while :; do __OfficialBuildIdArg="/p:OfficialBuildId=$__Id" ;; + -staticanalyzer) + __StaticAnalyzer=1 + ;; + --) # Skip -Option=Value style argument passing ;; |