From aaf99371b22e816a4162391d799b9d22bba21120 Mon Sep 17 00:00:00 2001 From: Andrew Kelley Date: Thu, 9 Apr 2020 22:28:53 -0400 Subject: [PATCH] look for clang-cpp shared lib when it exists See #4799 --- cmake/Findclang.cmake | 104 +++++++++++++++++++++++++----------------- 1 file changed, 61 insertions(+), 43 deletions(-) diff --git a/cmake/Findclang.cmake b/cmake/Findclang.cmake index 13f9225a34b6..28ecc5f557cd 100644 --- a/cmake/Findclang.cmake +++ b/cmake/Findclang.cmake @@ -8,54 +8,72 @@ # CLANG_LIBDIRS find_path(CLANG_INCLUDE_DIRS NAMES clang/Frontend/ASTUnit.h + PATHS + /usr/lib/llvm/10/include + /usr/lib/llvm-10/include + /usr/lib/llvm-10.0/include + /usr/local/llvm100/include + /usr/local/llvm10/include + /mingw64/include +) + +if(NOT ZIG_STATIC_LLVM) + find_library(CLANG_CPP_DYLIB + NAMES + clang-cpp-10.0 + clang-cpp100 + clang-cpp PATHS - /usr/lib/llvm/10/include - /usr/lib/llvm-10/include - /usr/lib/llvm-10.0/include - /usr/local/llvm100/include - /usr/local/llvm10/include - /mingw64/include) + ${CLANG_LIBDIRS} + /usr/lib/llvm-10/lib + /usr/local/llvm100/lib + /usr/local/llvm10/lib + ) +endif() -macro(FIND_AND_ADD_CLANG_LIB _libname_) +if(CLANG_CPP_DYLIB) + set(CLANG_LIBRARIES ${CLANG_CPP_DYLIB}) +else() + macro(FIND_AND_ADD_CLANG_LIB _libname_) string(TOUPPER ${_libname_} _prettylibname_) find_library(CLANG_${_prettylibname_}_LIB NAMES ${_libname_} - PATHS - ${CLANG_LIBDIRS} - /usr/lib/llvm/10/lib - /usr/lib/llvm-10/lib - /usr/lib/llvm-10.0/lib - /usr/local/llvm100/lib - /usr/local/llvm10/lib - /mingw64/lib - /c/msys64/mingw64/lib - c:\\msys64\\mingw64\\lib) - if(CLANG_${_prettylibname_}_LIB) - set(CLANG_LIBRARIES ${CLANG_LIBRARIES} ${CLANG_${_prettylibname_}_LIB}) - endif() -endmacro(FIND_AND_ADD_CLANG_LIB) + PATHS + ${CLANG_LIBDIRS} + /usr/lib/llvm/10/lib + /usr/lib/llvm-10/lib + /usr/lib/llvm-10.0/lib + /usr/local/llvm100/lib + /usr/local/llvm10/lib + /mingw64/lib + /c/msys64/mingw64/lib + c:\\msys64\\mingw64\\lib + ) + set(CLANG_LIBRARIES ${CLANG_LIBRARIES} ${CLANG_${_prettylibname_}_LIB}) + 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) + 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) find_package_handle_standard_args(clang DEFAULT_MSG CLANG_LIBRARIES CLANG_INCLUDE_DIRS)