From b786f545bfa6d8ee08bc9b729f2cf6de1217db15 Mon Sep 17 00:00:00 2001 From: Pruthvi Madugundu Date: Thu, 24 Sep 2020 11:07:32 -0700 Subject: [PATCH] Update to the REGEX in hip-config.cmake - Matching the output "hipcc --version" for Installed directory to get the llvm compiler path, wasnt done properly. - Adding fallback for HIP_CLANG_ROOT on ROCM_PATH if defined in env - Changed the mode of get_filename_component to DIRECTORY Signed-off-by: Pruthvi Madugundu Change-Id: Ia38e234f34cabb5b419906c7094b327083292b0e [ROCm/hip commit: ff3cbd1778c381446eba58175cd0a7863be00988] --- projects/hip/hip-config.cmake.in | 28 +++++++++++++++------------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/projects/hip/hip-config.cmake.in b/projects/hip/hip-config.cmake.in index ba340134f7..d5af845cd6 100644 --- a/projects/hip/hip-config.cmake.in +++ b/projects/hip/hip-config.cmake.in @@ -54,7 +54,18 @@ set_and_check( hip_BIN_INSTALL_DIR "@PACKAGE_BIN_INSTALL_DIR@" ) set_and_check(hip_HIPCC_EXECUTABLE "${hip_BIN_INSTALL_DIR}/hipcc") set_and_check(hip_HIPCONFIG_EXECUTABLE "${hip_BIN_INSTALL_DIR}/hipconfig") +# set a default path for ROCM_PATH +if(NOT DEFINED ROCM_PATH) + set(ROCM_PATH /opt/rocm) +endif() + +#If HIP isnot installed under ROCm, need this to find HSA assuming HSA is under ROCm +if(DEFINED ENV{ROCM_PATH}) + set(ROCM_PATH "$ENV{ROCM_PATH}") +endif() + if(HIP_COMPILER STREQUAL "clang") + set(HIP_CLANG_ROOT "${ROCM_PATH}/llvm") if(NOT HIP_CXX_COMPILER) set(HIP_CXX_COMPILER ${CMAKE_CXX_COMPILER}) endif() @@ -62,16 +73,12 @@ if(HIP_COMPILER STREQUAL "clang") execute_process(COMMAND ${HIP_CXX_COMPILER} --version OUTPUT_STRIP_TRAILING_WHITESPACE OUTPUT_VARIABLE HIP_CLANG_CXX_COMPILER_VERSION_OUTPUT) - if(HIP_CLANG_CXX_COMPILER_VERSION_OUTPUT MATCHES "InstalledDir:[\t\r\n][\t\r\n]*([^\t\r\n])") - set(HIP_CLANG_ROOT ${CMAKE_MATCH_1}) - else() - set(HIP_CLANG_ROOT /opt/rocm/llvm) + if(HIP_CLANG_CXX_COMPILER_VERSION_OUTPUT MATCHES "InstalledDir:[ \t]*([^\n]*)") + get_filename_component(HIP_CLANG_ROOT "${CMAKE_MATCH_1}" DIRECTORY) endif() elseif (HIP_CXX_COMPILER MATCHES ".*clang\\+\\+") - get_filename_component(HIP_CLANG_ROOT "${HIP_CXX_COMPILER}" PATH) - get_filename_component(HIP_CLANG_ROOT "${HIP_CLANG_ROOT}" PATH) - else() - set(HIP_CLANG_ROOT /opt/rocm/llvm) + get_filename_component(HIP_CLANG_ROOT "${HIP_CXX_COMPILER}" DIRECTORY) + get_filename_component(HIP_CLANG_ROOT "${HIP_CLANG_ROOT}" DIRECTORY) endif() file(GLOB HIP_CLANG_INCLUDE_SEARCH_PATHS ${HIP_CLANG_ROOT}/lib/clang/*/include) find_path(HIP_CLANG_INCLUDE_PATH stddef.h @@ -89,11 +96,6 @@ find_dependency(amd_comgr) include( "${CMAKE_CURRENT_LIST_DIR}/hip-targets.cmake" ) -#If HIP isnot installed under ROCm, need this to find HSA assuming HSA is under ROCm -if( DEFINED ENV{ROCM_PATH} ) - set(ROCM_PATH "$ENV{ROCM_PATH}") -endif() - #Using find_dependecy to locate the dependency for the packagaes #This makes the cmake generated file xxxx-targets to supply the linker libraries # without worrying other transitive dependencies