forked from gflags/gflags
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathBUCK
68 lines (62 loc) · 1.73 KB
/
BUCK
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
load('//:buckaroo_macros.bzl', 'buckaroo_deps_from_package')
load('//:subdir_glob.bzl', 'subdir_glob')
namespace = read_config('gflags', 'namespace', 'google')
gflags_ns_h_files = []
genrule(
name = 'gflags_declare-h',
out = 'gflags_declare.h',
srcs = [
'src/gflags_declare.h.in',
],
cmd = ("awk '{ " +
"gsub(/@GFLAGS_NAMESPACE@/, \"" + namespace + "\"); " +
"gsub(/@(HAVE_STDINT_H|HAVE_SYS_TYPES_H|HAVE_INTTYPES_H|GFLAGS_INTTYPES_FORMAT_C99)@/, \"1\"); " +
"gsub(/@([A-Z0-9_]+)@/, \"0\"); " +
"print; }' $SRCS > $OUT")
)
genrule(
name = 'gflags-h',
out = 'gflags.h',
srcs = [
'src/gflags.h.in',
],
cmd = ("awk '{ " +
"gsub(/@GFLAGS_ATTRIBUTE_UNUSED@/, \"\"); " +
"gsub(/@INCLUDE_GFLAGS_NS_H@/, \"" + '\n'.join(["#include \\\"gflags/{}\\\"".format(hdr) for hdr in gflags_ns_h_files]) + "\"); " +
"print; }' $SRCS > $OUT")
)
genrule(
name = 'gflags_completions-h',
out = 'gflags_completions.h',
srcs = [
'src/gflags_completions.h.in',
],
cmd = "awk '{ gsub(/@GFLAGS_NAMESPACE@/, \"" + namespace + "\"); print; }' $SRCS > $OUT"
)
cxx_library(
name = 'gflags',
header_namespace = '',
exported_headers = {
'gflags/gflags_declare.h': ':gflags_declare-h',
'gflags/gflags.h': ':gflags-h',
'gflags/gflags_completions.h': ':gflags_completions-h',
},
headers = subdir_glob([
('src', '**/*.h'),
]),
srcs = glob([
'src/**/gflags*.cc',
]),
platform_srcs = [
('window.*', glob([ 'src/**/windows*.cc' ])),
],
preprocessor_flags = [
'-DGOOGLE_NAMESPACE=' + namespace,
],
platform_deps = [
('linux.*', buckaroo_deps_from_package('github.com/buckaroo-pm/host-pthread')),
],
visibility = [
'PUBLIC',
],
)