Skip to content

Commit

Permalink
Merge pull request #133 from earhart/master
Browse files Browse the repository at this point in the history
Add Bazel build support
  • Loading branch information
schuhschuh committed Feb 19, 2016
2 parents f9fa305 + 40b85b1 commit 3f968fc
Show file tree
Hide file tree
Showing 3 changed files with 124 additions and 2 deletions.
102 changes: 102 additions & 0 deletions BUILD
Original file line number Diff line number Diff line change
@@ -0,0 +1,102 @@
# 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 = [
"-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",
],
visibility = ["//visibility:public"],
)

genrule(
name = "config_h",
srcs = [
"src/config.h.in",
],
outs = [
"config.h",
],
cmd = "sed -r -e 's,^#cmakedefine,// cmakedefine,' $(<) > $(@)",
)

genrule(
name = "gflags_h",
srcs = [
"src/gflags.h.in",
],
outs = [
"gflags.h",
],
cmd = "sed -r -e 's/@[A-Z_]+@//' $(<) > $(@)",
)

genrule(
name = "gflags_completions_h",
srcs = [
"src/gflags_completions.h.in",
],
outs = [
"gflags_completions.h",
],
cmd = "sed -r -e 's/@GFLAGS_NAMESPACE@/gflags/' $(<) > $(@)",
)

genrule(
name = "gflags_declare_h",
srcs = [
"src/gflags_declare.h.in",
],
outs = [
"gflags_declare.h",
],
cmd = ("sed -r -e '" +
"s/@GFLAGS_NAMESPACE@/gflags/;" +
"s/@(HAVE_STDINT_H|HAVE_SYS_TYPES_H|HAVE_INTTYPES_H" +
"|GFLAGS_INTTYPES_FORMAT_C99)@/1/;" +
"s/@([A-Z0-9_]+)@/0/" +
"' $(<) > $(@)"),
)

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",
)
23 changes: 22 additions & 1 deletion INSTALL.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ following command:
sudo apt-get install gflags


Compiling the source code
Compiling the source code with CMake
=========================

The build system of gflags is since version 2.1 based on [CMake](http://cmake.org).
Expand Down Expand Up @@ -65,3 +65,24 @@ GFLAGS_INTTYPES_FORMAT | String identifying format of built-in integer type
GFLAGS_INCLUDE_DIR | Name of headers installation directory relative to CMAKE_INSTALL_PREFIX.
LIBRARY_INSTALL_DIR | Name of library installation directory relative to CMAKE_INSTALL_PREFIX.
INSTALL_HEADERS | Request installation of public header files.

Using gflags with [Bazel](http://bazel.io)
=========================

To use gflags in a Bazel project, map it in as an external dependency by editing
your WORKSPACE file:

git_repository(
name = "gflags_git",
commit = "", # Use the current HEAD commit
remote = "https://github.com/gflags/gflags.git",
)

bind(
name = "gflags",
actual = "@gflags_git//:gflags",
)

You can then add `//external:gflags` to the `deps` section of a `cc_binary` or
`cc_library` rule, and `#include <gflags/gflags.h>` to include it in your source
code.
1 change: 0 additions & 1 deletion src/util.h
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,6 @@
#include "config.h"

#include <assert.h>
#include <config.h>
#ifdef HAVE_INTTYPES_H
# include <inttypes.h>
#endif
Expand Down

0 comments on commit 3f968fc

Please sign in to comment.