• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# See absl/copts/copts.py and absl/copts/generate_copts.py
2include(GENERATED_AbseilCopts)
3
4set(ABSL_LSAN_LINKOPTS "")
5set(ABSL_HAVE_LSAN OFF)
6set(ABSL_DEFAULT_LINKOPTS "")
7
8if (BUILD_SHARED_LIBS AND MSVC)
9  set(ABSL_BUILD_DLL TRUE)
10  set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON)
11else()
12  set(ABSL_BUILD_DLL FALSE)
13endif()
14
15if(CMAKE_SYSTEM_PROCESSOR MATCHES "x86_64|amd64|AMD64")
16  if (MSVC)
17    set(ABSL_RANDOM_RANDEN_COPTS "${ABSL_RANDOM_HWAES_MSVC_X64_FLAGS}")
18  else()
19    set(ABSL_RANDOM_RANDEN_COPTS "${ABSL_RANDOM_HWAES_X64_FLAGS}")
20  endif()
21elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "arm.*|aarch64")
22  if (CMAKE_SIZEOF_VOID_P STREQUAL "8")
23    set(ABSL_RANDOM_RANDEN_COPTS "${ABSL_RANDOM_HWAES_ARM64_FLAGS}")
24  elseif(CMAKE_SIZEOF_VOID_P STREQUAL "4")
25    set(ABSL_RANDOM_RANDEN_COPTS "${ABSL_RANDOM_HWAES_ARM32_FLAGS}")
26  else()
27    message(WARNING "Value of CMAKE_SIZEOF_VOID_P (${CMAKE_SIZEOF_VOID_P}) is not supported.")
28  endif()
29else()
30  message(WARNING "Value of CMAKE_SYSTEM_PROCESSOR (${CMAKE_SYSTEM_PROCESSOR}) is unknown and cannot be used to set ABSL_RANDOM_RANDEN_COPTS")
31  set(ABSL_RANDOM_RANDEN_COPTS "")
32endif()
33
34
35if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
36  set(ABSL_DEFAULT_COPTS "${ABSL_GCC_FLAGS}")
37  set(ABSL_TEST_COPTS "${ABSL_GCC_FLAGS};${ABSL_GCC_TEST_FLAGS}")
38elseif(CMAKE_CXX_COMPILER_ID MATCHES "Clang")  # MATCHES so we get both Clang and AppleClang
39  if(MSVC)
40    # clang-cl is half MSVC, half LLVM
41    set(ABSL_DEFAULT_COPTS "${ABSL_CLANG_CL_FLAGS}")
42    set(ABSL_TEST_COPTS "${ABSL_CLANG_CL_FLAGS};${ABSL_CLANG_CL_TEST_FLAGS}")
43  else()
44    set(ABSL_DEFAULT_COPTS "${ABSL_LLVM_FLAGS}")
45    set(ABSL_TEST_COPTS "${ABSL_LLVM_FLAGS};${ABSL_LLVM_TEST_FLAGS}")
46    if(CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
47      # AppleClang doesn't have lsan
48      # https://developer.apple.com/documentation/code_diagnostics
49      if(NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 3.5)
50        set(ABSL_LSAN_LINKOPTS "-fsanitize=leak")
51        set(ABSL_HAVE_LSAN ON)
52      endif()
53    endif()
54  endif()
55elseif(CMAKE_CXX_COMPILER_ID STREQUAL "MSVC")
56  set(ABSL_DEFAULT_COPTS "${ABSL_MSVC_FLAGS}")
57  set(ABSL_TEST_COPTS "${ABSL_MSVC_FLAGS};${ABSL_MSVC_TEST_FLAGS}")
58  set(ABSL_DEFAULT_LINKOPTS "${ABSL_MSVC_LINKOPTS}")
59else()
60  message(WARNING "Unknown compiler: ${CMAKE_CXX_COMPILER}.  Building with no default flags")
61  set(ABSL_DEFAULT_COPTS "")
62  set(ABSL_TEST_COPTS "")
63endif()
64
65set(ABSL_CXX_STANDARD "${CMAKE_CXX_STANDARD}")
66