--- a/hip-config.cmake +++ b/hip-config.cmake @@ -100,11 +100,16 @@ endif() if(HIP_COMPILER STREQUAL "clang") + set(HIP_CLANG_ROOT_CANDIDATES) if(WIN32) set(HIP_CLANG_ROOT "${HIP_PATH}") else() set(HIP_CLANG_ROOT "${ROCM_PATH}/llvm") endif() + list(APPEND HIP_CLANG_ROOT_CANDIDATES "${HIP_CLANG_ROOT}") + if(NOT WIN32) + list(APPEND HIP_CLANG_ROOT_CANDIDATES "${PACKAGE_PREFIX_DIR}/../llvm") + endif() if(NOT HIP_CXX_COMPILER) set(HIP_CXX_COMPILER ${CMAKE_CXX_COMPILER}) endif() @@ -114,16 +119,27 @@ OUTPUT_VARIABLE HIP_CLANG_CXX_COMPILER_VERSION_OUTPUT) if(HIP_CLANG_CXX_COMPILER_VERSION_OUTPUT MATCHES "InstalledDir:[ \t]*([^\n]*)") get_filename_component(HIP_CLANG_ROOT "${CMAKE_MATCH_1}" DIRECTORY) + list(PREPEND HIP_CLANG_ROOT_CANDIDATES "${HIP_CLANG_ROOT}") endif() elseif (HIP_CXX_COMPILER MATCHES ".*clang\\+\\+") get_filename_component(HIP_CLANG_ROOT "${HIP_CXX_COMPILER}" DIRECTORY) get_filename_component(HIP_CLANG_ROOT "${HIP_CLANG_ROOT}" DIRECTORY) + list(PREPEND HIP_CLANG_ROOT_CANDIDATES "${HIP_CLANG_ROOT}") endif() - file(GLOB HIP_CLANG_INCLUDE_SEARCH_PATHS ${HIP_CLANG_ROOT}/lib/clang/*/include) + set(HIP_CLANG_INCLUDE_SEARCH_PATHS) + foreach(_HIP_CLANG_ROOT ${HIP_CLANG_ROOT_CANDIDATES}) + file(GLOB _HIP_CLANG_INCLUDE_SEARCH_PATHS ${_HIP_CLANG_ROOT}/lib/clang/*/include) + list(APPEND HIP_CLANG_INCLUDE_SEARCH_PATHS ${_HIP_CLANG_INCLUDE_SEARCH_PATHS}) + endforeach() find_path(HIP_CLANG_INCLUDE_PATH stddef.h HINTS ${HIP_CLANG_INCLUDE_SEARCH_PATHS} NO_DEFAULT_PATH) + if(NOT HIP_CLANG_INCLUDE_PATH) + message(FATAL_ERROR + "Could not find HIP clang resource include directory. Checked: " + "${HIP_CLANG_INCLUDE_SEARCH_PATHS}") + endif() if(NOT WIN32) find_dependency(AMDDeviceLibs) endif()