Findclang.cmake (2801B) - Raw
1 # Copyright (c) 2016 Andrew Kelley 2 # This file is MIT licensed. 3 # See http://opensource.org/licenses/MIT 4 5 # CLANG_FOUND 6 # CLANG_INCLUDE_DIRS 7 # CLANG_LIBRARIES 8 # CLANG_LIBDIRS 9 10 find_path(CLANG_INCLUDE_DIRS NAMES clang/Frontend/ASTUnit.h 11 HINTS ${LLVM_INCLUDE_DIRS} 12 # Only look for Clang next to LLVM or in { CMAKE_PREFIX_PATH, CMAKE_LIBRARY_PATH, CMAKE_FRAMEWORK_PATH } 13 NO_SYSTEM_ENVIRONMENT_PATH 14 NO_CMAKE_SYSTEM_PATH 15 ) 16 17 if(${LLVM_LINK_MODE} STREQUAL "shared") 18 find_library(CLANG_LIBRARIES 19 NAMES 20 libclang-cpp.so.20 21 libclang-cpp.so.20.1 22 clang-cpp-20.0 23 clang-cpp200 24 clang-cpp 25 NAMES_PER_DIR 26 HINTS "${LLVM_LIBDIRS}" 27 # Only look for Clang next to LLVM or in { CMAKE_PREFIX_PATH, CMAKE_LIBRARY_PATH, CMAKE_FRAMEWORK_PATH } 28 NO_SYSTEM_ENVIRONMENT_PATH 29 NO_CMAKE_SYSTEM_PATH 30 ) 31 else() 32 macro(FIND_AND_ADD_CLANG_LIB _libname_) 33 string(TOUPPER ${_libname_} _prettylibname_) 34 find_library(CLANG_${_prettylibname_}_LIB NAMES ${_libname_} NAMES_PER_DIR 35 HINTS "${LLVM_LIBDIRS}" 36 # Only look for Clang next to LLVM or in { CMAKE_PREFIX_PATH, CMAKE_LIBRARY_PATH, CMAKE_FRAMEWORK_PATH } 37 NO_SYSTEM_ENVIRONMENT_PATH 38 NO_CMAKE_SYSTEM_PATH 39 ) 40 if(CLANG_${_prettylibname_}_LIB) 41 set(CLANG_LIBRARIES ${CLANG_LIBRARIES} ${CLANG_${_prettylibname_}_LIB}) 42 endif() 43 endmacro(FIND_AND_ADD_CLANG_LIB) 44 45 FIND_AND_ADD_CLANG_LIB(clangFrontendTool) 46 FIND_AND_ADD_CLANG_LIB(clangCodeGen) 47 FIND_AND_ADD_CLANG_LIB(clangFrontend) 48 FIND_AND_ADD_CLANG_LIB(clangDriver) 49 FIND_AND_ADD_CLANG_LIB(clangSerialization) 50 FIND_AND_ADD_CLANG_LIB(clangSema) 51 FIND_AND_ADD_CLANG_LIB(clangStaticAnalyzerFrontend) 52 FIND_AND_ADD_CLANG_LIB(clangStaticAnalyzerCheckers) 53 FIND_AND_ADD_CLANG_LIB(clangStaticAnalyzerCore) 54 FIND_AND_ADD_CLANG_LIB(clangAnalysis) 55 FIND_AND_ADD_CLANG_LIB(clangASTMatchers) 56 FIND_AND_ADD_CLANG_LIB(clangAST) 57 FIND_AND_ADD_CLANG_LIB(clangParse) 58 FIND_AND_ADD_CLANG_LIB(clangSema) 59 FIND_AND_ADD_CLANG_LIB(clangAPINotes) 60 FIND_AND_ADD_CLANG_LIB(clangBasic) 61 FIND_AND_ADD_CLANG_LIB(clangEdit) 62 FIND_AND_ADD_CLANG_LIB(clangLex) 63 FIND_AND_ADD_CLANG_LIB(clangARCMigrate) 64 FIND_AND_ADD_CLANG_LIB(clangRewriteFrontend) 65 FIND_AND_ADD_CLANG_LIB(clangRewrite) 66 FIND_AND_ADD_CLANG_LIB(clangCrossTU) 67 FIND_AND_ADD_CLANG_LIB(clangIndex) 68 FIND_AND_ADD_CLANG_LIB(clangToolingCore) 69 FIND_AND_ADD_CLANG_LIB(clangExtractAPI) 70 FIND_AND_ADD_CLANG_LIB(clangSupport) 71 FIND_AND_ADD_CLANG_LIB(clangInstallAPI) 72 FIND_AND_ADD_CLANG_LIB(clangAST) 73 endif() 74 75 if (MSVC) 76 set(CLANG_LIBRARIES ${CLANG_LIBRARIES} "version.lib") 77 endif() 78 79 include(FindPackageHandleStandardArgs) 80 find_package_handle_standard_args(clang DEFAULT_MSG CLANG_LIBRARIES CLANG_INCLUDE_DIRS) 81 82 mark_as_advanced(CLANG_INCLUDE_DIRS CLANG_LIBRARIES CLANG_LIBDIRS)