xref: /aosp_15_r20/external/angle/build/BUILD.gn (revision 8975f5c5ed3d1c378011245431ada316dfb6f244)
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
5import("//build/buildflag_header.gni")
6import("//build/config/cast.gni")
7import("//build/config/chrome_build.gni")
8import("//build/config/chromeos/args.gni")
9import("//build/config/chromeos/ui_mode.gni")
10import("//build/config/features.gni")
11import("//build/util/process_version.gni")
12import("//build_overrides/build.gni")
13
14if (is_ios) {
15  import("//build/config/ios/ios_sdk.gni")
16}
17
18source_set("buildflag_header_h") {
19  sources = [ "buildflag.h" ]
20}
21
22buildflag_header("branding_buildflags") {
23  header = "branding_buildflags.h"
24
25  if (is_chrome_branded) {
26    flags = [
27      "CHROMIUM_BRANDING=0",
28      "GOOGLE_CHROME_BRANDING=1",
29    ]
30  } else {
31    flags = [
32      "CHROMIUM_BRANDING=1",
33      "GOOGLE_CHROME_BRANDING=0",
34    ]
35  }
36
37  if (is_chrome_for_testing) {
38    assert(!is_chrome_branded,
39           "`is_chrome_for_testing` is incompatible with `is_chrome_branded`")
40
41    flags += [ "CHROME_FOR_TESTING=1" ]
42  } else {
43    flags += [ "CHROME_FOR_TESTING=0" ]
44  }
45
46  # Note: `GOOGLE_CHROME_FOR_TESTING_BRANDING` and `CHROMIUM_BRANDING` are not
47  # mutually exclusive.
48  if (is_chrome_for_testing_branded) {
49    assert(is_chrome_for_testing,
50           "`is_chrome_for_testing_branded` requires `is_chrome_for_testing`")
51
52    flags += [ "GOOGLE_CHROME_FOR_TESTING_BRANDING=1" ]
53  } else {
54    flags += [ "GOOGLE_CHROME_FOR_TESTING_BRANDING=0" ]
55  }
56}
57
58buildflag_header("blink_buildflags") {
59  header = "blink_buildflags.h"
60  flags = [ "USE_BLINK=$use_blink" ]
61}
62
63buildflag_header("chromecast_buildflags") {
64  header = "chromecast_buildflags.h"
65
66  flags = [
67    "IS_CASTOS=$is_castos",
68    "IS_CAST_ANDROID=$is_cast_android",
69    "ENABLE_CAST_RECEIVER=$enable_cast_receiver",
70  ]
71}
72
73buildflag_header("chromeos_buildflags") {
74  header = "chromeos_buildflags.h"
75
76  flags = [
77    "IS_CHROMEOS_DEVICE=$is_chromeos_device",
78
79    "IS_CHROMEOS_LACROS=$is_chromeos_lacros",
80    "IS_CHROMEOS_ASH=$is_chromeos_ash",
81    "IS_CHROMEOS_WITH_HW_DETAILS=$is_chromeos_with_hw_details",
82    "IS_REVEN=$is_reven",
83  ]
84}
85
86buildflag_header("robolectric_buildflags") {
87  header = "robolectric_buildflags.h"
88  flags = [ "IS_ROBOLECTRIC=$is_robolectric" ]
89}
90
91buildflag_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
97buildflag_header("android_buildflags") {
98  header = "android_buildflags.h"
99  flags = [ "IS_DESKTOP_ANDROID=$is_desktop_android" ]
100}
101
102if (build_with_chromium) {
103  group("gold_common_pytype") {
104    testonly = true
105
106    data = [ "//build/skia_gold_common/" ]
107
108    data_deps = [ "//testing:pytype_dependencies" ]
109  }
110}
111
112if (is_chromeos) {
113  process_version("version_metadata") {
114    sources = [ "//chrome/VERSION" ]
115
116    template_file = "metadata.json.in"
117    output = "$root_out_dir/metadata.json"
118    process_only = true
119  }
120}
121