xref: /aosp_15_r20/external/angle/build/config/clang/clang.gni (revision 8975f5c5ed3d1c378011245431ada316dfb6f244)
1*8975f5c5SAndroid Build Coastguard Worker# Copyright 2014 The Chromium Authors
2*8975f5c5SAndroid Build Coastguard Worker# Use of this source code is governed by a BSD-style license that can be
3*8975f5c5SAndroid Build Coastguard Worker# found in the LICENSE file.
4*8975f5c5SAndroid Build Coastguard Worker
5*8975f5c5SAndroid Build Coastguard Workerimport("//build/config/chromeos/ui_mode.gni")
6*8975f5c5SAndroid Build Coastguard Workerimport("//build/toolchain/toolchain.gni")
7*8975f5c5SAndroid Build Coastguard Worker
8*8975f5c5SAndroid Build Coastguard Workerdefault_clang_base_path = "//third_party/llvm-build/Release+Asserts"
9*8975f5c5SAndroid Build Coastguard Worker
10*8975f5c5SAndroid Build Coastguard Workerdeclare_args() {
11*8975f5c5SAndroid Build Coastguard Worker  # Indicates if the build should use the Chrome-specific plugins for enforcing
12*8975f5c5SAndroid Build Coastguard Worker  # coding guidelines, etc. Only used when compiling with Chrome's Clang, not
13*8975f5c5SAndroid Build Coastguard Worker  # Chrome OS's.
14*8975f5c5SAndroid Build Coastguard Worker  clang_use_chrome_plugins =
15*8975f5c5SAndroid Build Coastguard Worker      is_clang && !is_nacl && current_os != "zos" &&
16*8975f5c5SAndroid Build Coastguard Worker      default_toolchain != "//build/toolchain/cros:target"
17*8975f5c5SAndroid Build Coastguard Worker
18*8975f5c5SAndroid Build Coastguard Worker  # Use this instead of clang_use_chrome_plugins to enable just the raw-ptr-plugin.
19*8975f5c5SAndroid Build Coastguard Worker  clang_use_raw_ptr_plugin = false
20*8975f5c5SAndroid Build Coastguard Worker
21*8975f5c5SAndroid Build Coastguard Worker  enable_check_raw_ptr_fields =
22*8975f5c5SAndroid Build Coastguard Worker      build_with_chromium && !is_official_build &&
23*8975f5c5SAndroid Build Coastguard Worker      ((is_linux && !is_castos) || (is_android && !is_cast_android) || is_mac ||
24*8975f5c5SAndroid Build Coastguard Worker       is_ios || is_win || is_chromeos_lacros || is_chromeos_ash)
25*8975f5c5SAndroid Build Coastguard Worker
26*8975f5c5SAndroid Build Coastguard Worker  # TODO(crbug.com/40268473): Merge with enable_check_raw_ptr_fields once both
27*8975f5c5SAndroid Build Coastguard Worker  # checks are activated on the same set of platforms.
28*8975f5c5SAndroid Build Coastguard Worker  enable_check_raw_ref_fields =
29*8975f5c5SAndroid Build Coastguard Worker      build_with_chromium && !is_official_build &&
30*8975f5c5SAndroid Build Coastguard Worker      ((is_linux && !is_castos) || (is_android && !is_cast_android) || is_win ||
31*8975f5c5SAndroid Build Coastguard Worker       is_mac || is_ios || is_chromeos_lacros || is_chromeos_ash)
32*8975f5c5SAndroid Build Coastguard Worker
33*8975f5c5SAndroid Build Coastguard Worker  clang_base_path = default_clang_base_path
34*8975f5c5SAndroid Build Coastguard Worker
35*8975f5c5SAndroid Build Coastguard Worker  # Specifies whether or not bitcode should be embedded during compilation.
36*8975f5c5SAndroid Build Coastguard Worker  # This is used for creating a MLGO corpus from Chromium in the non-ThinLTO case.
37*8975f5c5SAndroid Build Coastguard Worker  clang_embed_bitcode = false
38*8975f5c5SAndroid Build Coastguard Worker
39*8975f5c5SAndroid Build Coastguard Worker  # Set to true to enable output of ThinLTO index and import files used for
40*8975f5c5SAndroid Build Coastguard Worker  # creating a Chromium MLGO corpus in the ThinLTO case.
41*8975f5c5SAndroid Build Coastguard Worker  lld_emit_indexes_and_imports = false
42*8975f5c5SAndroid Build Coastguard Worker}
43*8975f5c5SAndroid Build Coastguard Worker
44*8975f5c5SAndroid Build Coastguard Worker# We don't really need to collect a corpus for the host tools, just for the target.
45*8975f5c5SAndroid Build Coastguard Workerlld_emit_indexes_and_imports =
46*8975f5c5SAndroid Build Coastguard Worker    lld_emit_indexes_and_imports && is_a_target_toolchain
47