| Index: tools/gn/secondary/build/config/BUILDCONFIG.gn
|
| diff --git a/tools/gn/secondary/build/config/BUILDCONFIG.gn b/tools/gn/secondary/build/config/BUILDCONFIG.gn
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..0245597adc94d7579533877f1b056abf3cddaba9
|
| --- /dev/null
|
| +++ b/tools/gn/secondary/build/config/BUILDCONFIG.gn
|
| @@ -0,0 +1,187 @@
|
| +# =============================================================================
|
| +# BUILD FLAGS
|
| +# =============================================================================
|
| +#
|
| +# This block lists input arguments to the build, along with their default
|
| +# values. GN requires listing them explicitly so it can validate input and have
|
| +# a central place to manage the build flags.
|
| +#
|
| +# If a value is specified on the command line, it will overwrite the defaults
|
| +# given here, otherwise the default will be injected into the root scope.
|
| +#
|
| +# KEEP IN ALPHABETICAL ORDER and write a good description for everything.
|
| +# Use "is_*" names for intrinsic platform descriptions and build modes, and
|
| +# "use_*" names for optional features libraries, and configurations.
|
| +declare_args() {
|
| + is_component_build = 1
|
| + is_chromeos = 0
|
| + is_debug = 1
|
| + use_ash = 0
|
| + use_aura = 0
|
| + use_ozone = 0
|
| +}
|
| +
|
| +# =============================================================================
|
| +# SOURCES FILTERS
|
| +# =============================================================================
|
| +#
|
| +# These patterns filter out platform-specific files when assigning to the
|
| +# sources variable. The magic variable |sources_assignment_filter| is applied
|
| +# to each assignment or appending to the sources variable and matches are
|
| +# automatcally removed.
|
| +#
|
| +# We define lists of filters for each platform for all builds so they can
|
| +# be used by individual targets if necessary (a target can always change
|
| +# sources_assignment_filter on itself if it needs something more specific).
|
| +#
|
| +# Note that the patterns are NOT regular expressions. Only "*" and "\b" (path
|
| +# boundary = end of string or slash) are supported, and the entire string
|
| +# muct match the pattern (so you need "*.cc" to match all .cc files, for
|
| +# example).
|
| +
|
| +windows_sources_filters = [
|
| + "*_win.cc",
|
| + "*_win.h",
|
| + "*_win_unittest.cc",
|
| + "*\bwin/*",
|
| +]
|
| +mac_sources_filters = [
|
| + "*_mac.h",
|
| + "*_mac.cc",
|
| + "*_mac.mm",
|
| + "*_mac_unittest.h",
|
| + "*_mac_unittest.cc",
|
| + "*_mac_unittest.mm",
|
| + "*\bmac/*",
|
| + "*_cocoa.h",
|
| + "*_cocoa.cc",
|
| + "*_cocoa.mm",
|
| + "*_cocoa_unittest.h",
|
| + "*_cocoa_unittest.cc",
|
| + "*_cocoa_unittest.mm",
|
| + "*\bcocoa/*",
|
| +]
|
| +ios_sources_filters = [
|
| + "*_ios.h",
|
| + "*_ios.cc",
|
| + "*_ios.mm",
|
| + "*_ios_unittest.h",
|
| + "*_ios_unittest.cc",
|
| + "*_ios_unittest.mm",
|
| + "*\bios/*",
|
| +]
|
| +objective_c_sources_filters = [
|
| + "*.mm",
|
| +]
|
| +linux_sources_filters = [
|
| + "*_linux.h",
|
| + "*_linux.cc",
|
| + "*_linux_unittest.h",
|
| + "*_linux_unittest.cc",
|
| + "*\blinux/*",
|
| +]
|
| +android_sources_filters = [
|
| + "*_android.h",
|
| + "*_android.cc",
|
| + "*_android_unittest.h",
|
| + "*_android_unittest.cc",
|
| + "*\bandroid/*",
|
| +]
|
| +posix_sources_filters = [
|
| + "*_posix.h",
|
| + "*_posix.cc",
|
| + "*_posix_unittest.h",
|
| + "*_posix_unittest.cc",
|
| + "*\bposix/*",
|
| +]
|
| +
|
| +# Construct the full list of sources we're using for this platform.
|
| +sources_assignment_filter = []
|
| +if (is_win) {
|
| + sources_assignment_filter += posix_sources_filters
|
| +} else {
|
| + sources_assignment_filter += windows_sources_filters
|
| +}
|
| +if (!is_mac) {
|
| + sources_assignment_filter += mac_sources_filters
|
| +}
|
| +if (!is_ios) {
|
| + sources_assignment_filter += ios_sources_filters
|
| +}
|
| +if (!is_mac && !is_ios) {
|
| + sources_assignment_filter += objective_c_sources_filters
|
| +}
|
| +if (!is_linux) {
|
| + sources_assignment_filter += linux_sources_filters
|
| +}
|
| +if (!is_android) {
|
| + sources_assignment_filter += android_sources_filters
|
| +}
|
| +
|
| +# This is the actual set.
|
| +set_sources_assignment_filter(sources_assignment_filter)
|
| +
|
| +# =============================================================================
|
| +# SYSTEM CONFIG
|
| +# =============================================================================
|
| +
|
| +is_nacl = 0
|
| +
|
| +# =============================================================================
|
| +# BUILD OPTIONS
|
| +# =============================================================================
|
| +
|
| +if (is_component_build) {
|
| + component_mode = "shared_library"
|
| +} else {
|
| + component_mode = "static_library"
|
| +}
|
| +
|
| +# =============================================================================
|
| +# TARGET DEFAULTS
|
| +# =============================================================================
|
| +#
|
| +# Set up the default configuration for every build target of the given type.
|
| +# The values configured here will be automatically set on the scope of the
|
| +# corresponding target. Target definitions can add or remove to the settings
|
| +# here as needed.
|
| +
|
| +# Holds all configs used for making native executables and libraries, to avoid
|
| +# duplication in each target below.
|
| +native_compiler_configs = [
|
| + "//build/config:my_msvs", # TODO(brettw) eraseme
|
| +
|
| + "//build/config/compiler:chromium_code",
|
| + "//build/config/compiler:disable_annoying_warnings",
|
| + "//build/config/compiler:no_rtti",
|
| + "//build/config/compiler:runtime_library",
|
| +]
|
| +if (is_win) {
|
| + native_compiler_configs += "//build/config/win:sdk"
|
| +}
|
| +
|
| +if (is_debug) {
|
| + native_compiler_configs += "//build/config:debug"
|
| +} else {
|
| + native_compiler_configs += "//build/config::release"
|
| +}
|
| +
|
| +set_defaults("executable") {
|
| + configs = native_compiler_configs
|
| +}
|
| +
|
| +set_defaults("static_library") {
|
| + configs = native_compiler_configs
|
| +}
|
| +
|
| +set_defaults("shared_library") {
|
| + configs = native_compiler_configs
|
| +}
|
| +
|
| +# ==============================================================================
|
| +# TOOLCHAIN SETUP
|
| +# ==============================================================================
|
| +
|
| +if (is_win) {
|
| + set_default_toolchain("//build/config/win:32")
|
| +}
|
|
|