| # Bazel build file for gflags |
| # |
| # See INSTALL.md for instructions for adding gflags to a Bazel workspace. |
| |
| licenses(["notice"]) |
| |
| cc_library( |
| name = "gflags", |
| srcs = [ |
| "src/gflags.cc", |
| "src/gflags_completions.cc", |
| "src/gflags_reporting.cc", |
| "src/mutex.h", |
| "src/util.h", |
| ":config_h", |
| ":gflags_completions_h", |
| ":gflags_declare_h", |
| ":gflags_h", |
| ":includes", |
| ], |
| hdrs = ["gflags.h"], |
| copts = [ |
| # The config.h gets generated to the package directory of |
| # GENDIR, and we don't want to put it into the includes |
| # otherwise the dependent may pull it in by accident. |
| "-I$(GENDIR)/" + PACKAGE_NAME, |
| "-Wno-sign-compare", |
| "-DHAVE_STDINT_H", |
| "-DHAVE_SYS_TYPES_H", |
| "-DHAVE_INTTYPES_H", |
| "-DHAVE_SYS_STAT_H", |
| "-DHAVE_UNISTD_H", |
| "-DHAVE_FNMATCH_H", |
| "-DHAVE_STRTOLL", |
| "-DHAVE_STRTOQ", |
| "-DHAVE_PTHREAD", |
| "-DHAVE_RWLOCK", |
| "-DGFLAGS_INTTYPES_FORMAT_C99", |
| ], |
| includes = [ |
| "include", |
| ], |
| linkopts = ["-lpthread"], |
| visibility = ["//visibility:public"], |
| ) |
| |
| genrule( |
| name = "config_h", |
| srcs = [ |
| "src/config.h.in", |
| ], |
| outs = [ |
| "config.h", |
| ], |
| cmd = "awk '{ gsub(/^#cmakedefine/, \"//cmakedefine\"); print; }' $(<) > $(@)", |
| ) |
| |
| genrule( |
| name = "gflags_h", |
| srcs = [ |
| "src/gflags.h.in", |
| ], |
| outs = [ |
| "gflags.h", |
| ], |
| cmd = "awk '{ gsub(/@(GFLAGS_ATTRIBUTE_UNUSED|INCLUDE_GFLAGS_NS_H)@/, \"\"); print; }' $(<) > $(@)", |
| ) |
| |
| genrule( |
| name = "gflags_completions_h", |
| srcs = [ |
| "src/gflags_completions.h.in", |
| ], |
| outs = [ |
| "gflags_completions.h", |
| ], |
| cmd = "awk '{ gsub(/@GFLAGS_NAMESPACE@/, \"gflags\"); print; }' $(<) > $(@)", |
| ) |
| |
| genrule( |
| name = "gflags_declare_h", |
| srcs = [ |
| "src/gflags_declare.h.in", |
| ], |
| outs = [ |
| "gflags_declare.h", |
| ], |
| cmd = ("awk '{ " + |
| "gsub(/@GFLAGS_NAMESPACE@/, \"gflags\"); " + |
| "gsub(/@(HAVE_STDINT_H|HAVE_SYS_TYPES_H|HAVE_INTTYPES_H|GFLAGS_INTTYPES_FORMAT_C99)@/, \"1\"); " + |
| "gsub(/@([A-Z0-9_]+)@/, \"0\"); " + |
| "print; }' $(<) > $(@)"), |
| ) |
| |
| genrule( |
| name = "includes", |
| srcs = [ |
| ":gflags_h", |
| ":gflags_declare_h", |
| ], |
| outs = [ |
| "include/gflags/gflags.h", |
| "include/gflags/gflags_declare.h", |
| ], |
| cmd = "mkdir -p $(@D)/include/gflags && cp $(SRCS) $(@D)/include/gflags", |
| ) |