mirror of
https://github.com/carbon-language/carbon-lang.git
synced 2026-10-04 15:51:04 +01:00
LLVM_SYMBOLIZER_PATH is required if `llvm-symbolizer` isn't in the developer's PATH. This sets it via bazel instead of having a developer handle it. I noticed this because the apt install of clang doesn't put llvm-symbolizer in the PATH. I'd like to make this the default without putting it everywhere, but I don't see a way to do this intrinsically through [the toolchain](https://bazel.build/docs/cc-toolchain-config-reference), and the [rules_cc/defs.bzl](https://github.com/bazelbuild/rules_cc/blob/main/cc/defs.bzl) remains a thin wrapper around the native cc_binary. Since I'm adding another env, it seems undesirable to have the macos asan workaround separate. As a consequence, this merges it in. Note bazel doesn't support merging a dict and a select, so it's also necessary to have the two env vars at least mildly aware there's something up (and this could get worse if we end up having more selects).
41 lines
1006 B
Python
41 lines
1006 B
Python
# Part of the Carbon Language project, under the Apache License v2.0 with LLVM
|
|
# Exceptions. See /LICENSE for license information.
|
|
# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
|
|
|
load("@bazel_skylib//lib:selects.bzl", "selects")
|
|
|
|
# For use by rules.bzl.
|
|
# Matches when asan is enabled on a macOS platform.
|
|
selects.config_setting_group(
|
|
name = "macos_asan",
|
|
match_all = [":is_macos", ":macos_asan_build_modes"],
|
|
)
|
|
|
|
# For use by rules.bzl.
|
|
# Matches macOS platforms.
|
|
config_setting(
|
|
name = "is_macos",
|
|
constraint_values = ["@platforms//os:osx"],
|
|
)
|
|
|
|
# For use by rules.bzl.
|
|
# Matches build modes where asan is enabled.
|
|
selects.config_setting_group(
|
|
name = "macos_asan_build_modes",
|
|
match_any = [":dbg", ":fastbuild"],
|
|
)
|
|
|
|
# For use by rules.bzl.
|
|
# Matches dbg.
|
|
config_setting(
|
|
name = "dbg",
|
|
values = {"compilation_mode": "dbg"},
|
|
)
|
|
|
|
# For use by rules.bzl.
|
|
# Matches fastbuild.
|
|
config_setting(
|
|
name = "fastbuild",
|
|
values = {"compilation_mode": "fastbuild"},
|
|
)
|