1 # Copyright (c) 2016 Andrew Kelley
2 # This file is MIT licensed.
3 # See http://opensource.org/licenses/MIT
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
17 if(${LLVM_LINK_MODE} STREQUAL "shared")
18 find_library(CLANG_LIBRARIES
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
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
40 if(CLANG_${_prettylibname_}_LIB)
41 set(CLANG_LIBRARIES ${CLANG_LIBRARIES} ${CLANG_${_prettylibname_}_LIB})
43 endmacro(FIND_AND_ADD_CLANG_LIB)
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)
76 set(CLANG_LIBRARIES ${CLANG_LIBRARIES} "version.lib")
79 include(FindPackageHandleStandardArgs)
80 find_package_handle_standard_args(clang DEFAULT_MSG CLANG_LIBRARIES CLANG_INCLUDE_DIRS)
82 mark_as_advanced(CLANG_INCLUDE_DIRS CLANG_LIBRARIES CLANG_LIBDIRS)