| """absl specific copts. |
| |
| This file simply selects the correct options from the generated files. To |
| change Abseil copts, edit absl/copts/copts.py |
| """ |
| |
| load( |
| "//absl:copts/GENERATED_copts.bzl", |
| "ABSL_GCC_EXCEPTIONS_FLAGS", |
| "ABSL_GCC_FLAGS", |
| "ABSL_GCC_TEST_FLAGS", |
| "ABSL_LLVM_EXCEPTIONS_FLAGS", |
| "ABSL_LLVM_FLAGS", |
| "ABSL_LLVM_TEST_FLAGS", |
| "ABSL_MSVC_EXCEPTIONS_FLAGS", |
| "ABSL_MSVC_FLAGS", |
| "ABSL_MSVC_LINKOPTS", |
| "ABSL_MSVC_TEST_FLAGS", |
| "ABSL_RANDOM_HWAES_ARM32_FLAGS", |
| "ABSL_RANDOM_HWAES_ARM64_FLAGS", |
| "ABSL_RANDOM_HWAES_MSVC_X64_FLAGS", |
| "ABSL_RANDOM_HWAES_X64_FLAGS", |
| ) |
| |
| ABSL_DEFAULT_COPTS = select({ |
| "//absl:windows": ABSL_MSVC_FLAGS, |
| "//absl:llvm_compiler": ABSL_LLVM_FLAGS, |
| "//conditions:default": ABSL_GCC_FLAGS, |
| }) |
| |
| # in absence of modules (--compiler=gcc or -c opt), cc_tests leak their copts |
| # to their (included header) dependencies and fail to build outside absl |
| ABSL_TEST_COPTS = ABSL_DEFAULT_COPTS + select({ |
| "//absl:windows": ABSL_MSVC_TEST_FLAGS, |
| "//absl:llvm_compiler": ABSL_LLVM_TEST_FLAGS, |
| "//conditions:default": ABSL_GCC_TEST_FLAGS, |
| }) |
| |
| ABSL_EXCEPTIONS_FLAG = select({ |
| "//absl:windows": ABSL_MSVC_EXCEPTIONS_FLAGS, |
| "//absl:llvm_compiler": ABSL_LLVM_EXCEPTIONS_FLAGS, |
| "//conditions:default": ABSL_GCC_EXCEPTIONS_FLAGS, |
| }) |
| |
| ABSL_EXCEPTIONS_FLAG_LINKOPTS = select({ |
| "//conditions:default": [], |
| }) |
| |
| ABSL_DEFAULT_LINKOPTS = select({ |
| "//absl:windows": ABSL_MSVC_LINKOPTS, |
| "//conditions:default": [], |
| }) |
| |
| # ABSL_RANDOM_RANDEN_COPTS blaze copts flags which are required by each |
| # environment to build an accelerated RandenHwAes library. |
| ABSL_RANDOM_RANDEN_COPTS = select({ |
| # APPLE |
| ":cpu_darwin_x86_64": ABSL_RANDOM_HWAES_X64_FLAGS, |
| ":cpu_darwin": ABSL_RANDOM_HWAES_X64_FLAGS, |
| ":cpu_x64_windows_msvc": ABSL_RANDOM_HWAES_MSVC_X64_FLAGS, |
| ":cpu_x64_windows": ABSL_RANDOM_HWAES_MSVC_X64_FLAGS, |
| ":cpu_haswell": ABSL_RANDOM_HWAES_X64_FLAGS, |
| ":cpu_ppc": ["-mcrypto"], |
| |
| # Supported by default or unsupported. |
| "//conditions:default": [], |
| }) |
| |
| # absl_random_randen_copts_init: |
| # Initialize the config targets based on cpu, os, etc. used to select |
| # the required values for ABSL_RANDOM_RANDEN_COPTS |
| def absl_random_randen_copts_init(): |
| """Initialize the config_settings used by ABSL_RANDOM_RANDEN_COPTS.""" |
| |
| # CPU configs. |
| # These configs have consistent flags to enable HWAES intsructions. |
| cpu_configs = [ |
| "ppc", |
| "haswell", |
| "darwin_x86_64", |
| "darwin", |
| "x64_windows_msvc", |
| "x64_windows", |
| ] |
| for cpu in cpu_configs: |
| native.config_setting( |
| name = "cpu_%s" % cpu, |
| values = {"cpu": cpu}, |
| ) |