| Index: build/config/compiler/BUILD.gn
|
| diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn
|
| index e8eb59a8b08e93b35f1b69156203298d4072b29f..74dec11c3b8b645c5030e3925a0ce950d7167e6e 100644
|
| --- a/build/config/compiler/BUILD.gn
|
| +++ b/build/config/compiler/BUILD.gn
|
| @@ -102,69 +102,18 @@ config("compiler") {
|
| defines = []
|
| configs = []
|
|
|
| - # In general, Windows is totally different, but all the other builds share
|
| - # some common GCC configuration. This section sets up Windows and the common
|
| - # GCC flags, and then we handle the other non-Windows platforms specifically
|
| - # below.
|
| + # System-specific flags. If your compiler flags apply to one of the
|
| + # categories here, add it to the associated file to keep this shared config
|
| + # smaller.
|
| if (is_win) {
|
| - # Windows compiler flags setup.
|
| - # -----------------------------
|
| - cflags += [
|
| - "/Gy", # Enable function-level linking.
|
| - "/GS", # Enable buffer security checking.
|
| - "/FS", # Preserve previous PDB behavior.
|
| - "/bigobj", # Some of our files are bigger than the regular limits.
|
| - ]
|
| -
|
| - if (visual_studio_version == "2015") {
|
| - # Work around crbug.com/526851, bug in VS 2015 RTM compiler.
|
| - cflags += [ "/Zc:sizedDealloc-" ]
|
| - }
|
| -
|
| - # Force C/C++ mode for the given GN detected file type. This is necessary
|
| - # for precompiled headers where the same source file is compiled in both
|
| - # modes.
|
| - cflags_c += [ "/TC" ]
|
| - cflags_cc += [ "/TP" ]
|
| -
|
| - # Building with Clang on Windows is a work in progress and very
|
| - # experimental. See crbug.com/82385.
|
| - # Keep this in sync with the similar block in build/common.gypi
|
| - if (is_clang) {
|
| - cflags += [
|
| - # Many files use intrinsics without including this header.
|
| - # TODO(hans): Fix those files, or move this to sub-GYPs.
|
| - "/FIIntrin.h",
|
| - ]
|
| -
|
| - if (visual_studio_version == "2013") {
|
| - cflags += [ "-fmsc-version=1800" ]
|
| - } else if (visual_studio_version == "2015") {
|
| - cflags += [ "-fmsc-version=1900" ]
|
| - }
|
| -
|
| - if (current_cpu == "x86") {
|
| - cflags += [ "-m32" ]
|
| - } else {
|
| - cflags += [ "-m64" ]
|
| - }
|
| -
|
| - if (exec_script("//build/win/use_ansi_codes.py", [], "trim string") ==
|
| - "True") {
|
| - cflags += [
|
| - # cmd.exe doesn't understand ANSI escape codes by default,
|
| - # so only enable them if something emulating them is around.
|
| - "-fansi-escape-codes",
|
| - ]
|
| - }
|
| - }
|
| + configs += [ "//build/config/win:compiler" ]
|
| + } else if (is_android) {
|
| + configs += [ "//build/config/android:compiler" ]
|
| + }
|
|
|
| - if (is_syzyasan) {
|
| - # SyzyAsan needs /PROFILE turned on to produce appropriate pdbs.
|
| - assert(!is_win_fastlink, "/PROFILE and /DEBUG:FASTLINK are incompatible")
|
| - ldflags += [ "/PROFILE" ]
|
| - }
|
| - } else {
|
| + # In general, Windows is totally different, but all the other builds share
|
| + # some common GCC configuration.
|
| + if (!is_win) {
|
| # Common GCC compiler flags setup.
|
| # --------------------------------
|
| cflags += [ "-fno-strict-aliasing" ] # See http://crbug.com/32204
|
| @@ -601,12 +550,6 @@ config("compiler") {
|
| cflags_cc += [ "-std=c++11" ]
|
| }
|
|
|
| - # Android-specific flags setup.
|
| - # -----------------------------
|
| - if (is_android) {
|
| - configs += [ "//build/config/android:compiler" ]
|
| - }
|
| -
|
| # Pass the same C/C++ flags to the objective C/C++ compiler.
|
| cflags_objc += cflags_c
|
| cflags_objcc += cflags_cc
|
| @@ -629,117 +572,20 @@ config("compiler_arm_fpu") {
|
| # target wants the option regardless, put it in the compiler config.
|
|
|
| config("runtime_library") {
|
| - cflags = []
|
| defines = []
|
| - ldflags = []
|
| - lib_dirs = []
|
| - libs = []
|
| -
|
| - if (is_component_build) {
|
| - # Component mode: dynamic CRT.
|
| - defines += [ "COMPONENT_BUILD" ]
|
| - if (is_win) {
|
| - # Since the library is shared, it requires exceptions or will give errors
|
| - # about things not matching, so keep exceptions on.
|
| - if (is_debug) {
|
| - cflags += [ "/MDd" ]
|
| - } else {
|
| - cflags += [ "/MD" ]
|
| - }
|
| - }
|
| - } else {
|
| - if (is_win && current_os != "win") {
|
| - # WindowsRT: use the dynamic CRT.
|
| - if (is_debug) {
|
| - cflags += [ "/MDd" ]
|
| - } else {
|
| - cflags += [ "/MD" ]
|
| - }
|
| - } else if (is_win) {
|
| - # Desktop Windows: static CRT.
|
| - if (is_debug) {
|
| - cflags += [ "/MTd" ]
|
| - } else {
|
| - cflags += [ "/MT" ]
|
| - }
|
| - }
|
| - }
|
| + configs = []
|
|
|
| + # System-specific flags. If your compiler flags apply to one of the
|
| + # categories here, add it to the associated file to keep this shared config
|
| + # smaller.
|
| if (is_win) {
|
| - defines += [
|
| - "__STD_C",
|
| - "_CRT_RAND_S",
|
| - "_CRT_SECURE_NO_DEPRECATE",
|
| - "_HAS_EXCEPTIONS=0",
|
| - "_SCL_SECURE_NO_DEPRECATE",
|
| - ]
|
| + configs += [ "//build/config/win:runtime_library" ]
|
| + } else if (is_android) {
|
| + configs += [ "//build/config/android:runtime_library" ]
|
| }
|
|
|
| - # Android standard library setup.
|
| - if (is_android) {
|
| - if (is_clang) {
|
| - # Work around incompatibilities between bionic and clang headers.
|
| - defines += [
|
| - "__compiler_offsetof=__builtin_offsetof",
|
| - "nan=__builtin_nan",
|
| - ]
|
| - }
|
| -
|
| - defines += [ "__GNU_SOURCE=1" ] # Necessary for clone().
|
| -
|
| - # TODO(jdduke) Re-enable on mips after resolving linking
|
| - # issues with libc++ (crbug.com/456380).
|
| - if (current_cpu != "mipsel" && current_cpu != "mips64el") {
|
| - ldflags += [ "-Wl,--warn-shared-textrel" ]
|
| - }
|
| - ldflags += [ "-nostdlib" ]
|
| -
|
| - # NOTE: The libc++ header include paths below are specified in cflags
|
| - # rather than include_dirs because they need to come after include_dirs.
|
| - # Think of them like system headers, but don't use '-isystem' because the
|
| - # arm-linux-androideabi-4.4.3 toolchain (circa Gingerbread) will exhibit
|
| - # strange errors. The include ordering here is important; change with
|
| - # caution.
|
| - cflags += [
|
| - "-isystem" +
|
| - rebase_path("$android_libcpp_root/libcxx/include", root_build_dir),
|
| - "-isystem" + rebase_path(
|
| - "$android_ndk_root/sources/cxx-stl/llvm-libc++abi/libcxxabi/include",
|
| - root_build_dir),
|
| - "-isystem" +
|
| - rebase_path("$android_ndk_root/sources/android/support/include",
|
| - root_build_dir),
|
| - ]
|
| -
|
| - lib_dirs += [ "$android_libcpp_root/libs/$android_app_abi" ]
|
| - libs += [ "$android_libcpp_library" ]
|
| -
|
| - if (current_cpu == "mipsel") {
|
| - libs += [
|
| - # ld linker is used for mips Android, and ld does not accept library
|
| - # absolute path prefixed by "-l"; Since libgcc does not exist in mips
|
| - # sysroot the proper library will be linked.
|
| - # TODO(gordanac): Remove once gold linker is used for mips Android.
|
| - "gcc",
|
| - ]
|
| - } else {
|
| - libs += [
|
| - # Manually link the libgcc.a that the cross compiler uses. This is
|
| - # absolute because the linker will look inside the sysroot if it's not.
|
| - rebase_path(android_libgcc_file),
|
| - ]
|
| - }
|
| -
|
| - libs += [
|
| - "c",
|
| - "dl",
|
| - "m",
|
| - ]
|
| -
|
| - # Clang with libc++ does not require an explicit atomic library reference.
|
| - if (!is_clang) {
|
| - libs += [ "atomic" ]
|
| - }
|
| + if (is_component_build) {
|
| + defines += [ "COMPONENT_BUILD" ]
|
| }
|
| }
|
|
|
| @@ -1010,6 +856,7 @@ config("chromium_code") {
|
| cflags += default_warning_flags
|
| cflags_cc = default_warning_flags_cc
|
| }
|
| +
|
| config("no_chromium_code") {
|
| cflags = []
|
| cflags_cc = []
|
|
|