File hip-use-env-in-FindHIP.patch of Package rocclr
diff --git a/cmake/FindHIP.cmake b/cmake/FindHIP.cmake
index b59cb3ac..915273c4 100644
--- a/cmake/FindHIP.cmake
+++ b/cmake/FindHIP.cmake
@@ -52,33 +52,42 @@ if(NOT HIP_CXX_COMPILER)
set(HIP_CXX_COMPILER ${CMAKE_CXX_COMPILER})
endif()
-# Approach: To find HIP_CLANG_PATH for HIP_CXX_COMPILER types
-# For HIP_CXX_COMPILER as *hipcc use hipconfig -l option to get the clang path.
-# For HIP_CXX_COMPILER as *clang use real path of HIP_CXX_COMPILER
-# IF not successful in getting the CLANG_PATH using HIP_CXX_COMPILER
-# fallback to Old Method to find HIP_CLANG_PATH from ENV Vars, ROCMPATH, HIPPATH etc.
-if(HIP_CXX_COMPILER MATCHES ".*hipcc")
- get_filename_component(HIPCC_PATH "${HIP_CXX_COMPILER}" DIRECTORY)
- set(_HIPCONFIG_EXECUTABLE "${HIPCC_PATH}/hipconfig")
- execute_process(COMMAND ${_HIPCONFIG_EXECUTABLE} -l
- OUTPUT_VARIABLE _HIP_CLANG_INSTALL_PATH
- OUTPUT_STRIP_TRAILING_WHITESPACE
- ERROR_VARIABLE _HIPCONFIG_EXE_ERROR
- ERROR_STRIP_TRAILING_WHITESPACE
- RESULT_VARIABLE _HIPCONFIG_EXE_EXIT_CODE)
- if( _HIPCONFIG_EXE_ERROR )
- message( STATUS "hipconfig -l option failed with error: ${_HIPCONFIG_EXE_ERROR}" )
- else() #IF hipconfig -l executed with no error
- if( "${_HIPCONFIG_EXE_EXIT_CODE}" STREQUAL "0" )
- set(HIP_CLANG_PATH "${_HIP_CLANG_INSTALL_PATH}")
+if("x${HIP_CLANG_PATH}" STREQUAL "x")
+ if(DEFINED ENV{HIP_CLANG_PATH})
+ set(HIP_CLANG_PATH $ENV{HIP_CLANG_PATH})
else()
- message( STATUS "${_HIPCONFIG_EXECUTABLE} Failed with Exit code: ${_HIPCONFIG_EXE_EXIT_CODE}" )
+ # Approach: To find HIP_CLANG_PATH for HIP_CXX_COMPILER types
+ # For HIP_CXX_COMPILER as *hipcc use hipconfig -l option to get the clang path.
+ # For HIP_CXX_COMPILER as *clang use real path of HIP_CXX_COMPILER
+ # IF not successful in getting the CLANG_PATH using HIP_CXX_COMPILER
+ # fallback to Old Method to find HIP_CLANG_PATH from ENV Vars, ROCMPATH, HIPPATH etc.
+ if(HIP_CXX_COMPILER MATCHES ".*hipcc")
+ get_filename_component(HIPCC_PATH "${HIP_CXX_COMPILER}" DIRECTORY)
+ set(_HIPCONFIG_EXECUTABLE "${HIPCC_PATH}/hipconfig")
+ execute_process(COMMAND ${_HIPCONFIG_EXECUTABLE} -l
+ OUTPUT_VARIABLE _HIP_CLANG_INSTALL_PATH
+ OUTPUT_STRIP_TRAILING_WHITESPACE
+ ERROR_VARIABLE _HIPCONFIG_EXE_ERROR
+ ERROR_STRIP_TRAILING_WHITESPACE
+ RESULT_VARIABLE _HIPCONFIG_EXE_EXIT_CODE)
+ if( _HIPCONFIG_EXE_ERROR )
+ message( STATUS "hipconfig -l option failed with error: ${_HIPCONFIG_EXE_ERROR}" )
+ else() #IF hipconfig -l executed with no error
+ if( "${_HIPCONFIG_EXE_EXIT_CODE}" STREQUAL "0" )
+ set(HIP_CLANG_PATH "${_HIP_CLANG_INSTALL_PATH}")
+ else()
+ message( STATUS "${_HIPCONFIG_EXECUTABLE} Failed with Exit code: ${_HIPCONFIG_EXE_EXIT_CODE}" )
+ endif()
+ endif()
+ elseif (HIP_CXX_COMPILER MATCHES ".*clang\\+\\+(-rocm)?")
+ get_filename_component(_HIP_CLANG_REAL_PATH "${HIP_CXX_COMPILER}" REALPATH)
+ get_filename_component(_HIP_CLANG_BIN_PATH "${_HIP_CLANG_REAL_PATH}" DIRECTORY)
+ # handle symlinks correctly
+ get_filename_component(_HIP_CLANG_BIN_NAME "${_HIP_CLANG_REAL_PATH}" NAME)
+ set(HIP_CLANG_PATH "${_HIP_CLANG_BIN_PATH}")
+ set(HIP_CXX_COMPILER "${_HIP_CLANG_BIN_NAME}")
+ endif()
endif()
- endif()
-elseif (HIP_CXX_COMPILER MATCHES ".*clang\\+\\+")
- get_filename_component(_HIP_CLANG_REAL_PATH "${HIP_CXX_COMPILER}" REALPATH)
- get_filename_component(_HIP_CLANG_BIN_PATH "${_HIP_CLANG_REAL_PATH}" DIRECTORY)
- set(HIP_CLANG_PATH "${_HIP_CLANG_BIN_PATH}")
endif()
if(WIN32)