authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2020-03-22 17:35:06-04:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2020-03-22 17:35:06-04:00
logf9992850a5397a092004ed561d419206cf0cfcd5
tree5b14bbf314e224fb4577b5c112923af0ef30ff8f
parent87b8b69eb0bc2b2adc655ade3b7da06284bea4da

simplify cmake logic for finding clang

which fixes the build on windows

1 files changed, 47 insertions(+), 77 deletions(-)

cmake/Findclang.cmake+47-77
......@@ -7,83 +7,53 @@
77# CLANG_LIBRARIES
88# CLANG_LIBDIRS
99
10if(MSVC)
11 find_package(CLANG REQUIRED CONFIG)
12
13 set(CLANG_LIBRARIES
14 clangFrontendTool
15 clangCodeGen
16 clangFrontend
17 clangDriver
18 clangSerialization
19 clangSema
20 clangStaticAnalyzerFrontend
21 clangStaticAnalyzerCheckers
22 clangStaticAnalyzerCore
23 clangAnalysis
24 clangASTMatchers
25 clangAST
26 clangParse
27 clangSema
28 clangBasic
29 clangEdit
30 clangLex
31 clangARCMigrate
32 clangRewriteFrontend
33 clangRewrite
34 clangCrossTU
35 clangIndex
36 )
37
38else()
39 find_path(CLANG_INCLUDE_DIRS NAMES clang/Frontend/ASTUnit.h
40 PATHS
41 /usr/lib/llvm/10/include
42 /usr/lib/llvm-10/include
43 /usr/lib/llvm-10.0/include
44 /usr/local/llvm100/include
45 /mingw64/include)
46
47 macro(FIND_AND_ADD_CLANG_LIB _libname_)
48 string(TOUPPER ${_libname_} _prettylibname_)
49 find_library(CLANG_${_prettylibname_}_LIB NAMES ${_libname_}
50 PATHS
51 ${CLANG_LIBDIRS}
52 /usr/lib/llvm/10/lib
53 /usr/lib/llvm-10/lib
54 /usr/lib/llvm-10.0/lib
55 /usr/local/llvm100/lib
56 /mingw64/lib
57 /c/msys64/mingw64/lib
58 c:\\msys64\\mingw64\\lib)
59 if(CLANG_${_prettylibname_}_LIB)
60 set(CLANG_LIBRARIES ${CLANG_LIBRARIES} ${CLANG_${_prettylibname_}_LIB})
61 endif()
62 endmacro(FIND_AND_ADD_CLANG_LIB)
63
64 FIND_AND_ADD_CLANG_LIB(clangFrontendTool)
65 FIND_AND_ADD_CLANG_LIB(clangCodeGen)
66 FIND_AND_ADD_CLANG_LIB(clangFrontend)
67 FIND_AND_ADD_CLANG_LIB(clangDriver)
68 FIND_AND_ADD_CLANG_LIB(clangSerialization)
69 FIND_AND_ADD_CLANG_LIB(clangSema)
70 FIND_AND_ADD_CLANG_LIB(clangStaticAnalyzerFrontend)
71 FIND_AND_ADD_CLANG_LIB(clangStaticAnalyzerCheckers)
72 FIND_AND_ADD_CLANG_LIB(clangStaticAnalyzerCore)
73 FIND_AND_ADD_CLANG_LIB(clangAnalysis)
74 FIND_AND_ADD_CLANG_LIB(clangASTMatchers)
75 FIND_AND_ADD_CLANG_LIB(clangAST)
76 FIND_AND_ADD_CLANG_LIB(clangParse)
77 FIND_AND_ADD_CLANG_LIB(clangSema)
78 FIND_AND_ADD_CLANG_LIB(clangBasic)
79 FIND_AND_ADD_CLANG_LIB(clangEdit)
80 FIND_AND_ADD_CLANG_LIB(clangLex)
81 FIND_AND_ADD_CLANG_LIB(clangARCMigrate)
82 FIND_AND_ADD_CLANG_LIB(clangRewriteFrontend)
83 FIND_AND_ADD_CLANG_LIB(clangRewrite)
84 FIND_AND_ADD_CLANG_LIB(clangCrossTU)
85 FIND_AND_ADD_CLANG_LIB(clangIndex)
86endif()
10find_path(CLANG_INCLUDE_DIRS NAMES clang/Frontend/ASTUnit.h
11 PATHS
12 /usr/lib/llvm/10/include
13 /usr/lib/llvm-10/include
14 /usr/lib/llvm-10.0/include
15 /usr/local/llvm100/include
16 /mingw64/include)
17
18macro(FIND_AND_ADD_CLANG_LIB _libname_)
19 string(TOUPPER ${_libname_} _prettylibname_)
20 find_library(CLANG_${_prettylibname_}_LIB NAMES ${_libname_}
21 PATHS
22 ${CLANG_LIBDIRS}
23 /usr/lib/llvm/10/lib
24 /usr/lib/llvm-10/lib
25 /usr/lib/llvm-10.0/lib
26 /usr/local/llvm100/lib
27 /mingw64/lib
28 /c/msys64/mingw64/lib
29 c:\\msys64\\mingw64\\lib)
30 if(CLANG_${_prettylibname_}_LIB)
31 set(CLANG_LIBRARIES ${CLANG_LIBRARIES} ${CLANG_${_prettylibname_}_LIB})
32 endif()
33endmacro(FIND_AND_ADD_CLANG_LIB)
34
35FIND_AND_ADD_CLANG_LIB(clangFrontendTool)
36FIND_AND_ADD_CLANG_LIB(clangCodeGen)
37FIND_AND_ADD_CLANG_LIB(clangFrontend)
38FIND_AND_ADD_CLANG_LIB(clangDriver)
39FIND_AND_ADD_CLANG_LIB(clangSerialization)
40FIND_AND_ADD_CLANG_LIB(clangSema)
41FIND_AND_ADD_CLANG_LIB(clangStaticAnalyzerFrontend)
42FIND_AND_ADD_CLANG_LIB(clangStaticAnalyzerCheckers)
43FIND_AND_ADD_CLANG_LIB(clangStaticAnalyzerCore)
44FIND_AND_ADD_CLANG_LIB(clangAnalysis)
45FIND_AND_ADD_CLANG_LIB(clangASTMatchers)
46FIND_AND_ADD_CLANG_LIB(clangAST)
47FIND_AND_ADD_CLANG_LIB(clangParse)
48FIND_AND_ADD_CLANG_LIB(clangSema)
49FIND_AND_ADD_CLANG_LIB(clangBasic)
50FIND_AND_ADD_CLANG_LIB(clangEdit)
51FIND_AND_ADD_CLANG_LIB(clangLex)
52FIND_AND_ADD_CLANG_LIB(clangARCMigrate)
53FIND_AND_ADD_CLANG_LIB(clangRewriteFrontend)
54FIND_AND_ADD_CLANG_LIB(clangRewrite)
55FIND_AND_ADD_CLANG_LIB(clangCrossTU)
56FIND_AND_ADD_CLANG_LIB(clangIndex)
8757
8858include(FindPackageHandleStandardArgs)
8959find_package_handle_standard_args(CLANG DEFAULT_MSG CLANG_LIBRARIES CLANG_INCLUDE_DIRS)