[flang][cmake] Improve how CLANG_DIR is handled
* Added a sanity check with `Clang_FOUND` to verify that find_package succeeded * Made sure that find_package won't use any of CMake's standard paths to guarantee that only the path provided with CLANG_DIR is considered (implemented through NO_DEFAULT_PATH) * Made the call to get_filename_component more explicit (so that it is clear what the base directory is) * Updated comments to clarify what CLANG_DIR means Differential Revision: https://reviews.llvm.org/D99088
This commit is contained in:
parent
94ef248d7b
commit
af8056889a
|
@ -48,9 +48,23 @@ if (CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR)
|
||||||
list(APPEND CMAKE_MODULE_PATH ${LLVM_DIR_ABSOLUTE})
|
list(APPEND CMAKE_MODULE_PATH ${LLVM_DIR_ABSOLUTE})
|
||||||
|
|
||||||
if(FLANG_BUILD_NEW_DRIVER)
|
if(FLANG_BUILD_NEW_DRIVER)
|
||||||
|
# Users might specify a path to CLANG_DIR that's:
|
||||||
|
# * a full path, or
|
||||||
|
# * a path relative to the path of this script.
|
||||||
|
# Append the absolute path to CLANG_DIR so that find_package works in both
|
||||||
|
# cases.
|
||||||
|
get_filename_component(
|
||||||
|
CLANG_DIR_ABSOLUTE
|
||||||
|
${CLANG_DIR}
|
||||||
|
REALPATH
|
||||||
|
CMAKE_CURRENT_SOURCE_DIR)
|
||||||
|
list(APPEND CMAKE_MODULE_PATH ${CLANG_DIR_ABSOLUTE})
|
||||||
|
|
||||||
# TODO: Remove when libclangDriver is lifted out of Clang
|
# TODO: Remove when libclangDriver is lifted out of Clang
|
||||||
list(APPEND CMAKE_MODULE_PATH ${CLANG_DIR})
|
find_package(Clang REQUIRED PATHS "${CLANG_DIR_ABSOLUTE}" NO_DEFAULT_PATH)
|
||||||
find_package(Clang REQUIRED HINTS "${CLANG_DIR}")
|
if (NOT Clang_FOUND)
|
||||||
|
message(FATAL_ERROR "Failed to find Clang")
|
||||||
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# If LLVM links to zlib we need the imported targets so we can too.
|
# If LLVM links to zlib we need the imported targets so we can too.
|
||||||
|
|
Loading…
Reference in a new issue