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") |
+} |