mirror of
https://github.com/ziglang/zig.git
synced 2025-12-06 14:23:09 +00:00
CMake: Search for Clang in CMAKE_LIBRARY_PATH, CMAKE_PREFIX_PATH, and CMAKE_FRAMEWORK_PATH
On some systems (esp. systems that use unique hashed file-paths for library-versions like Nix), we can't expect LLVM and Clang to share lib/bin directories. The best we can do is find the matching clang libraries in the CMAKE_LIBRARY_PATH provided by the environment
This commit is contained in:
parent
5337934bcd
commit
abc1ae538f
@ -9,7 +9,9 @@
|
|||||||
|
|
||||||
find_path(CLANG_INCLUDE_DIRS NAMES clang/Frontend/ASTUnit.h
|
find_path(CLANG_INCLUDE_DIRS NAMES clang/Frontend/ASTUnit.h
|
||||||
HINTS ${LLVM_INCLUDE_DIRS}
|
HINTS ${LLVM_INCLUDE_DIRS}
|
||||||
NO_DEFAULT_PATH # Only look for clang next to LLVM
|
# Only look for Clang next to LLVM or in { CMAKE_PREFIX_PATH, CMAKE_LIBRARY_PATH, CMAKE_FRAMEWORK_PATH }
|
||||||
|
NO_SYSTEM_ENVIRONMENT_PATH
|
||||||
|
NO_CMAKE_SYSTEM_PATH
|
||||||
)
|
)
|
||||||
|
|
||||||
if(${LLVM_LINK_MODE} STREQUAL "shared")
|
if(${LLVM_LINK_MODE} STREQUAL "shared")
|
||||||
@ -21,14 +23,18 @@ if(${LLVM_LINK_MODE} STREQUAL "shared")
|
|||||||
clang-cpp
|
clang-cpp
|
||||||
NAMES_PER_DIR
|
NAMES_PER_DIR
|
||||||
HINTS "${LLVM_LIBDIRS}"
|
HINTS "${LLVM_LIBDIRS}"
|
||||||
NO_DEFAULT_PATH # Only look for Clang next to LLVM
|
# Only look for Clang next to LLVM or in { CMAKE_PREFIX_PATH, CMAKE_LIBRARY_PATH, CMAKE_FRAMEWORK_PATH }
|
||||||
|
NO_SYSTEM_ENVIRONMENT_PATH
|
||||||
|
NO_CMAKE_SYSTEM_PATH
|
||||||
)
|
)
|
||||||
else()
|
else()
|
||||||
macro(FIND_AND_ADD_CLANG_LIB _libname_)
|
macro(FIND_AND_ADD_CLANG_LIB _libname_)
|
||||||
string(TOUPPER ${_libname_} _prettylibname_)
|
string(TOUPPER ${_libname_} _prettylibname_)
|
||||||
find_library(CLANG_${_prettylibname_}_LIB NAMES ${_libname_} NAMES_PER_DIR
|
find_library(CLANG_${_prettylibname_}_LIB NAMES ${_libname_} NAMES_PER_DIR
|
||||||
HINTS "${LLVM_LIBDIRS}"
|
HINTS "${LLVM_LIBDIRS}"
|
||||||
NO_DEFAULT_PATH # Only look for Clang next to LLVM
|
# Only look for Clang next to LLVM or in { CMAKE_PREFIX_PATH, CMAKE_LIBRARY_PATH, CMAKE_FRAMEWORK_PATH }
|
||||||
|
NO_SYSTEM_ENVIRONMENT_PATH
|
||||||
|
NO_CMAKE_SYSTEM_PATH
|
||||||
)
|
)
|
||||||
if(CLANG_${_prettylibname_}_LIB)
|
if(CLANG_${_prettylibname_}_LIB)
|
||||||
set(CLANG_LIBRARIES ${CLANG_LIBRARIES} ${CLANG_${_prettylibname_}_LIB})
|
set(CLANG_LIBRARIES ${CLANG_LIBRARIES} ${CLANG_${_prettylibname_}_LIB})
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user