diff --git a/third_party/gflags/BUILD.gn b/third_party/gflags/BUILD.gn index af41b7ecbf..f5cc42d32a 100644 --- a/third_party/gflags/BUILD.gn +++ b/third_party/gflags/BUILD.gn @@ -6,68 +6,75 @@ # in the file PATENTS. All contributing project authors may # be found in the AUTHORS file in the root of the source tree. -if (is_win) { - gflags_gen_arch_root = "gen/win" -} else { - gflags_gen_arch_root = "gen/posix" -} +import("../../webrtc/build/webrtc.gni") -config("gflags_config") { - include_dirs = [ - "$gflags_gen_arch_root/include", # For configured files. - "src/src", # For everything else. - ] - - defines = [ - # These macros exist so flags and symbols are properly exported when - # building DLLs. Since we don't build DLLs, we need to disable them. - "GFLAGS_DLL_DECL=", - "GFLAGS_DLL_DECLARE_FLAG=", - "GFLAGS_DLL_DEFINE_FLAG=", - ] - - # GN orders flags on a target before flags from configs. The default config - # adds -Wall, and this flag have to be after -Wall -- so they need to - # come from a config and can't be on the target directly. - if (is_clang) { - cflags = [ "-Wno-unused-local-typedef" ] - } -} - -source_set("gflags") { - cflags = [] - sources = [ - "src/src/gflags.cc", - "src/src/gflags_completions.cc", - "src/src/gflags_reporting.cc", - ] +# gflags can only be used by targets that are not built in Chromium, since +# Chromium doesn't have gflags as a dependency). +if (!build_with_chromium && !use_libfuzzer) { if (is_win) { - sources += [ "src/src/windows_port.cc" ] + gflags_gen_arch_root = "gen/win" + } else { + gflags_gen_arch_root = "gen/posix" + } - cflags += [ - "/wd4005", # WIN32_LEAN_AND_MEAN. - "/wd4267", # Conversion from size_t to "type". + config("gflags_config") { + include_dirs = [ + "$gflags_gen_arch_root/include", # For configured files. + "src/src", # For everything else. ] + + defines = [ + # These macros exist so flags and symbols are properly exported when + # building DLLs. Since we don't build DLLs, we need to disable them. + "GFLAGS_DLL_DECL=", + "GFLAGS_DLL_DECLARE_FLAG=", + "GFLAGS_DLL_DEFINE_FLAG=", + ] + + # GN orders flags on a target before flags from configs. The default config + # adds -Wall, and this flag have to be after -Wall -- so they need to + # come from a config and can't be on the target directly. + if (is_clang) { + cflags = [ "-Wno-unused-local-typedef" ] + } } - include_dirs = [ - "$gflags_gen_arch_root/include/gflags", # For configured files. - "$gflags_gen_arch_root/include/private", # For config.h - ] + source_set("gflags") { + testonly = true + cflags = [] + sources = [ + "src/src/gflags.cc", + "src/src/gflags_completions.cc", + "src/src/gflags_reporting.cc", + ] + if (is_win) { + sources += [ "src/src/windows_port.cc" ] - public_configs = [ ":gflags_config" ] + cflags += [ + "/wd4005", # WIN32_LEAN_AND_MEAN. + "/wd4267", # Conversion from size_t to "type". + ] + } - configs -= [ "//build/config/compiler:chromium_code" ] - configs += [ "//build/config/compiler:no_chromium_code" ] + include_dirs = [ + "$gflags_gen_arch_root/include/gflags", # For configured files. + "$gflags_gen_arch_root/include/private", # For config.h + ] - if (is_win) { - configs -= [ "//build/config/win:unicode" ] - } + public_configs = [ ":gflags_config" ] - if (is_clang) { - # TODO(andrew): Look into fixing this warning upstream: - # http://code.google.com/p/webrtc/issues/detail?id=760 - configs -= [ "//build/config/clang:extra_warnings" ] - cflags += [ "-Wno-microsoft-include" ] + configs -= [ "//build/config/compiler:chromium_code" ] + configs += [ "//build/config/compiler:no_chromium_code" ] + + if (is_win) { + configs -= [ "//build/config/win:unicode" ] + } + + if (is_clang) { + # TODO(andrew): Look into fixing this warning upstream: + # http://code.google.com/p/webrtc/issues/detail?id=760 + configs -= [ "//build/config/clang:extra_warnings" ] + cflags += [ "-Wno-microsoft-include" ] + } } }