mirror of https://github.com/mongodb/mongo
2681 lines
53 KiB
Python
2681 lines
53 KiB
Python
load("@bazel_skylib//lib:selects.bzl", "selects")
|
|
load("@bazel_skylib//rules:common_settings.bzl", "bool_flag")
|
|
load(
|
|
"//bazel/config:configs.bzl",
|
|
"allocator",
|
|
"asan",
|
|
"build_enterprise",
|
|
"build_otel",
|
|
"compiler_type",
|
|
"compress_debug_compile",
|
|
"dbg",
|
|
"dbg_level",
|
|
"debug_symbols",
|
|
"detect_odr_violations",
|
|
"developer_dir",
|
|
"disable_streams",
|
|
"disable_warnings_as_errors",
|
|
"dwarf_version",
|
|
"fsan",
|
|
"gcov",
|
|
"http_client",
|
|
"include_autogenerated_targets",
|
|
"include_mongot",
|
|
"js_engine",
|
|
"libunwind",
|
|
"linker",
|
|
"linkstatic",
|
|
"lsan",
|
|
"mongo_toolchain_version",
|
|
"msan",
|
|
"opt",
|
|
"pgo_profile",
|
|
"release",
|
|
"sdkroot",
|
|
"separate_debug",
|
|
"server_js",
|
|
"shared_archive",
|
|
"skip_archive",
|
|
"spider_monkey_dbg",
|
|
"ssl",
|
|
"streams_release_build",
|
|
"thin_lto",
|
|
"tsan",
|
|
"ubsan",
|
|
"use_disable_ref_track",
|
|
"use_gdbserver",
|
|
"use_glibcxx_debug",
|
|
"use_libcxx",
|
|
"use_lldbserver",
|
|
"use_ocsp_stapling",
|
|
"use_wait_for_debugger",
|
|
"use_wiredtiger",
|
|
"visibility_support",
|
|
)
|
|
|
|
package(default_visibility = ["//visibility:public"])
|
|
|
|
# Expose script for external usage through bazel.
|
|
exports_files([
|
|
"generate_config_header.py",
|
|
])
|
|
|
|
# --------------------------------------
|
|
# Compiler types
|
|
# --------------------------------------
|
|
|
|
compiler_type(
|
|
name = "compiler_type",
|
|
build_setting_default = "gcc",
|
|
)
|
|
|
|
config_setting(
|
|
name = "compiler_type_clang",
|
|
flag_values = {
|
|
"//bazel/config:compiler_type": "clang",
|
|
},
|
|
)
|
|
|
|
config_setting(
|
|
name = "compiler_type_gcc",
|
|
flag_values = {
|
|
"//bazel/config:compiler_type": "gcc",
|
|
},
|
|
)
|
|
|
|
config_setting(
|
|
name = "compiler_type_msvc",
|
|
flag_values = {
|
|
"//bazel/config:compiler_type": "msvc",
|
|
},
|
|
)
|
|
|
|
selects.config_setting_group(
|
|
name = "gcc_or_clang",
|
|
match_any = [
|
|
":compiler_type_gcc",
|
|
":compiler_type_clang",
|
|
],
|
|
)
|
|
|
|
selects.config_setting_group(
|
|
name = "linux_gcc_or_clang",
|
|
match_all = [
|
|
"@platforms//os:linux",
|
|
":gcc_or_clang",
|
|
],
|
|
)
|
|
|
|
config_setting(
|
|
name = "linux_gcc",
|
|
constraint_values = [
|
|
"@platforms//os:linux",
|
|
],
|
|
flag_values = {
|
|
"//bazel/config:compiler_type": "gcc",
|
|
},
|
|
)
|
|
|
|
config_setting(
|
|
name = "suse15_gcc",
|
|
constraint_values = [
|
|
"@platforms//os:linux",
|
|
"//bazel/platforms:suse15",
|
|
],
|
|
flag_values = {
|
|
"//bazel/config:compiler_type": "gcc",
|
|
},
|
|
)
|
|
|
|
selects.config_setting_group(
|
|
name = "suse15_gcc_linkstatic",
|
|
match_all = [
|
|
"@platforms//os:linux",
|
|
"//bazel/platforms:suse15",
|
|
":compiler_type_gcc",
|
|
":linkstatic_enabled",
|
|
],
|
|
)
|
|
|
|
selects.config_setting_group(
|
|
name = "rhel9_ppc64le_gcc",
|
|
match_all = [
|
|
"@platforms//os:linux",
|
|
"@platforms//cpu:ppc",
|
|
":compiler_type_gcc",
|
|
"//bazel/platforms:rhel9",
|
|
],
|
|
)
|
|
|
|
selects.config_setting_group(
|
|
name = "rhel9_ppc64le_gcc_linkstatic",
|
|
match_all = [
|
|
"@platforms//os:linux",
|
|
"@platforms//cpu:ppc",
|
|
":compiler_type_gcc",
|
|
"//bazel/platforms:rhel9",
|
|
":linkstatic_enabled",
|
|
],
|
|
)
|
|
|
|
selects.config_setting_group(
|
|
name = "linux_clang",
|
|
match_all = [
|
|
"@platforms//os:linux",
|
|
":compiler_type_clang",
|
|
],
|
|
)
|
|
|
|
selects.config_setting_group(
|
|
name = "linux_clang_linkstatic",
|
|
match_all = [
|
|
"@platforms//os:linux",
|
|
":compiler_type_clang",
|
|
":linkstatic_enabled",
|
|
],
|
|
)
|
|
|
|
selects.config_setting_group(
|
|
name = "macos_gcc_or_clang",
|
|
match_all = [
|
|
"@platforms//os:macos",
|
|
":gcc_or_clang",
|
|
],
|
|
)
|
|
|
|
selects.config_setting_group(
|
|
name = "gcc_opt",
|
|
match_all = [
|
|
":compiler_type_gcc",
|
|
":opt_any",
|
|
],
|
|
)
|
|
|
|
selects.config_setting_group(
|
|
name = "msvc_opt",
|
|
match_all = [
|
|
":compiler_type_msvc",
|
|
":opt_any",
|
|
],
|
|
)
|
|
|
|
# --------------------------------------
|
|
# Architecture + OS combinations
|
|
# --------------------------------------
|
|
|
|
config_setting(
|
|
name = "linux_aarch64",
|
|
constraint_values = [
|
|
"@platforms//os:linux",
|
|
"@platforms//cpu:aarch64",
|
|
],
|
|
)
|
|
|
|
config_setting(
|
|
name = "linux_x86_64",
|
|
constraint_values = [
|
|
"@platforms//os:linux",
|
|
"@platforms//cpu:x86_64",
|
|
],
|
|
)
|
|
|
|
config_setting(
|
|
name = "linux_ppc64le",
|
|
constraint_values = [
|
|
"@platforms//os:linux",
|
|
"@platforms//cpu:ppc",
|
|
],
|
|
)
|
|
|
|
config_setting(
|
|
name = "linux_s390x",
|
|
constraint_values = [
|
|
"@platforms//os:linux",
|
|
"@platforms//cpu:s390x",
|
|
],
|
|
)
|
|
|
|
config_setting(
|
|
name = "windows_x86_64",
|
|
constraint_values = [
|
|
"@platforms//os:windows",
|
|
"@platforms//cpu:x86_64",
|
|
],
|
|
)
|
|
|
|
config_setting(
|
|
name = "macos_x86_64",
|
|
constraint_values = [
|
|
"@platforms//os:macos",
|
|
"@platforms//cpu:x86_64",
|
|
],
|
|
)
|
|
|
|
config_setting(
|
|
name = "macos_aarch64",
|
|
constraint_values = [
|
|
"@platforms//os:macos",
|
|
"@platforms//cpu:aarch64",
|
|
],
|
|
)
|
|
|
|
selects.config_setting_group(
|
|
name = "not_windows",
|
|
match_any = [
|
|
"@platforms//os:macos",
|
|
"@platforms//os:linux",
|
|
],
|
|
)
|
|
|
|
selects.config_setting_group(
|
|
name = "not_linux",
|
|
match_any = [
|
|
"@platforms//os:macos",
|
|
"@platforms//os:windows",
|
|
],
|
|
)
|
|
|
|
selects.config_setting_group(
|
|
name = "not_macos",
|
|
match_any = [
|
|
"@platforms//os:linux",
|
|
"@platforms//os:windows",
|
|
],
|
|
)
|
|
|
|
selects.config_setting_group(
|
|
name = "not_s390x",
|
|
match_any = [
|
|
"@platforms//cpu:aarch64",
|
|
"@platforms//cpu:x86_64",
|
|
"@platforms//cpu:ppc",
|
|
],
|
|
)
|
|
|
|
selects.config_setting_group(
|
|
name = "not_s390x_or_ppc",
|
|
match_any = [
|
|
"@platforms//cpu:aarch64",
|
|
"@platforms//cpu:x86_64",
|
|
],
|
|
)
|
|
|
|
selects.config_setting_group(
|
|
name = "posix",
|
|
match_any = [
|
|
"@platforms//os:macos",
|
|
"@platforms//os:linux",
|
|
],
|
|
)
|
|
|
|
selects.config_setting_group(
|
|
name = "gcc_x86_64",
|
|
match_all = [
|
|
":compiler_type_gcc",
|
|
"@platforms//cpu:x86_64",
|
|
],
|
|
)
|
|
|
|
selects.config_setting_group(
|
|
name = "gcc_aarch64",
|
|
match_all = [
|
|
":compiler_type_gcc",
|
|
"@platforms//cpu:aarch64",
|
|
],
|
|
)
|
|
|
|
selects.config_setting_group(
|
|
name = "ppc_or_s390x",
|
|
match_any = [
|
|
"@platforms//cpu:ppc",
|
|
"@platforms//cpu:s390x",
|
|
],
|
|
)
|
|
|
|
# --------------------------------------
|
|
# mongo_toolchain_version options
|
|
# --------------------------------------
|
|
|
|
mongo_toolchain_version(
|
|
name = "mongo_toolchain_version",
|
|
build_setting_default = "v5",
|
|
)
|
|
|
|
config_setting(
|
|
name = "mongo_toolchain_v4",
|
|
flag_values = {
|
|
"//bazel/config:mongo_toolchain_version": "v4",
|
|
},
|
|
)
|
|
|
|
config_setting(
|
|
name = "mongo_toolchain_v5",
|
|
flag_values = {
|
|
"//bazel/config:mongo_toolchain_version": "v5",
|
|
},
|
|
)
|
|
|
|
# ==========
|
|
# opt
|
|
# ==========
|
|
|
|
opt(
|
|
name = "opt",
|
|
build_setting_default = "auto",
|
|
)
|
|
|
|
config_setting(
|
|
name = "_opt_on",
|
|
flag_values = {
|
|
"//bazel/config:opt": "on",
|
|
},
|
|
)
|
|
|
|
config_setting(
|
|
name = "_opt_off",
|
|
flag_values = {
|
|
"//bazel/config:opt": "off",
|
|
},
|
|
)
|
|
|
|
config_setting(
|
|
name = "_opt_auto",
|
|
flag_values = {
|
|
"//bazel/config:opt": "auto",
|
|
},
|
|
)
|
|
|
|
selects.config_setting_group(
|
|
name = "_opt_on_set_by_auto",
|
|
match_all = [
|
|
":_opt_auto",
|
|
":dbg_disabled",
|
|
],
|
|
)
|
|
|
|
selects.config_setting_group(
|
|
name = "_opt_off_set_by_auto",
|
|
match_all = [
|
|
":_opt_auto",
|
|
":dbg_enabled",
|
|
],
|
|
)
|
|
|
|
# opt=on || (opt=auto && !dbg)
|
|
selects.config_setting_group(
|
|
name = "opt_on",
|
|
match_any = [
|
|
":_opt_on_set_by_auto",
|
|
":_opt_on",
|
|
],
|
|
)
|
|
|
|
# opt=off || (opt=auto && dbg)
|
|
selects.config_setting_group(
|
|
name = "opt_off",
|
|
match_any = [
|
|
":_opt_off_set_by_auto",
|
|
":_opt_off",
|
|
],
|
|
)
|
|
|
|
config_setting(
|
|
name = "opt_size",
|
|
flag_values = {
|
|
"//bazel/config:opt": "size",
|
|
},
|
|
)
|
|
|
|
config_setting(
|
|
name = "opt_debug",
|
|
flag_values = {
|
|
"//bazel/config:opt": "debug",
|
|
},
|
|
)
|
|
|
|
selects.config_setting_group(
|
|
name = "opt_any",
|
|
match_any = [
|
|
":opt_on",
|
|
":opt_size",
|
|
":opt_debug",
|
|
],
|
|
)
|
|
|
|
selects.config_setting_group(
|
|
name = "macos_opt_off",
|
|
match_all = [
|
|
"@platforms//os:macos",
|
|
":opt_off",
|
|
],
|
|
)
|
|
|
|
# ==========
|
|
# dbg
|
|
# ==========
|
|
|
|
dbg(
|
|
name = "dbg",
|
|
build_setting_default = True,
|
|
)
|
|
|
|
config_setting(
|
|
name = "dbg_enabled",
|
|
flag_values = {
|
|
"//bazel/config:dbg": "True",
|
|
},
|
|
)
|
|
|
|
config_setting(
|
|
name = "dbg_disabled",
|
|
flag_values = {
|
|
"//bazel/config:dbg": "False",
|
|
},
|
|
)
|
|
|
|
# ==========
|
|
# dbg_level
|
|
# ==========
|
|
|
|
dbg_level(
|
|
name = "dbg_level",
|
|
build_setting_default = "2",
|
|
)
|
|
|
|
config_setting(
|
|
name = "dbg_level_0",
|
|
flag_values = {
|
|
"//bazel/config:dbg_level": "0",
|
|
},
|
|
)
|
|
|
|
config_setting(
|
|
name = "dbg_level_1",
|
|
flag_values = {
|
|
"//bazel/config:dbg_level": "1",
|
|
},
|
|
)
|
|
|
|
config_setting(
|
|
name = "dbg_level_2",
|
|
flag_values = {
|
|
"//bazel/config:dbg_level": "2",
|
|
},
|
|
)
|
|
|
|
config_setting(
|
|
name = "dbg_level_3",
|
|
flag_values = {
|
|
"//bazel/config:dbg_level": "3",
|
|
},
|
|
)
|
|
|
|
selects.config_setting_group(
|
|
name = "gcc_or_clang_dbg_level_0",
|
|
match_all = [
|
|
":gcc_or_clang",
|
|
":dbg_level_0",
|
|
],
|
|
)
|
|
|
|
selects.config_setting_group(
|
|
name = "gcc_or_clang_dbg_level_1",
|
|
match_all = [
|
|
":gcc_or_clang",
|
|
":dbg_level_1",
|
|
],
|
|
)
|
|
|
|
selects.config_setting_group(
|
|
name = "gcc_or_clang_dbg_level_2",
|
|
match_all = [
|
|
":gcc_or_clang",
|
|
":dbg_level_2",
|
|
],
|
|
)
|
|
|
|
selects.config_setting_group(
|
|
name = "gcc_or_clang_dbg_level_3",
|
|
match_all = [
|
|
":gcc_or_clang",
|
|
":dbg_level_3",
|
|
],
|
|
)
|
|
|
|
# =========
|
|
# debug symbols
|
|
# =========
|
|
|
|
debug_symbols(
|
|
name = "debug_symbols",
|
|
build_setting_default = True,
|
|
)
|
|
|
|
config_setting(
|
|
name = "debug_symbols_enabled",
|
|
flag_values = {
|
|
"//bazel/config:debug_symbols": "True",
|
|
},
|
|
)
|
|
|
|
config_setting(
|
|
name = "debug_symbols_disabled",
|
|
flag_values = {
|
|
"//bazel/config:debug_symbols": "False",
|
|
},
|
|
)
|
|
|
|
selects.config_setting_group(
|
|
name = "not_windows_debug_symbols_disabled",
|
|
match_all = [
|
|
":not_windows",
|
|
":debug_symbols_disabled",
|
|
],
|
|
)
|
|
|
|
# We can't disable windows symbol generation with a flag, we can only omit the flags that generate them
|
|
selects.config_setting_group(
|
|
name = "windows_debug_symbols_enabled",
|
|
match_all = [
|
|
"@platforms//os:windows",
|
|
":debug_symbols_enabled",
|
|
],
|
|
)
|
|
|
|
# ==========
|
|
# release
|
|
# ==========
|
|
|
|
release(
|
|
name = "release",
|
|
build_setting_default = False,
|
|
)
|
|
|
|
config_setting(
|
|
name = "release_enabled",
|
|
flag_values = {
|
|
"//bazel/config:release": "True",
|
|
},
|
|
)
|
|
|
|
config_setting(
|
|
name = "release_disabled",
|
|
flag_values = {
|
|
"//bazel/config:release": "False",
|
|
},
|
|
)
|
|
|
|
selects.config_setting_group(
|
|
name = "linux_dbg",
|
|
match_all = [
|
|
"@platforms//os:linux",
|
|
":dbg_enabled",
|
|
],
|
|
)
|
|
|
|
selects.config_setting_group(
|
|
name = "gcc_or_clang_opt_off",
|
|
match_all = [
|
|
":gcc_or_clang",
|
|
":opt_off",
|
|
],
|
|
)
|
|
|
|
selects.config_setting_group(
|
|
name = "gcc_or_clang_opt_on",
|
|
match_all = [
|
|
":gcc_or_clang",
|
|
":opt_on",
|
|
],
|
|
)
|
|
|
|
selects.config_setting_group(
|
|
name = "gcc_or_clang_opt_any",
|
|
match_all = [
|
|
":gcc_or_clang",
|
|
":opt_any",
|
|
],
|
|
)
|
|
|
|
selects.config_setting_group(
|
|
name = "gcc_or_clang_opt_size",
|
|
match_all = [
|
|
":gcc_or_clang",
|
|
":opt_size",
|
|
],
|
|
)
|
|
|
|
selects.config_setting_group(
|
|
name = "gcc_or_clang_opt_debug",
|
|
match_all = [
|
|
":gcc_or_clang",
|
|
":opt_debug",
|
|
],
|
|
)
|
|
|
|
selects.config_setting_group(
|
|
name = "linux_release",
|
|
match_all = [
|
|
"@platforms//os:linux",
|
|
":release_enabled",
|
|
],
|
|
)
|
|
|
|
selects.config_setting_group(
|
|
name = "windows_dbg_enabled",
|
|
match_all = [
|
|
"@platforms//os:windows",
|
|
":dbg_enabled",
|
|
],
|
|
)
|
|
|
|
selects.config_setting_group(
|
|
name = "windows_dbg_disabled",
|
|
match_all = [
|
|
"@platforms//os:windows",
|
|
":dbg_disabled",
|
|
],
|
|
)
|
|
|
|
selects.config_setting_group(
|
|
name = "windows_opt_off",
|
|
match_all = [
|
|
"@platforms//os:windows",
|
|
":opt_off",
|
|
],
|
|
)
|
|
|
|
selects.config_setting_group(
|
|
name = "windows_opt_on",
|
|
match_all = [
|
|
"@platforms//os:windows",
|
|
":opt_on",
|
|
],
|
|
)
|
|
|
|
selects.config_setting_group(
|
|
name = "windows_opt_any",
|
|
match_all = [
|
|
"@platforms//os:windows",
|
|
":opt_any",
|
|
],
|
|
)
|
|
|
|
selects.config_setting_group(
|
|
name = "windows_opt_size",
|
|
match_all = [
|
|
"@platforms//os:windows",
|
|
":opt_size",
|
|
],
|
|
)
|
|
|
|
selects.config_setting_group(
|
|
name = "windows_opt_debug",
|
|
match_all = [
|
|
"@platforms//os:windows",
|
|
":opt_debug",
|
|
],
|
|
)
|
|
|
|
selects.config_setting_group(
|
|
name = "windows_opt_off_dbg_enabled",
|
|
match_all = [
|
|
"@platforms//os:windows",
|
|
":opt_off",
|
|
":dbg_enabled",
|
|
],
|
|
)
|
|
|
|
# --------------------------------------
|
|
# linker options
|
|
# --------------------------------------
|
|
|
|
linker(
|
|
name = "linker",
|
|
build_setting_default = "auto",
|
|
)
|
|
|
|
# Underscored settings are for flagging configuration errors and for evaluating auto.
|
|
# Use :linker_gold & linker_lld to check the final evaluated linker.
|
|
config_setting(
|
|
name = "_linker_auto",
|
|
flag_values = {
|
|
"//bazel/config:linker": "auto",
|
|
},
|
|
)
|
|
|
|
config_setting(
|
|
name = "_linker_gold",
|
|
flag_values = {
|
|
"//bazel/config:linker": "gold",
|
|
},
|
|
)
|
|
|
|
config_setting(
|
|
name = "_linker_lld",
|
|
flag_values = {
|
|
"//bazel/config:linker": "lld",
|
|
},
|
|
)
|
|
|
|
selects.config_setting_group(
|
|
name = "_linker_gold_set_by_auto",
|
|
match_all = [
|
|
":_linker_auto",
|
|
"@platforms//cpu:s390x",
|
|
"@platforms//os:linux",
|
|
],
|
|
)
|
|
|
|
selects.config_setting_group(
|
|
name = "_linker_lld_set_by_auto",
|
|
match_all = [
|
|
":_linker_auto",
|
|
":not_s390x",
|
|
"@platforms//os:linux",
|
|
],
|
|
)
|
|
|
|
# Final setting intended for external use.
|
|
# linker == gold || (linker == auto && cpu == s390x)
|
|
selects.config_setting_group(
|
|
name = "linker_gold",
|
|
match_any = [
|
|
":_linker_gold_set_by_auto",
|
|
":_linker_gold",
|
|
],
|
|
)
|
|
|
|
# Final setting intended for external use.
|
|
# linker == lld || (linker == auto && cpu == not_s390x)
|
|
selects.config_setting_group(
|
|
name = "linker_lld",
|
|
match_any = [
|
|
":_linker_lld_set_by_auto",
|
|
":_linker_lld",
|
|
],
|
|
)
|
|
|
|
selects.config_setting_group(
|
|
name = "linker_lld_valid_settings",
|
|
match_all = [
|
|
":linker_lld",
|
|
":not_s390x",
|
|
":not_macos",
|
|
],
|
|
)
|
|
|
|
selects.config_setting_group(
|
|
name = "linker_default",
|
|
match_all = [
|
|
":_linker_auto",
|
|
":not_linux",
|
|
],
|
|
)
|
|
|
|
# --------------------------------------
|
|
# libunwind options
|
|
# --------------------------------------
|
|
|
|
libunwind(
|
|
name = "libunwind",
|
|
build_setting_default = "auto",
|
|
)
|
|
|
|
# Underscored settings are for flagging configuration errors and for evaluating auto.
|
|
# Use :libunwind_enabled to check the final result of whether or not it's enabled.
|
|
config_setting(
|
|
name = "_libunwind_on",
|
|
flag_values = {
|
|
"//bazel/config:libunwind": "on",
|
|
},
|
|
)
|
|
|
|
config_setting(
|
|
name = "_libunwind_off",
|
|
flag_values = {
|
|
"//bazel/config:libunwind": "off",
|
|
},
|
|
)
|
|
|
|
config_setting(
|
|
name = "_libunwind_auto",
|
|
flag_values = {
|
|
"//bazel/config:libunwind": "auto",
|
|
},
|
|
)
|
|
|
|
selects.config_setting_group(
|
|
name = "_libunwind_enabled_by_auto",
|
|
match_all = [
|
|
":_libunwind_auto",
|
|
"@platforms//os:linux",
|
|
],
|
|
)
|
|
|
|
selects.config_setting_group(
|
|
name = "_libunwind_disabled_by_auto",
|
|
match_all = [
|
|
":_libunwind_auto",
|
|
":not_linux",
|
|
],
|
|
)
|
|
|
|
selects.config_setting_group(
|
|
name = "_libunwind_enabled_by_on",
|
|
match_all = [
|
|
":_libunwind_on",
|
|
"@platforms//os:linux",
|
|
],
|
|
)
|
|
|
|
# Final setting intended for external use.
|
|
# (libunwind == on && os == linux) || (libunwind == auto && os == linux)
|
|
selects.config_setting_group(
|
|
name = "libunwind_enabled",
|
|
match_any = [
|
|
":_libunwind_enabled_by_on",
|
|
":_libunwind_enabled_by_auto",
|
|
],
|
|
)
|
|
|
|
selects.config_setting_group(
|
|
name = "libunwind_disabled",
|
|
match_any = [
|
|
":_libunwind_off",
|
|
":_libunwind_disabled_by_auto",
|
|
],
|
|
)
|
|
|
|
selects.config_setting_group(
|
|
name = "libunwind_disabled_linux",
|
|
match_all = [
|
|
":libunwind_disabled",
|
|
"@platforms//os:linux",
|
|
],
|
|
)
|
|
|
|
# --------------------------------------
|
|
# gdbserver options
|
|
# --------------------------------------
|
|
|
|
use_gdbserver(
|
|
name = "use_gdbserver",
|
|
build_setting_default = False,
|
|
)
|
|
|
|
config_setting(
|
|
name = "use_gdbserver_enabled",
|
|
flag_values = {
|
|
"//bazel/config:use_gdbserver": "True",
|
|
},
|
|
)
|
|
|
|
# --------------------------------------
|
|
# Spider Monkey Debug options
|
|
# --------------------------------------
|
|
|
|
spider_monkey_dbg(
|
|
name = "spider_monkey_dbg",
|
|
build_setting_default = False,
|
|
)
|
|
|
|
config_setting(
|
|
name = "spider_monkey_dbg_enabled",
|
|
flag_values = {
|
|
"//bazel/config:spider_monkey_dbg": "True",
|
|
},
|
|
)
|
|
|
|
# --------------------------------------
|
|
# Include MongoT options
|
|
# --------------------------------------
|
|
|
|
include_mongot(
|
|
name = "include_mongot",
|
|
build_setting_default = False,
|
|
)
|
|
|
|
config_setting(
|
|
name = "include_mongot_enabled",
|
|
flag_values = {
|
|
"//bazel/config:include_mongot": "True",
|
|
},
|
|
)
|
|
|
|
# --------------------------------------
|
|
# Include autogenerated target options
|
|
# --------------------------------------
|
|
|
|
include_autogenerated_targets(
|
|
name = "include_autogenerated_targets",
|
|
build_setting_default = False,
|
|
)
|
|
|
|
config_setting(
|
|
name = "include_autogenerated_targets_enabled",
|
|
flag_values = {
|
|
"//bazel/config:include_autogenerated_targets": "True",
|
|
},
|
|
)
|
|
|
|
# --------------------------------------
|
|
# allocator options
|
|
# --------------------------------------
|
|
|
|
allocator(
|
|
name = "allocator",
|
|
build_setting_default = "auto",
|
|
)
|
|
|
|
config_setting(
|
|
name = "_tcmalloc_google",
|
|
flag_values = {
|
|
"//bazel/config:allocator": "tcmalloc-google",
|
|
},
|
|
)
|
|
|
|
config_setting(
|
|
name = "_tcmalloc_gperf",
|
|
flag_values = {
|
|
"//bazel/config:allocator": "tcmalloc-gperf",
|
|
},
|
|
)
|
|
|
|
config_setting(
|
|
name = "_system_allocator",
|
|
flag_values = {
|
|
"//bazel/config:allocator": "system",
|
|
},
|
|
)
|
|
|
|
config_setting(
|
|
name = "_auto_allocator",
|
|
flag_values = {
|
|
"//bazel/config:allocator": "auto",
|
|
},
|
|
)
|
|
|
|
selects.config_setting_group(
|
|
name = "_tcmalloc_google_supported_archs",
|
|
match_any = [
|
|
"@platforms//cpu:aarch64",
|
|
"@platforms//cpu:x86_64",
|
|
],
|
|
)
|
|
|
|
selects.config_setting_group(
|
|
name = "_tcmalloc_google_selected_by_auto",
|
|
match_all = [
|
|
":_auto_allocator",
|
|
"@platforms//os:linux",
|
|
":_tcmalloc_google_supported_archs",
|
|
],
|
|
)
|
|
|
|
selects.config_setting_group(
|
|
name = "_tcmalloc_gperf_auto_supported",
|
|
match_any = [
|
|
"@platforms//os:windows",
|
|
"@platforms//cpu:ppc",
|
|
"@platforms//cpu:s390x",
|
|
],
|
|
)
|
|
|
|
selects.config_setting_group(
|
|
name = "_tcmalloc_gperf_supported_os",
|
|
match_any = [
|
|
"@platforms//os:windows",
|
|
"@platforms//os:linux",
|
|
],
|
|
)
|
|
|
|
selects.config_setting_group(
|
|
name = "_tcmalloc_gperf_selected_by_auto",
|
|
match_all = [
|
|
":_auto_allocator",
|
|
":_tcmalloc_gperf_auto_supported",
|
|
],
|
|
)
|
|
|
|
selects.config_setting_group(
|
|
name = "_system_allocator_enabled_by_auto",
|
|
match_all = [
|
|
":_auto_allocator",
|
|
"@platforms//os:macos",
|
|
],
|
|
)
|
|
|
|
selects.config_setting_group(
|
|
name = "_tcmalloc_google_selected",
|
|
match_any = [
|
|
":_tcmalloc_google_selected_by_auto",
|
|
":_tcmalloc_google",
|
|
],
|
|
)
|
|
|
|
selects.config_setting_group(
|
|
name = "_tcmalloc_gperf_selected",
|
|
match_any = [
|
|
":_tcmalloc_gperf_selected_by_auto",
|
|
":_tcmalloc_gperf",
|
|
],
|
|
)
|
|
|
|
selects.config_setting_group(
|
|
name = "system_allocator_enabled",
|
|
match_any = [
|
|
":_system_allocator_enabled_by_auto",
|
|
":_system_allocator",
|
|
],
|
|
)
|
|
|
|
selects.config_setting_group(
|
|
name = "tcmalloc_google_enabled",
|
|
match_all = [
|
|
":_tcmalloc_google_selected",
|
|
"@platforms//os:linux",
|
|
":_tcmalloc_google_supported_archs",
|
|
],
|
|
)
|
|
|
|
selects.config_setting_group(
|
|
name = "tcmalloc_gperf_enabled",
|
|
match_all = [
|
|
":_tcmalloc_gperf_selected",
|
|
":_tcmalloc_gperf_supported_os",
|
|
],
|
|
)
|
|
|
|
selects.config_setting_group(
|
|
name = "non_system_allocator_enabled",
|
|
match_any = [
|
|
":tcmalloc_google_enabled",
|
|
":tcmalloc_gperf_enabled",
|
|
],
|
|
)
|
|
|
|
selects.config_setting_group(
|
|
name = "non_system_allocator_enabled_and_debug",
|
|
match_all = [
|
|
":non_system_allocator_enabled",
|
|
":dbg_enabled",
|
|
],
|
|
)
|
|
|
|
# --------------------------------------
|
|
# gdbserver options
|
|
# --------------------------------------
|
|
|
|
use_lldbserver(
|
|
name = "use_lldbserver",
|
|
build_setting_default = False,
|
|
)
|
|
|
|
config_setting(
|
|
name = "use_lldbserver_enabled",
|
|
flag_values = {
|
|
"//bazel/config:use_lldbserver": "True",
|
|
},
|
|
)
|
|
|
|
# --------------------------------------
|
|
# wait-for-debugger options
|
|
# --------------------------------------
|
|
|
|
use_wait_for_debugger(
|
|
name = "use_wait_for_debugger",
|
|
build_setting_default = False,
|
|
)
|
|
|
|
config_setting(
|
|
name = "use_wait_for_debugger_enabled",
|
|
flag_values = {
|
|
"//bazel/config:use_wait_for_debugger": "True",
|
|
},
|
|
)
|
|
|
|
# --------------------------------------
|
|
# ocsp-stapling options
|
|
# --------------------------------------
|
|
|
|
use_ocsp_stapling(
|
|
name = "use_ocsp_stapling",
|
|
build_setting_default = True,
|
|
)
|
|
|
|
config_setting(
|
|
name = "use_ocsp_stapling_enabled",
|
|
flag_values = {
|
|
"//bazel/config:use_ocsp_stapling": "True",
|
|
},
|
|
)
|
|
|
|
# --------------------------------------
|
|
# disable-ref-track options
|
|
# --------------------------------------
|
|
|
|
use_disable_ref_track(
|
|
name = "use_disable_ref_track",
|
|
build_setting_default = False,
|
|
)
|
|
|
|
config_setting(
|
|
name = "use_disable_ref_track_enabled",
|
|
flag_values = {
|
|
"//bazel/config:use_disable_ref_track": "True",
|
|
},
|
|
)
|
|
|
|
config_setting(
|
|
name = "use_disable_ref_track_disabled",
|
|
flag_values = {
|
|
"//bazel/config:use_disable_ref_track": "False",
|
|
},
|
|
)
|
|
|
|
selects.config_setting_group(
|
|
name = "selected_disable_ref_track",
|
|
match_any = [
|
|
":use_disable_ref_track_disabled",
|
|
":release_enabled",
|
|
],
|
|
)
|
|
|
|
# --------------------------------------
|
|
# wiredtiger options
|
|
# --------------------------------------
|
|
|
|
use_wiredtiger(
|
|
name = "use_wiredtiger",
|
|
build_setting_default = True,
|
|
)
|
|
|
|
config_setting(
|
|
name = "use_wiredtiger_enabled",
|
|
flag_values = {
|
|
"//bazel/config:use_wiredtiger": "True",
|
|
},
|
|
)
|
|
|
|
# --------------------------------------
|
|
# glibcxx debug options
|
|
# --------------------------------------
|
|
|
|
use_glibcxx_debug(
|
|
name = "use_glibcxx_debug",
|
|
build_setting_default = False,
|
|
)
|
|
|
|
config_setting(
|
|
name = "use_glibcxx_debug_enabled",
|
|
flag_values = {
|
|
"//bazel/config:use_glibcxx_debug": "True",
|
|
},
|
|
)
|
|
|
|
config_setting(
|
|
name = "use_glibcxx_debug_disabled",
|
|
flag_values = {
|
|
"//bazel/config:use_glibcxx_debug": "False",
|
|
},
|
|
)
|
|
|
|
# --------------------------------------------
|
|
# ------- computed glibcxx debug flags -------
|
|
|
|
# If we are using a modern libstdc++ and this is a debug build and we control all C++
|
|
# dependencies, then turn on the debugging features in libstdc++.
|
|
selects.config_setting_group(
|
|
name = "use_glibcxx_debug_required_settings",
|
|
#TODO SERVER-84714 add check to ensure we are using the toolchain version of C++ libs
|
|
match_all = [
|
|
":use_glibcxx_debug_enabled",
|
|
":dbg_enabled",
|
|
":use_libcxx_disabled",
|
|
],
|
|
)
|
|
|
|
# --------------------------------------
|
|
# libc++ options
|
|
# --------------------------------------
|
|
|
|
use_libcxx(
|
|
name = "use_libcxx",
|
|
build_setting_default = False,
|
|
)
|
|
|
|
# TODO SERVER-85340 when libc++ is readded remove the macos constraint
|
|
config_setting(
|
|
name = "use_libcxx_enabled",
|
|
constraint_values = [
|
|
"@platforms//os:macos",
|
|
],
|
|
flag_values = {
|
|
"//bazel/config:use_libcxx": "True",
|
|
},
|
|
)
|
|
|
|
config_setting(
|
|
name = "use_libcxx_disabled",
|
|
flag_values = {
|
|
"//bazel/config:use_libcxx": "False",
|
|
},
|
|
)
|
|
|
|
# --------------------------------------------
|
|
# ----------- computed libc++ flags ----------
|
|
selects.config_setting_group(
|
|
name = "use_libcxx_required_settings",
|
|
match_all = [
|
|
":use_libcxx_enabled",
|
|
":compiler_type_clang",
|
|
],
|
|
)
|
|
|
|
# --------------------------------------
|
|
# grpc options
|
|
# --------------------------------------
|
|
|
|
config_setting(
|
|
name = "build_grpc_enabled",
|
|
constraint_values = [
|
|
"@platforms//os:linux",
|
|
],
|
|
flag_values = {
|
|
"//bazel/config:ssl": "True",
|
|
},
|
|
)
|
|
|
|
# --------------------------------------
|
|
# otel options
|
|
# --------------------------------------
|
|
|
|
build_otel(
|
|
name = "build_otel",
|
|
build_setting_default = False,
|
|
)
|
|
|
|
config_setting(
|
|
name = "build_otel_enabled",
|
|
constraint_values = [
|
|
"@platforms//os:linux",
|
|
],
|
|
flag_values = {
|
|
"//bazel/config:build_otel": "True",
|
|
"//bazel/config:release": "False",
|
|
},
|
|
)
|
|
|
|
# --------------------------------------
|
|
# linkstatic options
|
|
# --------------------------------------
|
|
|
|
linkstatic(
|
|
name = "linkstatic",
|
|
build_setting_default = False,
|
|
)
|
|
|
|
config_setting(
|
|
name = "linkstatic_enabled",
|
|
flag_values = {
|
|
"//bazel/config:linkstatic": "True",
|
|
},
|
|
)
|
|
|
|
config_setting(
|
|
name = "linkstatic_disabled",
|
|
flag_values = {
|
|
"//bazel/config:linkstatic": "False",
|
|
},
|
|
)
|
|
|
|
selects.config_setting_group(
|
|
name = "linkdynamic_required_settings",
|
|
match_all = [
|
|
":linkstatic_disabled",
|
|
":not_windows",
|
|
],
|
|
)
|
|
|
|
selects.config_setting_group(
|
|
name = "tsan_linkdynamic_required_settings",
|
|
match_all = [
|
|
":shared_archive_or_link_dynamic",
|
|
":not_windows",
|
|
],
|
|
)
|
|
|
|
selects.config_setting_group(
|
|
name = "linkdynamic_not_shared_archive",
|
|
match_all = [
|
|
":linkstatic_disabled",
|
|
":shared_archive_disabled",
|
|
],
|
|
)
|
|
|
|
selects.config_setting_group(
|
|
name = "linkstatic_enabled_macos",
|
|
match_all = [
|
|
":linkstatic_enabled",
|
|
"@platforms//os:macos",
|
|
],
|
|
)
|
|
|
|
selects.config_setting_group(
|
|
name = "linkstatic_enabled_linux",
|
|
match_all = [
|
|
":linkstatic_enabled",
|
|
"@platforms//os:linux",
|
|
],
|
|
)
|
|
|
|
# --------------------------------------
|
|
# sanitizer options
|
|
# --------------------------------------
|
|
|
|
# ------ address sanitizer --------
|
|
|
|
asan(
|
|
name = "asan",
|
|
build_setting_default = False,
|
|
)
|
|
|
|
config_setting(
|
|
name = "asan_enabled",
|
|
flag_values = {
|
|
"//bazel/config:asan": "True",
|
|
},
|
|
)
|
|
|
|
config_setting(
|
|
name = "asan_disabled",
|
|
flag_values = {
|
|
"//bazel/config:asan": "False",
|
|
},
|
|
)
|
|
|
|
# ------ fuzzer sanitizer --------
|
|
|
|
fsan(
|
|
name = "fsan",
|
|
build_setting_default = False,
|
|
)
|
|
|
|
config_setting(
|
|
name = "fsan_enabled",
|
|
flag_values = {
|
|
"//bazel/config:fsan": "True",
|
|
},
|
|
)
|
|
|
|
config_setting(
|
|
name = "fsan_disabled",
|
|
flag_values = {
|
|
"//bazel/config:fsan": "False",
|
|
},
|
|
)
|
|
|
|
# ------ leak sanitizer --------
|
|
|
|
lsan(
|
|
name = "lsan",
|
|
build_setting_default = False,
|
|
)
|
|
|
|
config_setting(
|
|
name = "lsan_enabled",
|
|
flag_values = {
|
|
"//bazel/config:lsan": "True",
|
|
},
|
|
)
|
|
|
|
config_setting(
|
|
name = "lsan_disabled",
|
|
flag_values = {
|
|
"//bazel/config:lsan": "False",
|
|
},
|
|
)
|
|
|
|
# ------ memory sanitizer --------
|
|
|
|
msan(
|
|
name = "msan",
|
|
build_setting_default = False,
|
|
)
|
|
|
|
config_setting(
|
|
name = "msan_enabled",
|
|
flag_values = {
|
|
"//bazel/config:msan": "True",
|
|
},
|
|
)
|
|
|
|
config_setting(
|
|
name = "msan_disabled",
|
|
flag_values = {
|
|
"//bazel/config:msan": "False",
|
|
},
|
|
)
|
|
|
|
# ------ thread sanitizer --------
|
|
|
|
tsan(
|
|
name = "tsan",
|
|
build_setting_default = False,
|
|
)
|
|
|
|
config_setting(
|
|
name = "tsan_enabled",
|
|
flag_values = {
|
|
"//bazel/config:tsan": "True",
|
|
},
|
|
)
|
|
|
|
config_setting(
|
|
name = "tsan_disabled",
|
|
flag_values = {
|
|
"//bazel/config:tsan": "False",
|
|
},
|
|
)
|
|
|
|
# ------ undefined sanitizer --------
|
|
|
|
ubsan(
|
|
name = "ubsan",
|
|
build_setting_default = False,
|
|
)
|
|
|
|
config_setting(
|
|
name = "ubsan_enabled",
|
|
flag_values = {
|
|
"//bazel/config:ubsan": "True",
|
|
},
|
|
)
|
|
|
|
config_setting(
|
|
name = "ubsan_disabled",
|
|
flag_values = {
|
|
"//bazel/config:ubsan": "False",
|
|
},
|
|
)
|
|
|
|
# --------------------------------------------
|
|
# ----------- computed sanitizer flags -------
|
|
|
|
selects.config_setting_group(
|
|
name = "sanitize_build_mode",
|
|
match_any = [
|
|
":opt_on",
|
|
":opt_debug",
|
|
],
|
|
)
|
|
|
|
selects.config_setting_group(
|
|
name = "all_sanitizer_required_settings",
|
|
match_all = [
|
|
":sanitize_build_mode",
|
|
":compiler_type_clang",
|
|
],
|
|
)
|
|
|
|
selects.config_setting_group(
|
|
name = "any_enabled_sanitizer",
|
|
match_any = [
|
|
":asan_enabled",
|
|
":fsan_enabled",
|
|
":msan_enabled",
|
|
":lsan_enabled",
|
|
":tsan_enabled",
|
|
":ubsan_enabled",
|
|
],
|
|
)
|
|
|
|
selects.config_setting_group(
|
|
name = "no_enabled_sanitizer",
|
|
match_all = [
|
|
":asan_disabled",
|
|
":fsan_disabled",
|
|
":msan_disabled",
|
|
":lsan_disabled",
|
|
":tsan_disabled",
|
|
":ubsan_disabled",
|
|
],
|
|
)
|
|
|
|
selects.config_setting_group(
|
|
name = "any_sanitizer_required_setting",
|
|
match_all = [
|
|
":any_enabled_sanitizer",
|
|
":all_sanitizer_required_settings",
|
|
],
|
|
)
|
|
|
|
selects.config_setting_group(
|
|
name = "any_sanitizer_aarch64",
|
|
match_all = [
|
|
":any_sanitizer_required_setting",
|
|
"@platforms//cpu:aarch64",
|
|
],
|
|
)
|
|
|
|
selects.config_setting_group(
|
|
name = "any_sanitizer_x86_64",
|
|
match_all = [
|
|
":any_sanitizer_required_setting",
|
|
"@platforms//cpu:x86_64",
|
|
],
|
|
)
|
|
|
|
selects.config_setting_group(
|
|
name = "any_sanitizer_gcc",
|
|
match_all = [
|
|
":any_enabled_sanitizer",
|
|
":compiler_type_gcc",
|
|
],
|
|
)
|
|
|
|
selects.config_setting_group(
|
|
name = "any_sanitizer_clang",
|
|
match_all = [
|
|
":any_enabled_sanitizer",
|
|
":compiler_type_clang",
|
|
],
|
|
)
|
|
|
|
config_setting(
|
|
name = "asan_enabled_clang",
|
|
flag_values = {
|
|
"//bazel/config:asan": "True",
|
|
"//bazel/config:compiler_type": "clang",
|
|
},
|
|
)
|
|
|
|
config_setting(
|
|
name = "msan_enabled_clang",
|
|
flag_values = {
|
|
"//bazel/config:msan": "True",
|
|
"//bazel/config:compiler_type": "clang",
|
|
},
|
|
)
|
|
|
|
config_setting(
|
|
name = "ubsan_enabled_clang",
|
|
flag_values = {
|
|
"//bazel/config:ubsan": "True",
|
|
"//bazel/config:compiler_type": "clang",
|
|
},
|
|
)
|
|
|
|
config_setting(
|
|
name = "tsan_enabled_clang",
|
|
flag_values = {
|
|
"//bazel/config:tsan": "True",
|
|
"//bazel/config:compiler_type": "clang",
|
|
},
|
|
)
|
|
|
|
selects.config_setting_group(
|
|
name = "sanitize_address_required_settings",
|
|
match_all = [
|
|
":asan_enabled",
|
|
":system_allocator_enabled",
|
|
],
|
|
)
|
|
|
|
selects.config_setting_group(
|
|
name = "sanitize_memory_required_settings",
|
|
match_all = [
|
|
":msan_enabled",
|
|
":system_allocator_enabled",
|
|
],
|
|
)
|
|
|
|
selects.config_setting_group(
|
|
name = "sanitize_without_tsan",
|
|
match_all = [
|
|
":any_enabled_sanitizer",
|
|
":tsan_disabled",
|
|
],
|
|
)
|
|
|
|
selects.config_setting_group(
|
|
name = "sanitize_fuzzer_required_settings",
|
|
match_all = [
|
|
":fsan_enabled",
|
|
":system_allocator_enabled",
|
|
],
|
|
)
|
|
|
|
selects.config_setting_group(
|
|
name = "sanitize_thread_required_settings",
|
|
match_all = [
|
|
":tsan_enabled",
|
|
":libunwind_disabled",
|
|
":tsan_linkdynamic_required_settings",
|
|
],
|
|
)
|
|
|
|
selects.config_setting_group(
|
|
name = "sanitize_undefined_without_fuzzer_settings",
|
|
match_all = [
|
|
":ubsan_enabled",
|
|
":fsan_disabled",
|
|
],
|
|
)
|
|
|
|
selects.config_setting_group(
|
|
name = "sanitize_undefined_dynamic_link_settings",
|
|
match_all = [
|
|
":ubsan_enabled",
|
|
":linkstatic_disabled",
|
|
],
|
|
)
|
|
|
|
selects.config_setting_group(
|
|
name = "sanitize_undefined_static_link_settings",
|
|
match_all = [
|
|
":ubsan_enabled",
|
|
":linkstatic_enabled",
|
|
],
|
|
)
|
|
|
|
# --------------------------------------
|
|
# separate_debug options
|
|
# --------------------------------------
|
|
|
|
separate_debug(
|
|
name = "separate_debug",
|
|
build_setting_default = False,
|
|
)
|
|
|
|
config_setting(
|
|
name = "separate_debug_enabled",
|
|
flag_values = {
|
|
"//bazel/config:separate_debug": "True",
|
|
},
|
|
)
|
|
|
|
# --------------------------------------
|
|
# http_client options
|
|
# --------------------------------------
|
|
|
|
http_client(
|
|
name = "http_client",
|
|
build_setting_default = True,
|
|
)
|
|
|
|
config_setting(
|
|
name = "http_client_enabled",
|
|
flag_values = {
|
|
"//bazel/config:http_client": "True",
|
|
},
|
|
)
|
|
|
|
config_setting(
|
|
name = "http_client_disabled",
|
|
flag_values = {
|
|
"//bazel/config:http_client": "False",
|
|
},
|
|
)
|
|
|
|
# --------------------------------------
|
|
# use_tracing_profiler options
|
|
# --------------------------------------
|
|
|
|
bool_flag(
|
|
name = "use_tracing_profiler",
|
|
build_setting_default = False,
|
|
)
|
|
|
|
config_setting(
|
|
name = "use_tracing_profiler_enabled",
|
|
flag_values = {
|
|
"//bazel/config:use_tracing_profiler": "True",
|
|
},
|
|
)
|
|
|
|
config_setting(
|
|
name = "use_tracing_profiler_disabled",
|
|
flag_values = {
|
|
"//bazel/config:use_tracing_profiler": "False",
|
|
},
|
|
)
|
|
|
|
# --------------------------------------
|
|
# shared_archive options
|
|
# --------------------------------------
|
|
|
|
shared_archive(
|
|
name = "shared_archive",
|
|
build_setting_default = False,
|
|
)
|
|
|
|
config_setting(
|
|
name = "shared_archive_enabled",
|
|
flag_values = {
|
|
"//bazel/config:shared_archive": "True",
|
|
},
|
|
)
|
|
|
|
config_setting(
|
|
name = "shared_archive_disabled",
|
|
flag_values = {
|
|
"//bazel/config:shared_archive": "False",
|
|
},
|
|
)
|
|
|
|
selects.config_setting_group(
|
|
name = "shared_archive_or_link_dynamic",
|
|
match_any = [
|
|
":shared_archive_enabled",
|
|
":linkstatic_disabled",
|
|
],
|
|
)
|
|
|
|
selects.config_setting_group(
|
|
name = "shared_archive_enabled_gcc",
|
|
match_all = [
|
|
":shared_archive_enabled",
|
|
":compiler_type_gcc",
|
|
],
|
|
)
|
|
|
|
# --------------------------------------
|
|
# skip_archive options
|
|
# --------------------------------------
|
|
|
|
skip_archive(
|
|
name = "skip_archive",
|
|
build_setting_default = False,
|
|
)
|
|
|
|
config_setting(
|
|
name = "skip_archive_enabled",
|
|
flag_values = {
|
|
"//bazel/config:skip_archive": "True",
|
|
},
|
|
)
|
|
|
|
config_setting(
|
|
name = "skip_archive_disabled",
|
|
flag_values = {
|
|
"//bazel/config:skip_archive": "False",
|
|
},
|
|
)
|
|
|
|
selects.config_setting_group(
|
|
name = "skip_archive_linkstatic_not_windows",
|
|
match_all = [
|
|
":skip_archive_enabled",
|
|
":not_windows",
|
|
":linkstatic_enabled",
|
|
],
|
|
)
|
|
|
|
# --------------------------------------
|
|
# detect-odr-violations options
|
|
# --------------------------------------
|
|
|
|
detect_odr_violations(
|
|
name = "detect_odr_violations",
|
|
build_setting_default = False,
|
|
)
|
|
|
|
config_setting(
|
|
name = "detect_odr_violations_enabled",
|
|
flag_values = {
|
|
"//bazel/config:detect_odr_violations": "True",
|
|
},
|
|
)
|
|
|
|
config_setting(
|
|
name = "detect_odr_violations_disabled",
|
|
flag_values = {
|
|
"//bazel/config:detect_odr_violations": "False",
|
|
},
|
|
)
|
|
|
|
selects.config_setting_group(
|
|
name = "detect_odr_violations_required_settings",
|
|
match_all = [
|
|
":opt_off",
|
|
":detect_odr_violations_enabled",
|
|
":linker_gold",
|
|
],
|
|
)
|
|
|
|
# --------------------------------------
|
|
# build_enterprise
|
|
# --------------------------------------
|
|
|
|
build_enterprise(
|
|
name = "build_enterprise",
|
|
build_setting_default = False,
|
|
)
|
|
|
|
config_setting(
|
|
name = "build_enterprise_enabled",
|
|
flag_values = {
|
|
"//bazel/config:build_enterprise": "True",
|
|
},
|
|
)
|
|
|
|
config_setting(
|
|
name = "build_enterprise_disabled",
|
|
flag_values = {
|
|
"//bazel/config:build_enterprise": "False",
|
|
},
|
|
)
|
|
|
|
selects.config_setting_group(
|
|
name = "build_enterprise_linux_enabled",
|
|
match_all = [
|
|
":build_enterprise_enabled",
|
|
"@platforms//os:linux",
|
|
],
|
|
)
|
|
|
|
selects.config_setting_group(
|
|
name = "build_enterprise_windows_enabled",
|
|
match_all = [
|
|
":build_enterprise_enabled",
|
|
"@platforms//os:windows",
|
|
],
|
|
)
|
|
|
|
selects.config_setting_group(
|
|
name = "build_enterprise_mac_enabled",
|
|
match_all = [
|
|
":build_enterprise_enabled",
|
|
"@platforms//os:macos",
|
|
],
|
|
)
|
|
|
|
selects.config_setting_group(
|
|
name = "build_enterprise_linux_disabled",
|
|
match_all = [
|
|
":build_enterprise_disabled",
|
|
"@platforms//os:linux",
|
|
],
|
|
)
|
|
|
|
selects.config_setting_group(
|
|
name = "build_enterprise_windows_disabled",
|
|
match_all = [
|
|
":build_enterprise_disabled",
|
|
"@platforms//os:windows",
|
|
],
|
|
)
|
|
|
|
selects.config_setting_group(
|
|
name = "build_enterprise_mac_disabled",
|
|
match_all = [
|
|
":build_enterprise_disabled",
|
|
"@platforms//os:macos",
|
|
],
|
|
)
|
|
|
|
# --------------------------------------
|
|
# streams non release options
|
|
# --------------------------------------
|
|
|
|
disable_streams(
|
|
name = "disable_streams",
|
|
build_setting_default = False,
|
|
)
|
|
|
|
config_setting(
|
|
name = "streams_enabled",
|
|
flag_values = {
|
|
"//bazel/config:disable_streams": "False",
|
|
},
|
|
)
|
|
|
|
# --------------------------------------
|
|
# stream_release_build
|
|
# --------------------------------------
|
|
|
|
streams_release_build(
|
|
name = "streams_release_build",
|
|
build_setting_default = False,
|
|
)
|
|
|
|
config_setting(
|
|
name = "streams_release_build_enabled",
|
|
flag_values = {
|
|
"//bazel/config:streams_release_build": "True",
|
|
},
|
|
)
|
|
|
|
config_setting(
|
|
name = "streams_release_build_disabled",
|
|
flag_values = {
|
|
"//bazel/config:streams_release_build": "False",
|
|
},
|
|
)
|
|
|
|
selects.config_setting_group(
|
|
name = "platform_for_streaming_build",
|
|
match_any = [
|
|
":linux_aarch64",
|
|
":linux_x86_64",
|
|
],
|
|
)
|
|
|
|
# The streams_release_build flag is effectively a guard to assure streams are not
|
|
# built on release builds. For non-release builds, it's not required.
|
|
selects.config_setting_group(
|
|
name = "_streams_for_release_build",
|
|
match_all = [
|
|
":release_enabled",
|
|
":streams_release_build_enabled",
|
|
":platform_for_streaming_build",
|
|
":ssl_enabled_linux",
|
|
],
|
|
)
|
|
|
|
selects.config_setting_group(
|
|
name = "_streams_for_non_release_build",
|
|
match_all = [
|
|
":release_disabled",
|
|
":platform_for_streaming_build",
|
|
":ssl_enabled_linux",
|
|
":streams_enabled",
|
|
],
|
|
)
|
|
|
|
selects.config_setting_group(
|
|
name = "streams_release_build_required_setting",
|
|
match_any = [
|
|
":_streams_for_release_build",
|
|
":_streams_for_non_release_build",
|
|
],
|
|
)
|
|
|
|
# --------------------------------------
|
|
# stream_release_build
|
|
# --------------------------------------
|
|
|
|
visibility_support(
|
|
name = "visibility_support",
|
|
build_setting_default = "auto",
|
|
)
|
|
|
|
config_setting(
|
|
name = "visibility_support_auto",
|
|
flag_values = {
|
|
"//bazel/config:visibility_support": "auto",
|
|
},
|
|
)
|
|
|
|
config_setting(
|
|
name = "visibility_support_on",
|
|
flag_values = {
|
|
"//bazel/config:visibility_support": "on",
|
|
},
|
|
)
|
|
|
|
selects.config_setting_group(
|
|
name = "visibility_support_auto_non_windows_dynamic_linking",
|
|
match_all = [
|
|
":visibility_support_auto",
|
|
":not_windows",
|
|
":linkstatic_disabled",
|
|
],
|
|
)
|
|
|
|
selects.config_setting_group(
|
|
name = "visibility_support_enabled_setting",
|
|
match_any = [
|
|
":visibility_support_auto_non_windows_dynamic_linking",
|
|
":visibility_support_on",
|
|
],
|
|
)
|
|
|
|
selects.config_setting_group(
|
|
name = "visibility_support_enabled_dynamic_linking_setting",
|
|
match_all = [
|
|
":visibility_support_enabled_setting",
|
|
":linkstatic_disabled",
|
|
],
|
|
)
|
|
|
|
selects.config_setting_group(
|
|
name = "visibility_support_enabled_dynamic_linking_non_windows_setting",
|
|
match_all = [
|
|
":not_windows",
|
|
":visibility_support_enabled_setting",
|
|
":linkstatic_disabled",
|
|
],
|
|
)
|
|
|
|
# --------------------------------------
|
|
# dwarf_version
|
|
# --------------------------------------
|
|
|
|
dwarf_version(
|
|
name = "dwarf_version",
|
|
build_setting_default = "",
|
|
)
|
|
|
|
config_setting(
|
|
name = "dwarf_version_4",
|
|
flag_values = {
|
|
"//bazel/config:dwarf_version": "4",
|
|
},
|
|
)
|
|
|
|
config_setting(
|
|
name = "dwarf_version_5",
|
|
flag_values = {
|
|
"//bazel/config:dwarf_version": "5",
|
|
},
|
|
)
|
|
|
|
selects.config_setting_group(
|
|
name = "dwarf_version_4_linux",
|
|
match_all = [
|
|
"@platforms//os:linux",
|
|
":dwarf_version_4",
|
|
],
|
|
)
|
|
|
|
selects.config_setting_group(
|
|
name = "dwarf_version_5_linux",
|
|
match_all = [
|
|
"@platforms//os:linux",
|
|
":dwarf_version_5",
|
|
],
|
|
)
|
|
|
|
# --------------------------------------
|
|
# disable_warnings_as_errors
|
|
# --------------------------------------
|
|
|
|
disable_warnings_as_errors(
|
|
name = "disable_warnings_as_errors",
|
|
build_setting_default = False,
|
|
)
|
|
|
|
config_setting(
|
|
name = "warnings_as_errors_disabled",
|
|
flag_values = {
|
|
"//bazel/config:disable_warnings_as_errors": "True",
|
|
},
|
|
)
|
|
|
|
config_setting(
|
|
name = "warnings_as_errors_enabled",
|
|
flag_values = {
|
|
"//bazel/config:disable_warnings_as_errors": "False",
|
|
},
|
|
)
|
|
|
|
selects.config_setting_group(
|
|
name = "disable_warnings_as_errors_linux",
|
|
match_all = [
|
|
"@platforms//os:linux",
|
|
":warnings_as_errors_enabled",
|
|
],
|
|
)
|
|
|
|
selects.config_setting_group(
|
|
name = "disable_warnings_as_errors_posix",
|
|
match_all = [
|
|
":not_windows",
|
|
":warnings_as_errors_enabled",
|
|
],
|
|
)
|
|
|
|
selects.config_setting_group(
|
|
name = "disable_warnings_as_errors_macos",
|
|
match_all = [
|
|
"@platforms//os:macos",
|
|
":warnings_as_errors_enabled",
|
|
],
|
|
)
|
|
|
|
selects.config_setting_group(
|
|
name = "disable_warnings_as_errors_windows",
|
|
match_all = [
|
|
"@platforms//os:windows",
|
|
":warnings_as_errors_enabled",
|
|
],
|
|
)
|
|
|
|
# -----------
|
|
# ssl options
|
|
# -----------
|
|
|
|
ssl(
|
|
name = "ssl",
|
|
build_setting_default = True,
|
|
)
|
|
|
|
config_setting(
|
|
name = "ssl_enabled",
|
|
flag_values = {
|
|
"//bazel/config:ssl": "True",
|
|
},
|
|
)
|
|
|
|
config_setting(
|
|
name = "ssl_disabled",
|
|
flag_values = {
|
|
"//bazel/config:ssl": "False",
|
|
},
|
|
)
|
|
|
|
selects.config_setting_group(
|
|
name = "ssl_enabled_windows",
|
|
match_all = [
|
|
"@platforms//os:windows",
|
|
":ssl_enabled",
|
|
],
|
|
)
|
|
|
|
selects.config_setting_group(
|
|
name = "ssl_disabled_windows",
|
|
match_all = [
|
|
"@platforms//os:windows",
|
|
":ssl_enabled",
|
|
],
|
|
)
|
|
|
|
selects.config_setting_group(
|
|
name = "ssl_enabled_macos",
|
|
match_all = [
|
|
"@platforms//os:macos",
|
|
":ssl_enabled",
|
|
],
|
|
)
|
|
|
|
selects.config_setting_group(
|
|
name = "ssl_enabled_linux",
|
|
match_all = [
|
|
"@platforms//os:linux",
|
|
":ssl_enabled",
|
|
],
|
|
)
|
|
|
|
selects.config_setting_group(
|
|
name = "ssl_disabled_linux",
|
|
match_all = [
|
|
"@platforms//os:linux",
|
|
":ssl_disabled",
|
|
],
|
|
)
|
|
|
|
selects.config_setting_group(
|
|
name = "ssl_enabled_build_enterprise_disabled",
|
|
match_all = [
|
|
":build_enterprise_disabled",
|
|
":ssl_enabled",
|
|
],
|
|
)
|
|
|
|
# --------------------------------------
|
|
# thin_lto
|
|
# --------------------------------------
|
|
|
|
thin_lto(
|
|
name = "thin_lto",
|
|
build_setting_default = False,
|
|
)
|
|
|
|
config_setting(
|
|
name = "thin_lto_enabled",
|
|
flag_values = {
|
|
"//bazel/config:thin_lto": "True",
|
|
},
|
|
)
|
|
|
|
# --------------------------------------
|
|
# gdbserver options
|
|
# --------------------------------------
|
|
|
|
gcov(
|
|
name = "gcov",
|
|
build_setting_default = False,
|
|
)
|
|
|
|
config_setting(
|
|
name = "gcov_enabled",
|
|
flag_values = {
|
|
"//bazel/config:gcov": "True",
|
|
},
|
|
)
|
|
|
|
# --------------------------------------
|
|
# pgo_profile options
|
|
# --------------------------------------
|
|
|
|
pgo_profile(
|
|
name = "pgo_profile",
|
|
build_setting_default = False,
|
|
)
|
|
|
|
config_setting(
|
|
name = "pgo_profile_enabled",
|
|
flag_values = {
|
|
"//bazel/config:pgo_profile": "True",
|
|
},
|
|
)
|
|
|
|
bool_flag(
|
|
name = "bolt",
|
|
build_setting_default = False,
|
|
)
|
|
|
|
config_setting(
|
|
name = "bolt_enabled",
|
|
flag_values = {
|
|
"//bazel/config:bolt": "True",
|
|
},
|
|
)
|
|
|
|
# --------------------------------------
|
|
# crypto options
|
|
# --------------------------------------
|
|
|
|
# Note: This intentionally matches regardless of SSL setting.
|
|
config_setting(
|
|
name = "mongo_crypto_windows",
|
|
constraint_values = ["@platforms//os:windows"],
|
|
)
|
|
|
|
# Note: This intentionally matches regardless of SSL setting.
|
|
config_setting(
|
|
name = "mongo_crypto_apple",
|
|
constraint_values = ["@platforms//os:macos"],
|
|
)
|
|
|
|
selects.config_setting_group(
|
|
name = "mongo_crypto_openssl",
|
|
match_all = [
|
|
":ssl_enabled_linux",
|
|
],
|
|
)
|
|
|
|
selects.config_setting_group(
|
|
name = "mongo_crypto_tom",
|
|
match_any = [
|
|
":ssl_disabled_linux",
|
|
],
|
|
)
|
|
|
|
# --------------------------------------
|
|
# ssl_provider options
|
|
# --------------------------------------
|
|
|
|
# TODO(SERVER-94377): The `ssl_provider` usually coincides with
|
|
# mongo_crypto, but if ssl is disabled it'll get overridden to `none`. That is,
|
|
# regardless of operating system, you'll get `ssl_provider_none` here if ssl is
|
|
# disabled. We should figure out a more intuitive/robust solution to this.
|
|
|
|
[
|
|
selects.config_setting_group(
|
|
name = "ssl_provider_{}".format(mongo_crypto_value),
|
|
match_all = [
|
|
"mongo_crypto_{}".format(mongo_crypto_value),
|
|
":ssl_enabled",
|
|
],
|
|
)
|
|
for mongo_crypto_value in [
|
|
"apple",
|
|
"openssl",
|
|
"windows",
|
|
]
|
|
]
|
|
|
|
selects.config_setting_group(
|
|
name = "ssl_provider_none",
|
|
match_all = [
|
|
":ssl_disabled",
|
|
],
|
|
)
|
|
|
|
# --------------------------------------
|
|
# symbol reordering options
|
|
# --------------------------------------
|
|
|
|
selects.config_setting_group(
|
|
name = "symbol_ordering_file_enabled",
|
|
match_all = [
|
|
"@platforms//os:linux",
|
|
":opt_any",
|
|
":linker_lld",
|
|
],
|
|
)
|
|
|
|
# --------------------------------------
|
|
# developer dir
|
|
# --------------------------------------
|
|
|
|
developer_dir(
|
|
name = "developer_dir",
|
|
build_setting_default = "/Applications/Xcode.app",
|
|
)
|
|
|
|
# --------------------------------------
|
|
# sdkroot
|
|
# --------------------------------------
|
|
|
|
sdkroot(
|
|
name = "sdkroot",
|
|
build_setting_default = "/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk",
|
|
)
|
|
|
|
# --------------------------------------
|
|
# js_engine options
|
|
# --------------------------------------
|
|
|
|
js_engine(
|
|
name = "js_engine",
|
|
build_setting_default = "mozjs",
|
|
)
|
|
|
|
config_setting(
|
|
name = "js_engine_mozjs",
|
|
flag_values = {
|
|
"//bazel/config:js_engine": "mozjs",
|
|
},
|
|
)
|
|
|
|
config_setting(
|
|
name = "js_engine_none",
|
|
flag_values = {
|
|
"//bazel/config:js_engine": "none",
|
|
},
|
|
)
|
|
|
|
# --------------------------------------
|
|
# enterprise_features options
|
|
# --------------------------------------
|
|
|
|
ALL_ENTERPRISE_FEATURES = [
|
|
"audit",
|
|
"encryptdb",
|
|
"fcbis",
|
|
"fips",
|
|
"fle",
|
|
"hot_backups",
|
|
"inmemory",
|
|
"kerberos",
|
|
"ldap",
|
|
"live_import",
|
|
"magic_restore",
|
|
"mongohouse",
|
|
"queryable",
|
|
"sasl",
|
|
"streams",
|
|
]
|
|
|
|
[
|
|
bool_flag(
|
|
name = "enterprise_feature_" + feature,
|
|
build_setting_default = False,
|
|
)
|
|
for feature in ALL_ENTERPRISE_FEATURES
|
|
]
|
|
|
|
[
|
|
config_setting(
|
|
name = "_enterprise_feature_" + feature + "_enabled",
|
|
flag_values = {
|
|
"//bazel/config:enterprise_feature_" + feature: "True",
|
|
},
|
|
)
|
|
for feature in ALL_ENTERPRISE_FEATURES
|
|
]
|
|
|
|
[
|
|
selects.config_setting_group(
|
|
name = "_enterprise_feature_" + feature + "_and_enterprise_build_enabled",
|
|
match_all = [
|
|
":_enterprise_feature_" + feature + "_enabled",
|
|
":build_enterprise_enabled",
|
|
],
|
|
)
|
|
for feature in ALL_ENTERPRISE_FEATURES
|
|
]
|
|
|
|
bool_flag(
|
|
name = "enterprise_feature_all",
|
|
build_setting_default = True,
|
|
)
|
|
|
|
config_setting(
|
|
name = "_enterprise_feature_all_enabled",
|
|
flag_values = {
|
|
"//bazel/config:enterprise_feature_all": "True",
|
|
},
|
|
)
|
|
|
|
selects.config_setting_group(
|
|
name = "enterprise_feature_all_enabled",
|
|
match_all = [
|
|
":_enterprise_feature_all_enabled",
|
|
":build_enterprise_enabled",
|
|
],
|
|
)
|
|
|
|
[
|
|
selects.config_setting_group(
|
|
name = "enterprise_feature_" + feature + "_enabled",
|
|
match_any = [
|
|
":_enterprise_feature_" + feature + "_and_enterprise_build_enabled",
|
|
":enterprise_feature_all_enabled",
|
|
],
|
|
)
|
|
for feature in ALL_ENTERPRISE_FEATURES
|
|
]
|
|
|
|
selects.config_setting_group(
|
|
name = "enterprise_feature_queryable_and_wiredtiger_enabled",
|
|
match_all = [
|
|
":enterprise_feature_queryable_enabled",
|
|
":use_wiredtiger_enabled",
|
|
],
|
|
)
|
|
|
|
selects.config_setting_group(
|
|
name = "enterprise_feature_fle_and_js_engine_enabled",
|
|
match_all = [
|
|
":enterprise_feature_fle_enabled",
|
|
":js_engine_mozjs",
|
|
],
|
|
)
|
|
|
|
selects.config_setting_group(
|
|
name = "enterprise_feature_streams_and_streams_build_enabled",
|
|
match_all = [
|
|
":enterprise_feature_queryable_enabled",
|
|
":streams_release_build_required_setting",
|
|
],
|
|
)
|
|
|
|
selects.config_setting_group(
|
|
name = "enterprise_feature_ldap_and_wiredtiger_enabled",
|
|
match_all = [
|
|
"//bazel/config:enterprise_feature_ldap_enabled",
|
|
"//bazel/config:use_wiredtiger_enabled",
|
|
],
|
|
)
|
|
|
|
selects.config_setting_group(
|
|
name = "enterprise_feature_audit_or_encryptdb_enabled",
|
|
match_any = [
|
|
":enterprise_feature_audit_enabled",
|
|
":enterprise_feature_encryptdb_enabled",
|
|
],
|
|
)
|
|
|
|
# --------------------------------------
|
|
# server_js
|
|
# --------------------------------------
|
|
|
|
server_js(
|
|
name = "server_js",
|
|
build_setting_default = True,
|
|
)
|
|
|
|
config_setting(
|
|
name = "server_js_enabled",
|
|
flag_values = {
|
|
"//bazel/config:server_js": "True",
|
|
},
|
|
)
|
|
|
|
# --------------------------------------
|
|
# xray
|
|
# --------------------------------------
|
|
|
|
bool_flag(
|
|
name = "xray",
|
|
build_setting_default = False,
|
|
)
|
|
|
|
config_setting(
|
|
name = "xray_enabled",
|
|
flag_values = {
|
|
"//bazel/config:xray": "True",
|
|
},
|
|
)
|
|
|
|
# --------------------------------------
|
|
# use_sasl_client
|
|
# --------------------------------------
|
|
|
|
bool_flag(
|
|
name = "use_sasl_client",
|
|
build_setting_default = False,
|
|
)
|
|
|
|
config_setting(
|
|
name = "use_sasl_client_enabled",
|
|
flag_values = {
|
|
"//bazel/config:use_sasl_client": "True",
|
|
},
|
|
)
|
|
|
|
# --------------------------------------
|
|
# link_timeout
|
|
# --------------------------------------
|
|
|
|
bool_flag(
|
|
name = "link_timeout",
|
|
build_setting_default = False,
|
|
)
|
|
|
|
config_setting(
|
|
name = "link_timeout_enabled",
|
|
flag_values = {
|
|
"//bazel/config:link_timeout": "True",
|
|
},
|
|
)
|
|
|
|
# --------------------------------------
|
|
# fission
|
|
# --------------------------------------
|
|
|
|
config_setting(
|
|
name = "fission_enabled",
|
|
values = {
|
|
"fission": "yes",
|
|
},
|
|
)
|
|
|
|
config_setting(
|
|
name = "linux_gcc_fission",
|
|
constraint_values = [
|
|
"@platforms//os:linux",
|
|
],
|
|
flag_values = {
|
|
"//bazel/config:compiler_type": "gcc",
|
|
},
|
|
values = {
|
|
"fission": "yes",
|
|
},
|
|
)
|
|
|
|
selects.config_setting_group(
|
|
name = "linux_gcc_fission_x86_64",
|
|
match_all = [
|
|
"@platforms//cpu:x86_64",
|
|
":linux_gcc_fission",
|
|
],
|
|
)
|
|
|
|
selects.config_setting_group(
|
|
name = "linux_gcc_fission_aarch64",
|
|
match_all = [
|
|
"@platforms//cpu:aarch64",
|
|
":linux_gcc_fission",
|
|
],
|
|
)
|
|
|
|
# --------------------------------------
|
|
# compress_debug_compile
|
|
# --------------------------------------
|
|
|
|
bool_flag(
|
|
name = "compress_debug_compile",
|
|
build_setting_default = False,
|
|
)
|
|
|
|
config_setting(
|
|
name = "compress_debug_compile_enabled",
|
|
flag_values = {
|
|
"//bazel/config:compress_debug_compile": "True",
|
|
},
|
|
)
|
|
|
|
config_setting(
|
|
name = "compress_debug_compile_disabled",
|
|
flag_values = {
|
|
"//bazel/config:compress_debug_compile": "False",
|
|
},
|
|
)
|
|
|
|
selects.config_setting_group(
|
|
name = "compress_debug_compile_disabled_linux_gcc",
|
|
match_all = [
|
|
":linux_gcc",
|
|
":compress_debug_compile_disabled",
|
|
],
|
|
)
|
|
|
|
# --------------------------------------
|
|
# running_through_bazelisk
|
|
# --------------------------------------
|
|
|
|
bool_flag(
|
|
name = "running_through_bazelisk",
|
|
build_setting_default = False,
|
|
)
|
|
|
|
config_setting(
|
|
name = "running_through_bazelisk_enabled",
|
|
flag_values = {
|
|
"//bazel/config:running_through_bazelisk": "True",
|
|
},
|
|
)
|
|
|
|
selects.config_setting_group(
|
|
name = "x86_64_or_arm64",
|
|
match_any = [
|
|
"@platforms//cpu:aarch64",
|
|
"@platforms//cpu:x86_64",
|
|
],
|
|
)
|
|
|
|
selects.config_setting_group(
|
|
name = "running_through_bazelisk_x86_64_or_arm64",
|
|
match_all = [
|
|
":x86_64_or_arm64",
|
|
":running_through_bazelisk_enabled",
|
|
],
|
|
)
|