Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(221)

Side by Side Diff: build/toolchain/mac/BUILD.gn

Issue 2617283002: Add Clang static analyzer to Clang toolchain defs in GN (Closed)
Patch Set: rebase Created 3 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « build/toolchain/gcc_toolchain.gni ('k') | build/toolchain/wrapper_utils.py » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 # Copyright (c) 2013 The Chromium Authors. All rights reserved. 1 # Copyright (c) 2013 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be 2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file. 3 # found in the LICENSE file.
4 4
5 # TODO(brettw) Use "gcc_toolchain.gni" like the Linux toolchains. This requires 5 # TODO(brettw) Use "gcc_toolchain.gni" like the Linux toolchains. This requires
6 # some enhancements since the commands on Mac are slightly different than on 6 # some enhancements since the commands on Mac are slightly different than on
7 # Linux. 7 # Linux.
8 8
9 import("../goma.gni") 9 import("../goma.gni")
10 import("//build/config/clang/clang.gni") 10 import("//build/config/clang/clang.gni")
11 if (is_ios) { 11 if (is_ios) {
12 import("//build/config/ios/ios_sdk.gni") 12 import("//build/config/ios/ios_sdk.gni")
13 } 13 }
14 import("//build/config/mac/mac_sdk.gni") 14 import("//build/config/mac/mac_sdk.gni")
15 import("//build/config/mac/symbols.gni") 15 import("//build/config/mac/symbols.gni")
16 16
17 assert(host_os == "mac") 17 assert(host_os == "mac")
18 18
19 import("//build/toolchain/cc_wrapper.gni") 19 import("//build/toolchain/cc_wrapper.gni")
20 import("//build/toolchain/clang_static_analyzer.gni")
20 import("//build/toolchain/goma.gni") 21 import("//build/toolchain/goma.gni")
21 import("//build/toolchain/toolchain.gni") 22 import("//build/toolchain/toolchain.gni")
22 import("//build/toolchain/concurrent_links.gni") 23 import("//build/toolchain/concurrent_links.gni")
23 24
24 declare_args() { 25 declare_args() {
25 # Reduce the number of tasks using the copy_bundle_data and compile_xcassets 26 # Reduce the number of tasks using the copy_bundle_data and compile_xcassets
26 # tools as they can cause lots of I/O contention when invoking ninja with a 27 # tools as they can cause lots of I/O contention when invoking ninja with a
27 # large number of parallel jobs (e.g. when using distributed build like goma). 28 # large number of parallel jobs (e.g. when using distributed build like goma).
28 bundle_pool_depth = -1 29 bundle_pool_depth = -1
29 } 30 }
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after
115 "Goma and cc_wrapper can't be used together.") 116 "Goma and cc_wrapper can't be used together.")
116 compiler_prefix = "$goma_dir/gomacc " 117 compiler_prefix = "$goma_dir/gomacc "
117 } else if (toolchain_cc_wrapper != "") { 118 } else if (toolchain_cc_wrapper != "") {
118 compiler_prefix = toolchain_cc_wrapper + " " 119 compiler_prefix = toolchain_cc_wrapper + " "
119 } else { 120 } else {
120 compiler_prefix = "" 121 compiler_prefix = ""
121 } 122 }
122 123
123 cc = compiler_prefix + _cc 124 cc = compiler_prefix + _cc
124 cxx = compiler_prefix + _cxx 125 cxx = compiler_prefix + _cxx
125 ld = _cxx 126
127 if (use_clang_static_analyzer && !toolchain_uses_goma) {
128 # Call "ccc-analyzer" or "c++-analyzer" instead of directly calling Clang.
129 # |wrapper_tool| sets the environment variables which are read by the
130 # analyzer tools.
131 analyzer_wrapper =
132 rebase_path("//build/toolchain/clang_static_analyzer_wrapper.py",
133 root_build_dir)
134 cc = analyzer_wrapper + " --clang-cc-path=${cc} --analyzer=" +
135 rebase_path("//third_party/scan-build/src/libexec/ccc-analyzer",
136 root_build_dir)
137 cxx = analyzer_wrapper + " --clang-cxx-path=${cxx} --analyzer=" +
138 rebase_path("//third_party/scan-build/src/libexec/c++-analyzer",
139 root_build_dir)
140 }
141
142 ld = cxx
126 143
127 linker_driver = 144 linker_driver =
128 "TOOL_VERSION=${tool_versions.linker_driver} " + 145 "TOOL_VERSION=${tool_versions.linker_driver} " +
129 rebase_path("//build/toolchain/mac/linker_driver.py", root_build_dir) 146 rebase_path("//build/toolchain/mac/linker_driver.py", root_build_dir)
130 147
131 # On iOS, the final applications are assembled using lipo (to support fat 148 # On iOS, the final applications are assembled using lipo (to support fat
132 # builds). The correct flags are passed to the linker_driver.py script 149 # builds). The correct flags are passed to the linker_driver.py script
133 # directly during the lipo call. 150 # directly during the lipo call.
134 if (toolchain_args.current_os != "ios") { 151 if (toolchain_args.current_os != "ios") {
135 _enable_dsyms = enable_dsyms 152 _enable_dsyms = enable_dsyms
(...skipping 363 matching lines...) Expand 10 before | Expand all | Expand 10 after
499 } 516 }
500 } 517 }
501 518
502 mac_toolchain("ios_clang_x64") { 519 mac_toolchain("ios_clang_x64") {
503 toolchain_args = { 520 toolchain_args = {
504 current_cpu = "x64" 521 current_cpu = "x64"
505 current_os = "ios" 522 current_os = "ios"
506 } 523 }
507 } 524 }
508 } 525 }
OLDNEW
« no previous file with comments | « build/toolchain/gcc_toolchain.gni ('k') | build/toolchain/wrapper_utils.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698