]> git.proxmox.com Git - ceph.git/blame - ceph/src/rocksdb/buckifier/targets_cfg.py
import 14.2.4 nautilus point release
[ceph.git] / ceph / src / rocksdb / buckifier / targets_cfg.py
CommitLineData
7c673cae
FG
1from __future__ import absolute_import
2from __future__ import division
3from __future__ import print_function
4from __future__ import unicode_literals
11fdf7f2 5rocksdb_target_header = """load("@fbcode_macros//build_defs:auto_headers.bzl", "AutoHeaders")
494da23a
TL
6load("@fbcode_macros//build_defs:cpp_library.bzl", "cpp_library")
7load(":defs.bzl", "test_binary")
11fdf7f2
TL
8
9REPO_PATH = package_name() + "/"
10
494da23a 11ROCKSDB_COMPILER_FLAGS = [
11fdf7f2
TL
12 "-fno-builtin-memcmp",
13 "-DROCKSDB_PLATFORM_POSIX",
14 "-DROCKSDB_LIB_IO_POSIX",
15 "-DROCKSDB_FALLOCATE_PRESENT",
16 "-DROCKSDB_MALLOC_USABLE_SIZE",
17 "-DROCKSDB_RANGESYNC_PRESENT",
18 "-DROCKSDB_SCHED_GETCPU_PRESENT",
19 "-DROCKSDB_SUPPORT_THREAD_LOCAL",
20 "-DOS_LINUX",
21 # Flags to enable libs we include
22 "-DSNAPPY",
23 "-DZLIB",
24 "-DBZIP2",
25 "-DLZ4",
26 "-DZSTD",
494da23a 27 "-DZSTD_STATIC_LINKING_ONLY",
11fdf7f2
TL
28 "-DGFLAGS=gflags",
29 "-DNUMA",
30 "-DTBB",
31 # Needed to compile in fbcode
32 "-Wno-expansion-to-defined",
33 # Added missing flags from output of build_detect_platform
34 "-DROCKSDB_PTHREAD_ADAPTIVE_MUTEX",
35 "-DROCKSDB_BACKTRACE",
36 "-Wnarrowing",
7c673cae
FG
37]
38
494da23a 39ROCKSDB_EXTERNAL_DEPS = [
11fdf7f2
TL
40 ("bzip2", None, "bz2"),
41 ("snappy", None, "snappy"),
42 ("zlib", None, "z"),
43 ("gflags", None, "gflags"),
44 ("lz4", None, "lz4"),
45 ("zstd", None),
46 ("tbb", None),
47 ("numa", None, "numa"),
48 ("googletest", None, "gtest"),
7c673cae
FG
49]
50
494da23a 51ROCKSDB_PREPROCESSOR_FLAGS = [
11fdf7f2
TL
52 # Directories with files for #include
53 "-I" + REPO_PATH + "include/",
54 "-I" + REPO_PATH,
7c673cae 55]
11fdf7f2 56
494da23a 57ROCKSDB_ARCH_PREPROCESSOR_FLAGS = {
11fdf7f2
TL
58 "x86_64": [
59 "-DHAVE_SSE42",
60 "-DHAVE_PCLMUL",
61 ],
62}
63
64build_mode = read_config("fbcode", "build_mode")
65
66is_opt_mode = build_mode.startswith("opt")
67
68# -DNDEBUG is added by default in opt mode in fbcode. But adding it twice
69# doesn't harm and avoid forgetting to add it.
494da23a
TL
70ROCKSDB_COMPILER_FLAGS += (["-DNDEBUG"] if is_opt_mode else [])
71
72sanitizer = read_config("fbcode", "sanitizer")
73
74# Do not enable jemalloc if sanitizer presents. RocksDB will further detect
75# whether the binary is linked with jemalloc at runtime.
76ROCKSDB_COMPILER_FLAGS += (["-DROCKSDB_JEMALLOC"] if sanitizer == "" else [])
77
78ROCKSDB_EXTERNAL_DEPS += ([("jemalloc", None, "headers")] if sanitizer == "" else [])
7c673cae
FG
79"""
80
81
82library_template = """
83cpp_library(
11fdf7f2
TL
84 name = "{name}",
85 srcs = [{srcs}],
86 {headers_attr_prefix}headers = {headers},
494da23a
TL
87 arch_preprocessor_flags = ROCKSDB_ARCH_PREPROCESSOR_FLAGS,
88 compiler_flags = ROCKSDB_COMPILER_FLAGS,
89 preprocessor_flags = ROCKSDB_PREPROCESSOR_FLAGS,
11fdf7f2 90 deps = [{deps}],
494da23a 91 external_deps = ROCKSDB_EXTERNAL_DEPS,
7c673cae
FG
92)
93"""
94
95binary_template = """
96cpp_binary(
11fdf7f2
TL
97 name = "%s",
98 srcs = [%s],
494da23a
TL
99 arch_preprocessor_flags = ROCKSDB_ARCH_PREPROCESSOR_FLAGS,
100 compiler_flags = ROCKSDB_COMPILER_FLAGS,
101 preprocessor_flags = ROCKSDB_PREPROCESSOR_FLAGS,
11fdf7f2 102 deps = [%s],
494da23a 103 external_deps = ROCKSDB_EXTERNAL_DEPS,
7c673cae
FG
104)
105"""
106
11fdf7f2
TL
107test_cfg_template = """ [
108 "%s",
109 "%s",
110 "%s",
111 ],
112"""
113
7c673cae
FG
114unittests_template = """
115# [test_name, test_src, test_type]
11fdf7f2
TL
116ROCKS_TESTS = [
117%s]
7c673cae
FG
118
119# Generate a test rule for each entry in ROCKS_TESTS
11fdf7f2
TL
120# Do not build the tests in opt mode, since SyncPoint and other test code
121# will not be included.
494da23a
TL
122[
123 test_binary(
124 parallelism = parallelism,
125 rocksdb_arch_preprocessor_flags = ROCKSDB_ARCH_PREPROCESSOR_FLAGS,
126 rocksdb_compiler_flags = ROCKSDB_COMPILER_FLAGS,
127 rocksdb_external_deps = ROCKSDB_EXTERNAL_DEPS,
128 rocksdb_preprocessor_flags = ROCKSDB_PREPROCESSOR_FLAGS,
129 test_cc = test_cc,
130 test_name = test_name,
131 )
132 for test_name, test_cc, parallelism in ROCKS_TESTS
133 if not is_opt_mode
134]
7c673cae 135"""