92 lines
2.2 KiB
Python
92 lines
2.2 KiB
Python
load("@rules_foreign_cc//foreign_cc:defs.bzl", "cmake")
|
|
|
|
filegroup(
|
|
name = "srcs",
|
|
srcs = glob(
|
|
[
|
|
"src/snmalloc/**/*",
|
|
"src/test/*.h",
|
|
"CMakeLists.txt",
|
|
],
|
|
),
|
|
visibility = ["//visibility:private"],
|
|
)
|
|
|
|
config_setting(
|
|
name = "release_with_debug",
|
|
values = {
|
|
"compilation_mode": "fastbuild",
|
|
},
|
|
)
|
|
|
|
config_setting(
|
|
name = "release",
|
|
values = {
|
|
"compilation_mode": "opt",
|
|
},
|
|
)
|
|
|
|
config_setting(
|
|
name = "debug",
|
|
values = {
|
|
"compilation_mode": "dbg",
|
|
},
|
|
)
|
|
|
|
CMAKE_FLAGS = {
|
|
"CMAKE_INTERPROCEDURAL_OPTIMIZATION": "TRUE",
|
|
"SNMALLOC_OPTIMISE_FOR_CURRENT_MACHINE": "ON",
|
|
"SNMALLOC_USE_SELF_VENDORED_STL": "OFF",
|
|
"SNMALLOC_IPO": "ON",
|
|
"USE_SNMALLOC_STATS": "ON",
|
|
} | select({
|
|
":release_with_debug": {"CMAKE_BUILD_TYPE": "RelWithDebInfo"},
|
|
":release": {"CMAKE_BUILD_TYPE": "Release"},
|
|
":debug": {"CMAKE_BUILD_TYPE": "Debug"},
|
|
"//conditions:default": {"CMAKE_BUILD_TYPE": "Release"},
|
|
})
|
|
|
|
cmake(
|
|
name = "snmalloc",
|
|
cache_entries = CMAKE_FLAGS,
|
|
generate_args = ["-G Ninja"],
|
|
lib_source = ":srcs",
|
|
out_shared_libs = select({
|
|
"@bazel_tools//src/conditions:darwin": [
|
|
"libsnmallocshim-checks-memcpy-only.dylib",
|
|
"libsnmallocshim-checks.dylib",
|
|
"libsnmallocshim.dylib",
|
|
],
|
|
"//conditions:default": [],
|
|
}),
|
|
out_static_libs = [
|
|
"libsnmallocshim-static.a",
|
|
"libsnmalloc-new-override.a",
|
|
],
|
|
postfix_script = "ninja",
|
|
visibility = ["//visibility:public"],
|
|
)
|
|
|
|
cmake(
|
|
name = "snmalloc-rs",
|
|
cache_entries = CMAKE_FLAGS | {
|
|
"SNMALLOC_RUST_SUPPORT": "ON",
|
|
},
|
|
generate_args = ["-G Ninja"],
|
|
lib_source = ":srcs",
|
|
out_shared_libs = select({
|
|
"@bazel_tools//src/conditions:darwin": [
|
|
"libsnmallocshim-checks-memcpy-only.dylib",
|
|
"libsnmallocshim-checks.dylib",
|
|
"libsnmallocshim.dylib",
|
|
],
|
|
"//conditions:default": [],
|
|
}),
|
|
out_static_libs = [
|
|
"libsnmallocshim-static.a",
|
|
"libsnmalloc-new-override.a",
|
|
],
|
|
postfix_script = "ninja",
|
|
visibility = ["//visibility:public"],
|
|
)
|