Merge pull request #143 from schuhschuh/fix-bazel-bulid-osx
[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 = "awk '{ gsub(/^#cmakedefine/, \"//cmakedefine\"); print; }' $(<) > $(@)",
51 )
52
53 genrule(
54     name = "gflags_h",
55     srcs = [
56         "src/gflags.h.in",
57     ],
58     outs = [
59         "gflags.h",
60     ],
61     cmd = "awk '{ gsub(/@(GFLAGS_ATTRIBUTE_UNUSED|INCLUDE_GFLAGS_NS_H)@/, \"\"); print; }' $(<) > $(@)",
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 = "awk '{ gsub(/@GFLAGS_NAMESPACE@/, \"gflags\"); print; }' $(<) > $(@)",
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 = ("awk '{ " +
84            "gsub(/@GFLAGS_NAMESPACE@/, \"gflags\"); " +
85            "gsub(/@(HAVE_STDINT_H|HAVE_SYS_TYPES_H|HAVE_INTTYPES_H|GFLAGS_INTTYPES_FORMAT_C99)@/, \"1\"); " +
86            "gsub(/@([A-Z0-9_]+)@/, \"0\"); " +
87            "print; }' $(<) > $(@)"),
88 )
89
90 genrule(
91     name = "includes",
92     srcs = [
93         ":gflags_h",
94         ":gflags_declare_h",
95     ],
96     outs = [
97         "include/gflags/gflags.h",
98         "include/gflags/gflags_declare.h",
99     ],
100     cmd = "mkdir -p $(@D)/include/gflags && cp $(SRCS) $(@D)/include/gflags",
101 )