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