configure_copts.bzl 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. """absl specific copts.
  2. This file simply selects the correct options from the generated files. To
  3. change Abseil copts, edit absl/copts/copts.py
  4. """
  5. load(
  6. "//absl:copts/GENERATED_copts.bzl",
  7. "ABSL_CLANG_CL_FLAGS",
  8. "ABSL_CLANG_CL_TEST_FLAGS",
  9. "ABSL_GCC_FLAGS",
  10. "ABSL_GCC_TEST_FLAGS",
  11. "ABSL_LLVM_FLAGS",
  12. "ABSL_LLVM_TEST_FLAGS",
  13. "ABSL_MSVC_FLAGS",
  14. "ABSL_MSVC_LINKOPTS",
  15. "ABSL_MSVC_TEST_FLAGS",
  16. "ABSL_RANDOM_HWAES_ARM32_FLAGS",
  17. "ABSL_RANDOM_HWAES_ARM64_FLAGS",
  18. "ABSL_RANDOM_HWAES_MSVC_X64_FLAGS",
  19. "ABSL_RANDOM_HWAES_X64_FLAGS",
  20. )
  21. ABSL_DEFAULT_COPTS = select({
  22. "//absl:msvc_compiler": ABSL_MSVC_FLAGS,
  23. "//absl:clang-cl_compiler": ABSL_CLANG_CL_FLAGS,
  24. "//absl:clang_compiler": ABSL_LLVM_FLAGS,
  25. "//conditions:default": ABSL_GCC_FLAGS,
  26. })
  27. ABSL_TEST_COPTS = ABSL_DEFAULT_COPTS + select({
  28. "//absl:msvc_compiler": ABSL_MSVC_TEST_FLAGS,
  29. "//absl:clang-cl_compiler": ABSL_CLANG_CL_TEST_FLAGS,
  30. "//absl:clang_compiler": ABSL_LLVM_TEST_FLAGS,
  31. "//conditions:default": ABSL_GCC_TEST_FLAGS,
  32. })
  33. ABSL_DEFAULT_LINKOPTS = select({
  34. "//absl:msvc_compiler": ABSL_MSVC_LINKOPTS,
  35. "//conditions:default": [],
  36. })
  37. # ABSL_RANDOM_RANDEN_COPTS blaze copts flags which are required by each
  38. # environment to build an accelerated RandenHwAes library.
  39. ABSL_RANDOM_RANDEN_COPTS = select({
  40. # APPLE
  41. ":cpu_darwin_x86_64": ABSL_RANDOM_HWAES_X64_FLAGS,
  42. ":cpu_darwin": ABSL_RANDOM_HWAES_X64_FLAGS,
  43. ":cpu_x64_windows_msvc": ABSL_RANDOM_HWAES_MSVC_X64_FLAGS,
  44. ":cpu_x64_windows": ABSL_RANDOM_HWAES_MSVC_X64_FLAGS,
  45. ":cpu_k8": ABSL_RANDOM_HWAES_X64_FLAGS,
  46. ":cpu_ppc": ["-mcrypto"],
  47. ":cpu_aarch64": ABSL_RANDOM_HWAES_ARM64_FLAGS,
  48. # Supported by default or unsupported.
  49. "//conditions:default": [],
  50. })
  51. # absl_random_randen_copts_init:
  52. # Initialize the config targets based on cpu, os, etc. used to select
  53. # the required values for ABSL_RANDOM_RANDEN_COPTS
  54. def absl_random_randen_copts_init():
  55. """Initialize the config_settings used by ABSL_RANDOM_RANDEN_COPTS."""
  56. # CPU configs.
  57. # These configs have consistent flags to enable HWAES intsructions.
  58. cpu_configs = [
  59. "ppc",
  60. "k8",
  61. "darwin_x86_64",
  62. "darwin",
  63. "x64_windows_msvc",
  64. "x64_windows",
  65. "aarch64",
  66. ]
  67. for cpu in cpu_configs:
  68. native.config_setting(
  69. name = "cpu_%s" % cpu,
  70. values = {"cpu": cpu},
  71. )