Disable HIP_PLATFORM auto-detect if already defined (#254)

Co-authored-by: Stella Laurenzo <stellaraccident@gmail.com>

[ROCm/clr commit: 3775298655]
This commit is contained in:
Guan, Zichuan
2025-05-05 15:37:53 -04:00
zatwierdzone przez GitHub
rodzic 13d8f9adae
commit ee91a1e94a
3 zmienionych plików z 43 dodań i 26 usunięć
+27 -16
Wyświetl plik
@@ -52,40 +52,51 @@ endif()
#############
# Build steps
#############
if(CLR_BUILD_HIP)
if (UNIX)
set(HIPCC_EXECUTABLE "hipcc")
set(HIPCONFIG_EXECUTABLE "hipconfig")
else()
set(HIPCC_EXECUTABLE "hipcc.exe")
set(HIPCONFIG_EXECUTABLE "hipconfig.exe")
endif()
# Attempt to auto-detect HIP_PLATFORM by interrogating hipconfig. This is kept
# for compatibility: users are advised to pass HIP_PLATFORM explicitly.
# Sets the HIP_PLATFORM variable in the parent scope.
function(_hip_clr_auto_detect_hip_platform)
if (UNIX)
set(HIPCC_EXECUTABLE "hipcc")
set(HIPCONFIG_EXECUTABLE "hipconfig")
else()
set(HIPCC_EXECUTABLE "hipcc.exe")
set(HIPCONFIG_EXECUTABLE "hipconfig.exe")
endif()
# Set default HIPCC_BIN_DIR to /opt/rocm/bin
if(NOT DEFINED HIPCC_BIN_DIR AND UNIX)
set(HIPCC_BIN_DIR "/opt/rocm/bin" CACHE STRING "Default hipcc directory on linux.")
set(HIPCC_BIN_DIR "/opt/rocm/bin")
endif()
message(STATUS "HIPCC Binary Directory: ${HIPCC_BIN_DIR}")
message(STATUS "Auto-detect HIP_PLATFORM from HIPCC Binary Directory: ${HIPCC_BIN_DIR}")
if(NOT EXISTS ${HIPCC_BIN_DIR}/${HIPCONFIG_EXECUTABLE})
message(FATAL_ERROR "Please pass hipcc/build or hipcc/bin using -DHIPCC_BIN_DIR.")
endif()
message(STATUS "HIP Common Directory: ${HIP_COMMON_DIR}")
if(NOT DEFINED HIP_COMMON_DIR)
message(FATAL_ERROR "Please pass HIP using -DHIP_COMMON_DIR. HIP_COMMON_DIR is incorrect")
endif()
# Determine HIP_PLATFORM
if(NOT DEFINED HIP_PLATFORM)
if(NOT DEFINED ENV{HIP_PLATFORM})
execute_process(COMMAND ${HIPCC_BIN_DIR}/${HIPCONFIG_EXECUTABLE} --platform
OUTPUT_VARIABLE HIP_PLATFORM
OUTPUT_VARIABLE _detected_hip_platform
OUTPUT_STRIP_TRAILING_WHITESPACE)
set(HIP_PLATFORM "${_detected_hip_platform}" PARENT_SCOPE)
else()
set(HIP_PLATFORM $ENV{HIP_PLATFORM} CACHE STRING "HIP Platform")
set(HIP_PLATFORM "$ENV{HIP_PLATFORM}" PARENT_SCOPE)
endif()
endif()
endfunction()
if(CLR_BUILD_HIP)
message(STATUS "HIP Common Directory: ${HIP_COMMON_DIR}")
if(NOT DEFINED HIP_COMMON_DIR)
message(FATAL_ERROR "Please pass HIP using -DHIP_COMMON_DIR. HIP_COMMON_DIR is incorrect")
endif()
if(NOT DEFINED HIP_PLATFORM)
_hip_clr_auto_detect_hip_platform()
endif()
endif()
if(CLR_BUILD_HIP)
option(BUILD_SHARED_LIBS "Build the shared library" ON)
if (NOT BUILD_SHARED_LIBS)
+4 -1
Wyświetl plik
@@ -52,7 +52,8 @@ if(MSVC)
set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} /DEBUG:FULL")
endif()
set(HIPCC_BIN_DIR "" CACHE STRING "HIPCC and HIPCONFIG binary directories")
# Set default HIPCC_BIN_DIR to /opt/rocm/bin
set(HIPCC_BIN_DIR "/opt/rocm/bin" CACHE STRING "HIPCC and HIPCONFIG binary directories")
if(__HIP_ENABLE_PCH)
set(_pchStatus 1)
@@ -409,9 +410,11 @@ endif()
install(FILES ${PROJECT_BINARY_DIR}/include/hip/hip_version.h
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/hip)
set(HIP_INSTALLS_HIPCC OFF)
if (NOT ${HIPCC_BIN_DIR} STREQUAL "")
file(TO_CMAKE_PATH "${HIPCC_BIN_DIR}" HIPCC_BIN_DIR)
if(EXISTS ${HIPCC_BIN_DIR})
set(HIP_INSTALLS_HIPCC ON)
install(PROGRAMS ${HIPCC_BIN_DIR}/${HIPCC_EXECUTABLE} DESTINATION bin)
install(PROGRAMS ${HIPCC_BIN_DIR}/${HIPCONFIG_EXECUTABLE} DESTINATION bin)
install(PROGRAMS ${HIPCC_BIN_DIR}/hipcc.pl DESTINATION bin)
+12 -9
Wyświetl plik
@@ -101,12 +101,14 @@ set_and_check( hip_INCLUDE_DIR "@PACKAGE_INCLUDE_INSTALL_DIR@" )
set_and_check( hip_INCLUDE_DIRS "${hip_INCLUDE_DIR}" )
set_and_check( hip_LIB_INSTALL_DIR "@PACKAGE_LIB_INSTALL_DIR@" )
set_and_check( hip_BIN_INSTALL_DIR "@PACKAGE_BIN_INSTALL_DIR@" )
if (WIN32)
set_and_check(hip_HIPCC_EXECUTABLE "${hip_BIN_INSTALL_DIR}/hipcc.exe")
set_and_check(hip_HIPCONFIG_EXECUTABLE "${hip_BIN_INSTALL_DIR}/hipconfig.exe")
else()
set_and_check(hip_HIPCC_EXECUTABLE "${hip_BIN_INSTALL_DIR}/hipcc")
set_and_check(hip_HIPCONFIG_EXECUTABLE "${hip_BIN_INSTALL_DIR}/hipconfig")
if("@HIP_INSTALLS_HIPCC@")
if (WIN32)
set_and_check(hip_HIPCC_EXECUTABLE "${hip_BIN_INSTALL_DIR}/hipcc.exe")
set_and_check(hip_HIPCONFIG_EXECUTABLE "${hip_BIN_INSTALL_DIR}/hipconfig.exe")
else()
set_and_check(hip_HIPCC_EXECUTABLE "${hip_BIN_INSTALL_DIR}/hipcc")
set_and_check(hip_HIPCONFIG_EXECUTABLE "${hip_BIN_INSTALL_DIR}/hipconfig")
endif()
endif()
if(NOT DEFINED HIP_PLATFORM)
@@ -140,6 +142,7 @@ set(HIP_LIB_INSTALL_DIR ${hip_LIB_INSTALL_DIR})
set(HIP_BIN_INSTALL_DIR ${hip_BIN_INSTALL_DIR})
set(HIP_LIBRARIES ${hip_LIBRARIES})
set(HIP_LIBRARY ${hip_LIBRARY})
set(HIP_HIPCC_EXECUTABLE ${hip_HIPCC_EXECUTABLE})
set(HIP_HIPCONFIG_EXECUTABLE ${hip_HIPCONFIG_EXECUTABLE})
if("@HIP_INSTALLS_HIPCC@")
set(HIP_HIPCC_EXECUTABLE ${hip_HIPCC_EXECUTABLE})
set(HIP_HIPCONFIG_EXECUTABLE ${hip_HIPCONFIG_EXECUTABLE})
endif()