Merge pull request #133 from earhart/master
[platform/upstream/gflags.git] / BUILD
1 # Bazel build file for gflags
2 #
3 # See INSTALL.md for instructions for adding gflags to a Bazel workspace.
4
5 licenses(["notice"])
6
7 cc_library(
8     name = "gflags",
9     srcs = [
10         "src/gflags.cc",
11         "src/gflags_completions.cc",
12         "src/gflags_reporting.cc",
13         "src/mutex.h",
14         "src/util.h",
15         ":config_h",
16         ":gflags_completions_h",
17         ":gflags_declare_h",
18         ":gflags_h",
19         ":includes",
20     ],
21     hdrs = ["gflags.h"],
22     copts = [
23         "-Wno-sign-compare",
24         "-DHAVE_STDINT_H",
25         "-DHAVE_SYS_TYPES_H",
26         "-DHAVE_INTTYPES_H",
27         "-DHAVE_SYS_STAT_H",
28         "-DHAVE_UNISTD_H",
29         "-DHAVE_FNMATCH_H",
30         "-DHAVE_STRTOLL",
31         "-DHAVE_STRTOQ",
32         "-DHAVE_PTHREAD",
33         "-DHAVE_RWLOCK",
34         "-DGFLAGS_INTTYPES_FORMAT_C99",
35     ],
36     includes = [
37         "include",
38     ],
39     visibility = ["//visibility:public"],
40 )
41
42 genrule(
43     name = "config_h",
44     srcs = [
45         "src/config.h.in",
46     ],
47     outs = [
48         "config.h",
49     ],
50     cmd = "sed -r -e 's,^#cmakedefine,// cmakedefine,' $(<) > $(@)",
51 )
52
53 genrule(
54     name = "gflags_h",
55     srcs = [
56         "src/gflags.h.in",
57     ],
58     outs = [
59         "gflags.h",
60     ],
61     cmd = "sed -r -e 's/@[A-Z_]+@//' $(<) > $(@)",
62 )
63
64 genrule(
65     name = "gflags_completions_h",
66     srcs = [
67         "src/gflags_completions.h.in",
68     ],
69     outs = [
70         "gflags_completions.h",
71     ],
72     cmd = "sed -r -e 's/@GFLAGS_NAMESPACE@/gflags/' $(<) > $(@)",
73 )
74
75 genrule(
76     name = "gflags_declare_h",
77     srcs = [
78         "src/gflags_declare.h.in",
79     ],
80     outs = [
81         "gflags_declare.h",
82     ],
83     cmd = ("sed -r -e '" +
84            "s/@GFLAGS_NAMESPACE@/gflags/;" +
85            "s/@(HAVE_STDINT_H|HAVE_SYS_TYPES_H|HAVE_INTTYPES_H" +
86            "|GFLAGS_INTTYPES_FORMAT_C99)@/1/;" +
87            "s/@([A-Z0-9_]+)@/0/" +
88            "' $(<) > $(@)"),
89 )
90
91 genrule(
92     name = "includes",
93     srcs = [
94         ":gflags_h",
95         ":gflags_declare_h",
96     ],
97     outs = [
98         "include/gflags/gflags.h",
99         "include/gflags/gflags_declare.h",
100     ],
101     cmd = "mkdir -p $(@D)/include/gflags && cp $(SRCS) $(@D)/include/gflags",
102 )