simplify cmake logic for finding clang

which fixes the build on windows
This commit is contained in:
Andrew Kelley 2020-03-22 17:35:06 -04:00
parent 87b8b69eb0
commit f9992850a5

View File

@ -7,83 +7,53 @@
# CLANG_LIBRARIES # CLANG_LIBRARIES
# CLANG_LIBDIRS # CLANG_LIBDIRS
if(MSVC) find_path(CLANG_INCLUDE_DIRS NAMES clang/Frontend/ASTUnit.h
find_package(CLANG REQUIRED CONFIG) PATHS
/usr/lib/llvm/10/include
/usr/lib/llvm-10/include
/usr/lib/llvm-10.0/include
/usr/local/llvm100/include
/mingw64/include)
set(CLANG_LIBRARIES macro(FIND_AND_ADD_CLANG_LIB _libname_)
clangFrontendTool string(TOUPPER ${_libname_} _prettylibname_)
clangCodeGen find_library(CLANG_${_prettylibname_}_LIB NAMES ${_libname_}
clangFrontend PATHS
clangDriver ${CLANG_LIBDIRS}
clangSerialization /usr/lib/llvm/10/lib
clangSema /usr/lib/llvm-10/lib
clangStaticAnalyzerFrontend /usr/lib/llvm-10.0/lib
clangStaticAnalyzerCheckers /usr/local/llvm100/lib
clangStaticAnalyzerCore /mingw64/lib
clangAnalysis /c/msys64/mingw64/lib
clangASTMatchers c:\\msys64\\mingw64\\lib)
clangAST if(CLANG_${_prettylibname_}_LIB)
clangParse set(CLANG_LIBRARIES ${CLANG_LIBRARIES} ${CLANG_${_prettylibname_}_LIB})
clangSema endif()
clangBasic endmacro(FIND_AND_ADD_CLANG_LIB)
clangEdit
clangLex
clangARCMigrate
clangRewriteFrontend
clangRewrite
clangCrossTU
clangIndex
)
else() FIND_AND_ADD_CLANG_LIB(clangFrontendTool)
find_path(CLANG_INCLUDE_DIRS NAMES clang/Frontend/ASTUnit.h FIND_AND_ADD_CLANG_LIB(clangCodeGen)
PATHS FIND_AND_ADD_CLANG_LIB(clangFrontend)
/usr/lib/llvm/10/include FIND_AND_ADD_CLANG_LIB(clangDriver)
/usr/lib/llvm-10/include FIND_AND_ADD_CLANG_LIB(clangSerialization)
/usr/lib/llvm-10.0/include FIND_AND_ADD_CLANG_LIB(clangSema)
/usr/local/llvm100/include FIND_AND_ADD_CLANG_LIB(clangStaticAnalyzerFrontend)
/mingw64/include) FIND_AND_ADD_CLANG_LIB(clangStaticAnalyzerCheckers)
FIND_AND_ADD_CLANG_LIB(clangStaticAnalyzerCore)
macro(FIND_AND_ADD_CLANG_LIB _libname_) FIND_AND_ADD_CLANG_LIB(clangAnalysis)
string(TOUPPER ${_libname_} _prettylibname_) FIND_AND_ADD_CLANG_LIB(clangASTMatchers)
find_library(CLANG_${_prettylibname_}_LIB NAMES ${_libname_} FIND_AND_ADD_CLANG_LIB(clangAST)
PATHS FIND_AND_ADD_CLANG_LIB(clangParse)
${CLANG_LIBDIRS} FIND_AND_ADD_CLANG_LIB(clangSema)
/usr/lib/llvm/10/lib FIND_AND_ADD_CLANG_LIB(clangBasic)
/usr/lib/llvm-10/lib FIND_AND_ADD_CLANG_LIB(clangEdit)
/usr/lib/llvm-10.0/lib FIND_AND_ADD_CLANG_LIB(clangLex)
/usr/local/llvm100/lib FIND_AND_ADD_CLANG_LIB(clangARCMigrate)
/mingw64/lib FIND_AND_ADD_CLANG_LIB(clangRewriteFrontend)
/c/msys64/mingw64/lib FIND_AND_ADD_CLANG_LIB(clangRewrite)
c:\\msys64\\mingw64\\lib) FIND_AND_ADD_CLANG_LIB(clangCrossTU)
if(CLANG_${_prettylibname_}_LIB) FIND_AND_ADD_CLANG_LIB(clangIndex)
set(CLANG_LIBRARIES ${CLANG_LIBRARIES} ${CLANG_${_prettylibname_}_LIB})
endif()
endmacro(FIND_AND_ADD_CLANG_LIB)
FIND_AND_ADD_CLANG_LIB(clangFrontendTool)
FIND_AND_ADD_CLANG_LIB(clangCodeGen)
FIND_AND_ADD_CLANG_LIB(clangFrontend)
FIND_AND_ADD_CLANG_LIB(clangDriver)
FIND_AND_ADD_CLANG_LIB(clangSerialization)
FIND_AND_ADD_CLANG_LIB(clangSema)
FIND_AND_ADD_CLANG_LIB(clangStaticAnalyzerFrontend)
FIND_AND_ADD_CLANG_LIB(clangStaticAnalyzerCheckers)
FIND_AND_ADD_CLANG_LIB(clangStaticAnalyzerCore)
FIND_AND_ADD_CLANG_LIB(clangAnalysis)
FIND_AND_ADD_CLANG_LIB(clangASTMatchers)
FIND_AND_ADD_CLANG_LIB(clangAST)
FIND_AND_ADD_CLANG_LIB(clangParse)
FIND_AND_ADD_CLANG_LIB(clangSema)
FIND_AND_ADD_CLANG_LIB(clangBasic)
FIND_AND_ADD_CLANG_LIB(clangEdit)
FIND_AND_ADD_CLANG_LIB(clangLex)
FIND_AND_ADD_CLANG_LIB(clangARCMigrate)
FIND_AND_ADD_CLANG_LIB(clangRewriteFrontend)
FIND_AND_ADD_CLANG_LIB(clangRewrite)
FIND_AND_ADD_CLANG_LIB(clangCrossTU)
FIND_AND_ADD_CLANG_LIB(clangIndex)
endif()
include(FindPackageHandleStandardArgs) include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(CLANG DEFAULT_MSG CLANG_LIBRARIES CLANG_INCLUDE_DIRS) find_package_handle_standard_args(CLANG DEFAULT_MSG CLANG_LIBRARIES CLANG_INCLUDE_DIRS)