aboutsummaryrefslogtreecommitdiff
path: root/bazel
diff options
context:
space:
mode:
authorAndreas Schuh <andreas.schuh.84@gmail.com>2017-08-31 18:53:26 +0100
committerAndreas Schuh <andreas.schuh.84@gmail.com>2017-09-01 11:10:03 +0200
commit57ceb0ecc8bf5c129bf99fa9472b25342daecf9e (patch)
treeb08f8ecedd7db9d380502d01ab4681b494f4fe57 /bazel
parent7d363535799efffd42812ebece1caced79663482 (diff)
downloadgflags-57ceb0ecc8bf5c129bf99fa9472b25342daecf9e.tar.gz
enh: Move CMake defines to separate header, unused by Bazel
This change avoids having to configure a private .h.in file during the Bazel build such that these files are not available to dependent projects in the GENDIR of the external gflags project.
Diffstat (limited to 'bazel')
-rw-r--r--bazel/gflags.bzl26
1 files changed, 11 insertions, 15 deletions
diff --git a/bazel/gflags.bzl b/bazel/gflags.bzl
index cd0edad..7bf91cd 100644
--- a/bazel/gflags.bzl
+++ b/bazel/gflags.bzl
@@ -2,15 +2,9 @@
# Add native rules to configure source files
def gflags_sources(namespace=["google", "gflags"]):
native.genrule(
- name = "config_h",
- srcs = ["src/config.h.in"],
- outs = ["config.h"],
- cmd = "awk '{ gsub(/^#cmakedefine/, \"//cmakedefine\"); print; }' $(<) > $(@)"
- )
- native.genrule(
name = "gflags_declare_h",
srcs = ["src/gflags_declare.h.in"],
- outs = ["include/gflags/gflags_declare.h"],
+ outs = ["gflags_declare.h"],
cmd = ("awk '{ " +
"gsub(/@GFLAGS_NAMESPACE@/, \"" + namespace[0] + "\"); " +
"gsub(/@(HAVE_STDINT_H|HAVE_SYS_TYPES_H|HAVE_INTTYPES_H|GFLAGS_INTTYPES_FORMAT_C99)@/, \"1\"); " +
@@ -23,7 +17,7 @@ def gflags_sources(namespace=["google", "gflags"]):
native.genrule(
name = gflags_ns_h_file.replace('.', '_'),
srcs = ["src/gflags_ns.h.in"],
- outs = ["include/gflags/" + gflags_ns_h_file],
+ outs = [gflags_ns_h_file],
cmd = ("awk '{ " +
"gsub(/@ns@/, \"" + ns + "\"); " +
"gsub(/@NS@/, \"" + ns.upper() + "\"); " +
@@ -33,7 +27,7 @@ def gflags_sources(namespace=["google", "gflags"]):
native.genrule(
name = "gflags_h",
srcs = ["src/gflags.h.in"],
- outs = ["include/gflags/gflags.h"],
+ outs = ["gflags.h"],
cmd = ("awk '{ " +
"gsub(/@GFLAGS_ATTRIBUTE_UNUSED@/, \"\"); " +
"gsub(/@INCLUDE_GFLAGS_NS_H@/, \"" + '\n'.join(["#include \\\"gflags/{}\\\"".format(hdr) for hdr in gflags_ns_h_files]) + "\"); " +
@@ -42,13 +36,13 @@ def gflags_sources(namespace=["google", "gflags"]):
native.genrule(
name = "gflags_completions_h",
srcs = ["src/gflags_completions.h.in"],
- outs = ["include/gflags/gflags_completions.h"],
+ outs = ["gflags_completions.h"],
cmd = "awk '{ gsub(/@GFLAGS_NAMESPACE@/, \"" + namespace[0] + "\"); print; }' $(<) > $(@)"
)
hdrs = [":gflags_h", ":gflags_declare_h", ":gflags_completions_h"]
hdrs.extend([':' + hdr.replace('.', '_') for hdr in gflags_ns_h_files])
srcs = [
- ":config_h",
+ "src/config.h",
"src/gflags.cc",
"src/gflags_completions.cc",
"src/gflags_reporting.cc",
@@ -62,6 +56,10 @@ def gflags_sources(namespace=["google", "gflags"]):
def gflags_library(hdrs=[], srcs=[], threads=1):
name = "gflags"
copts = [
+ "-DGFLAGS_BAZEL_BUILD",
+ "-DGFLAGS_INTTYPES_FORMAT_C99",
+ "-DGFLAGS_IS_A_DLL=0",
+ # macros otherwise defined by CMake configured defines.h file
"-DHAVE_STDINT_H",
"-DHAVE_SYS_TYPES_H",
"-DHAVE_INTTYPES_H",
@@ -72,8 +70,6 @@ def gflags_library(hdrs=[], srcs=[], threads=1):
"-DHAVE_STRTOQ",
"-DHAVE_PTHREAD",
"-DHAVE_RWLOCK",
- "-DGFLAGS_INTTYPES_FORMAT_C99",
- "-DGFLAGS_IS_A_DLL=0",
]
linkopts = []
if threads:
@@ -85,8 +81,8 @@ def gflags_library(hdrs=[], srcs=[], threads=1):
name = name,
hdrs = hdrs,
srcs = srcs,
- includes = ["include/"],
copts = copts,
linkopts = linkopts,
- visibility = ["//visibility:public"]
+ visibility = ["//visibility:public"],
+ include_prefix = 'gflags'
)