aboutsummaryrefslogtreecommitdiffstats
path: root/cmake/FindClang.cmake
blob: fcc9f241e10835677e2622fd6deb79d5c2f474b4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
find_package(Clang CONFIG)

# silence a lot of warnings from building against llvm
if(MSVC AND TARGET libclang)
    target_compile_options(libclang INTERFACE /wd4100 /wd4141 /wd4146 /wd4244 /wd4267 /wd4291)
endif()

option(CLANGTOOLING_LINK_CLANG_DYLIB "Force linking of Clang tooling against clang-cpp" NO)

if (TARGET clangTooling AND NOT CLANGTOOLING_LINK_CLANG_DYLIB)
  set(CLANG_TOOLING_LIBS libclang clangTooling clangQuery clangIndex)
elseif (TARGET clang-cpp)
  set(CLANG_TOOLING_LIBS libclang clang-cpp)
endif()

SET(QTC_CLANG_BUILDMODE_MATCH ON)
if (WIN32 AND TARGET libclang)
  string(TOLOWER ${CMAKE_BUILD_TYPE} _type)
  get_target_property(_llvmConfigs libclang IMPORTED_CONFIGURATIONS)
  string(TOLOWER ${_llvmConfigs} _llvm_configs)
  list(FIND _llvm_configs ${_type} _build_type_found)
  if (_build_type_found LESS 0)
    set(QTC_CLANG_BUILDMODE_MATCH OFF)
    message("Build mode mismatch (debug vs release): limiting clangTooling")
  endif()
endif()