1include(Compiler/Clang)
2__compiler_clang(CXX)
3__compiler_clang_cxx_standards(CXX)
4
5if("x${CMAKE_CXX_COMPILER_FRONTEND_VARIANT}" STREQUAL "xGNU")
6  if((NOT DEFINED CMAKE_DEPENDS_USE_COMPILER OR CMAKE_DEPENDS_USE_COMPILER)
7      AND CMAKE_GENERATOR MATCHES "Makefiles|WMake"
8      AND CMAKE_DEPFILE_FLAGS_CXX)
9    # dependencies are computed by the compiler itself
10    set(CMAKE_CXX_DEPFILE_FORMAT gcc)
11    set(CMAKE_CXX_DEPENDS_USE_COMPILER TRUE)
12  endif()
13
14  set(CMAKE_CXX_COMPILE_OPTIONS_EXPLICIT_LANGUAGE -x c++)
15  set(CMAKE_CXX_COMPILE_OPTIONS_VISIBILITY_INLINES_HIDDEN "-fvisibility-inlines-hidden")
16endif()
17
18cmake_policy(GET CMP0025 appleClangPolicy)
19if(APPLE AND NOT appleClangPolicy STREQUAL NEW)
20  return()
21endif()
22
23if("x${CMAKE_CXX_COMPILER_FRONTEND_VARIANT}" STREQUAL "xMSVC")
24  set(CMAKE_CXX_CLANG_TIDY_DRIVER_MODE "cl")
25  set(CMAKE_CXX_INCLUDE_WHAT_YOU_USE_DRIVER_MODE "cl")
26  if((NOT DEFINED CMAKE_DEPENDS_USE_COMPILER OR CMAKE_DEPENDS_USE_COMPILER)
27      AND CMAKE_GENERATOR MATCHES "Makefiles"
28      AND CMAKE_DEPFILE_FLAGS_CXX)
29    set(CMAKE_CXX_DEPENDS_USE_COMPILER TRUE)
30  endif()
31endif()
32