BUILD.gn (3888B)
1 # Copyright 2018 The Chromium Authors 2 # Use of this source code is governed by a BSD-style license that can be 3 # found in the LICENSE file. 4 5 import("//chromium/build/buildflag_header.gni") 6 import("//chromium/build/config/cast.gni") 7 import("//chromium/build/config/chrome_build.gni") 8 import("//chromium/build/config/chromeos/args.gni") 9 import("//chromium/build/config/features.gni") 10 import("//chromium/build/util/process_version.gni") 11 import("//build_overrides/build.gni") 12 13 if (is_ios) { 14 import("//chromium/build/config/ios/ios_sdk.gni") 15 } 16 17 source_set("buildflag_header_h") { 18 sources = [ "buildflag.h" ] 19 } 20 21 buildflag_header("branding_buildflags") { 22 header = "branding_buildflags.h" 23 24 if (is_chrome_branded) { 25 flags = [ 26 "CHROMIUM_BRANDING=false", 27 "GOOGLE_CHROME_BRANDING=true", 28 ] 29 } else { 30 flags = [ 31 "CHROMIUM_BRANDING=true", 32 "GOOGLE_CHROME_BRANDING=false", 33 ] 34 } 35 36 if (is_chrome_for_testing) { 37 assert(!is_chrome_branded, 38 "`is_chrome_for_testing` is incompatible with `is_chrome_branded`") 39 40 flags += [ "CHROME_FOR_TESTING=true" ] 41 } else { 42 flags += [ "CHROME_FOR_TESTING=false" ] 43 } 44 45 # Note: `GOOGLE_CHROME_FOR_TESTING_BRANDING` and `CHROMIUM_BRANDING` are not 46 # mutually exclusive. 47 if (is_chrome_for_testing_branded) { 48 assert(is_chrome_for_testing, 49 "`is_chrome_for_testing_branded` requires `is_chrome_for_testing`") 50 51 flags += [ "GOOGLE_CHROME_FOR_TESTING_BRANDING=true" ] 52 } else { 53 flags += [ "GOOGLE_CHROME_FOR_TESTING_BRANDING=false" ] 54 } 55 } 56 57 buildflag_header("blink_buildflags") { 58 header = "blink_buildflags.h" 59 flags = [ "USE_BLINK=$use_blink" ] 60 } 61 62 buildflag_header("chromecast_buildflags") { 63 header = "chromecast_buildflags.h" 64 65 flags = [ 66 "IS_CASTOS=$is_castos", 67 "IS_CAST_ANDROID=$is_cast_android", 68 "ENABLE_CAST_RECEIVER=$enable_cast_receiver", 69 ] 70 } 71 72 buildflag_header("chromeos_buildflags") { 73 header = "chromeos_buildflags.h" 74 75 flags = [ 76 "IS_CHROMEOS_DEVICE=$is_chromeos_device", 77 78 # TODO(b:354842935): Remove once all the occurrence of IS_CHROMEOS_ASH is 79 # removed from cc files. 80 "IS_CHROMEOS_ASH=$is_chromeos", 81 "IS_CHROMEOS_WITH_HW_DETAILS=$is_chromeos_with_hw_details", 82 "IS_REVEN=$is_reven", 83 ] 84 } 85 86 buildflag_header("robolectric_buildflags") { 87 header = "robolectric_buildflags.h" 88 flags = [ "IS_ROBOLECTRIC=$is_robolectric" ] 89 } 90 91 buildflag_header("ios_buildflags") { 92 header = "ios_buildflags.h" 93 _is_ios_app_extension = is_ios && ios_is_app_extension 94 flags = [ "IS_IOS_APP_EXTENSION=$_is_ios_app_extension" ] 95 } 96 97 # 98 # NOTE: IS_DESKTOP_ANDROID should be used sparingly. 99 # 100 # General Recommendation: 101 # Avoid using this build time flag whenever possible. Rely on runtime 102 # detection of features such as: 103 # - Large screen availability 104 # - Input modalities (e.g., touch, keyboard, mouse) 105 # - Relevant Android system flags. 106 # 107 # DO: 108 # - Use this flag ONLY for features with substantial binary size impact, 109 # such as DevTools or Extensions, which contain significant code and 110 # resource sizes. 111 # 112 # DON'T: 113 # - Use this flag to enable feature flags or experiments. 114 # - Use this flag in code shared with Android WebView. 115 # Restrict its usage to the //chrome code directory whenever possible. 116 # 117 # If you're unsure please reach out to is-android-desktop-help@google.com 118 # 119 buildflag_header("android_buildflags") { 120 header = "android_buildflags.h" 121 flags = [ "IS_DESKTOP_ANDROID=$is_desktop_android" ] 122 } 123 124 if (build_with_chromium) { 125 group("gold_common_pytype") { 126 testonly = true 127 128 data = [ "//chromium/build/skia_gold_common/" ] 129 130 data_deps = [ "//testing:pytype_dependencies" ] 131 } 132 } 133 134 if (is_chromeos) { 135 process_version("version_metadata") { 136 sources = [ "//chrome/VERSION" ] 137 138 template_file = "metadata.json.in" 139 output = "$root_out_dir/metadata.json" 140 process_only = true 141 } 142 }