blob: 95ceaf090e6c097763752a34b750d968603226f3 [file] [log] [blame]
# Copyright 2018 The Chromium Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
import("//build/buildflag_header.gni")
import("//build/config/cast.gni")
import("//build/config/chrome_build.gni")
import("//build/config/chromeos/args.gni")
import("//build/config/features.gni")
import("//build/util/process_version.gni")
import("//build_overrides/build.gni")
if (is_ios) {
import("//build/config/ios/ios_sdk.gni")
}
source_set("buildflag_header_h") {
sources = [ "buildflag.h" ]
}
buildflag_header("branding_buildflags") {
header = "branding_buildflags.h"
if (is_chrome_branded) {
flags = [
"CHROMIUM_BRANDING=false",
"GOOGLE_CHROME_BRANDING=true",
]
} else {
flags = [
"CHROMIUM_BRANDING=true",
"GOOGLE_CHROME_BRANDING=false",
]
}
if (is_chrome_for_testing) {
assert(!is_chrome_branded,
"`is_chrome_for_testing` is incompatible with `is_chrome_branded`")
flags += [ "CHROME_FOR_TESTING=true" ]
} else {
flags += [ "CHROME_FOR_TESTING=false" ]
}
# Note: `GOOGLE_CHROME_FOR_TESTING_BRANDING` and `CHROMIUM_BRANDING` are not
# mutually exclusive.
if (is_chrome_for_testing_branded) {
assert(is_chrome_for_testing,
"`is_chrome_for_testing_branded` requires `is_chrome_for_testing`")
flags += [ "GOOGLE_CHROME_FOR_TESTING_BRANDING=true" ]
} else {
flags += [ "GOOGLE_CHROME_FOR_TESTING_BRANDING=false" ]
}
flags += [ "ENABLE_BUILTIN_SEARCH_PROVIDER_ASSETS=$enable_builtin_search_provider_assets" ]
}
buildflag_header("blink_buildflags") {
header = "blink_buildflags.h"
flags = [ "USE_BLINK=$use_blink" ]
}
buildflag_header("chromecast_buildflags") {
header = "chromecast_buildflags.h"
flags = [
"IS_CASTOS=$is_castos",
"IS_CAST_ANDROID=$is_cast_android",
"ENABLE_CAST_RECEIVER=$enable_cast_receiver",
]
}
buildflag_header("chromeos_buildflags") {
header = "chromeos_buildflags.h"
flags = [
"IS_CHROMEOS_DEVICE=$is_chromeos_device",
# TODO(b:354842935): Remove once all the occurrence of IS_CHROMEOS_ASH is
# removed from cc files.
"IS_CHROMEOS_ASH=$is_chromeos",
"IS_CHROMEOS_WITH_HW_DETAILS=$is_chromeos_with_hw_details",
"IS_REVEN=$is_reven",
]
}
buildflag_header("robolectric_buildflags") {
header = "robolectric_buildflags.h"
flags = [ "IS_ROBOLECTRIC=$is_robolectric" ]
}
buildflag_header("ios_buildflags") {
header = "ios_buildflags.h"
_is_ios_app_extension = is_ios && ios_is_app_extension
flags = [ "IS_IOS_APP_EXTENSION=$_is_ios_app_extension" ]
}
#
# NOTE: IS_DESKTOP_ANDROID should be used sparingly.
#
# General Recommendation:
# Avoid using this build time flag whenever possible. Rely on runtime
# detection of features such as:
# - Large screen availability
# - Input modalities (e.g., touch, keyboard, mouse)
# - Relevant Android system flags.
#
# DO:
# - Use this flag ONLY for features with substantial binary size impact,
# such as DevTools or Extensions, which contain significant code and
# resource sizes.
#
# DON'T:
# - Use this flag to enable feature flags or experiments.
# - Use this flag in code shared with Android WebView.
# Restrict its usage to the //chrome code directory whenever possible.
#
# If you're unsure please reach out to [email protected]
#
buildflag_header("android_buildflags") {
header = "android_buildflags.h"
flags = [ "IS_DESKTOP_ANDROID=$is_desktop_android" ]
}
if (build_with_chromium) {
group("gold_common_pytype") {
testonly = true
data = [ "//build/skia_gold_common/" ]
data_deps = [ "//testing:pytype_dependencies" ]
}
}
if (is_chromeos) {
process_version("version_metadata") {
sources = [ "//chrome/VERSION" ]
template_file = "metadata.json.in"
output = "$root_out_dir/metadata.json"
process_only = true
}
}