diff --git a/flang/CMakeLists.txt b/flang/CMakeLists.txt --- a/flang/CMakeLists.txt +++ b/flang/CMakeLists.txt @@ -48,9 +48,23 @@ list(APPEND CMAKE_MODULE_PATH ${LLVM_DIR_ABSOLUTE}) 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 - list(APPEND CMAKE_MODULE_PATH ${CLANG_DIR}) - find_package(Clang REQUIRED HINTS "${CLANG_DIR}") + find_package(Clang REQUIRED PATHS "${CLANG_DIR_ABSOLUTE}" NO_DEFAULT_PATH) + if (NOT Clang_FOUND) + message(FATAL_ERROR "Failed to find Clang") + endif() endif() # If LLVM links to zlib we need the imported targets so we can too.