zig

fork of https://codeberg.org/ziglang/zig
Log | Files | Refs | README | LICENSE

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)