Home | History | Annotate | Download | only in gflags
      1 # Copyright (c) 2014 The WebRTC project authors. All Rights Reserved.
      2 #
      3 # Use of this source code is governed by a BSD-style license
      4 # that can be found in the LICENSE file in the root of the source
      5 # tree. An additional intellectual property rights grant can be found
      6 # in the file PATENTS.  All contributing project authors may
      7 # be found in the AUTHORS file in the root of the source tree.
      8 
      9 if (is_win) {
     10   gflags_gen_arch_root = "gen/win"
     11 } else {
     12   gflags_gen_arch_root = "gen/posix"
     13 }
     14 
     15 config("gflags_config") {
     16   include_dirs = [
     17     "$gflags_gen_arch_root/include",  # For configured files.
     18     "src/src",  # For everything else.
     19   ]
     20 
     21   defines = [
     22     # These macros exist so flags and symbols are properly exported when
     23     # building DLLs. Since we don't build DLLs, we need to disable them.
     24     "GFLAGS_DLL_DECL=",
     25     "GFLAGS_DLL_DECLARE_FLAG=",
     26     "GFLAGS_DLL_DEFINE_FLAG=",
     27   ]
     28 
     29   # GN orders flags on a target before flags from configs. The default config
     30   # adds -Wall, and this flag have to be after -Wall -- so they need to
     31   # come from a config and can't be on the target directly.
     32   if (is_clang) {
     33     cflags = [ "-Wno-unused-local-typedef" ]
     34   }
     35 }
     36 
     37 source_set("gflags") {
     38   cflags = []
     39   sources = [
     40     "src/src/gflags.cc",
     41     "src/src/gflags_completions.cc",
     42     "src/src/gflags_reporting.cc",
     43   ]
     44   if (is_win) {
     45     sources += [ "src/src/windows_port.cc" ]
     46 
     47     cflags += [
     48       "/wd4005",  # WIN32_LEAN_AND_MEAN.
     49       "/wd4267",  # Conversion from size_t to "type".
     50     ]
     51   }
     52 
     53   include_dirs = [
     54     "$gflags_gen_arch_root/include/gflags",  # For configured files.
     55     "$gflags_gen_arch_root/include/private",  # For config.h
     56   ]
     57 
     58   public_configs = [ ":gflags_config" ]
     59 
     60   configs -= [ "//build/config/compiler:chromium_code" ]
     61   configs += [ "//build/config/compiler:no_chromium_code" ]
     62 
     63   if (is_win) {
     64     configs -= [ "//build/config/win:unicode" ]
     65   }
     66 
     67   if (is_clang) {
     68     # TODO(andrew): Look into fixing this warning upstream:
     69     # http://code.google.com/p/webrtc/issues/detail?id=760
     70     configs -= [ "//build/config/clang:extra_warnings" ]
     71     cflags += [ "-Wno-microsoft-include" ]
     72   }
     73 }
     74