54 lines
1.6 KiB
CMake
54 lines
1.6 KiB
CMake
|
|
#
|
||
|
|
# timem installation
|
||
|
|
#
|
||
|
|
|
||
|
|
if(NOT ROCPROFILER_BENCHMARK_INSTALL_TIMEM)
|
||
|
|
find_program(
|
||
|
|
TIMEM_EXECUTABLE
|
||
|
|
NAMES timem
|
||
|
|
HINTS ${PROJECT_BINARY_DIR}
|
||
|
|
PATHS ${PROJECT_BINARY_DIR}
|
||
|
|
PATH_SUFFIXES bin)
|
||
|
|
endif()
|
||
|
|
|
||
|
|
if(NOT TIMEM_EXECUTABLE OR NOT EXISTS "${TIMEM_EXECUTABLE}")
|
||
|
|
set(TIMEM_INSTALLER
|
||
|
|
${CMAKE_CURRENT_BINARY_DIR}/installer/timemory-timem-1.0.0-Linux.sh)
|
||
|
|
find_program(SHELL_EXECUTABLE NAMES sh bash REQUIRED)
|
||
|
|
|
||
|
|
file(
|
||
|
|
DOWNLOAD
|
||
|
|
https://github.com/ROCm/timemory/releases/download/timemory-timem%2Fv0.0.4/timemory-timem-1.0.0-Linux.sh
|
||
|
|
${TIMEM_INSTALLER}
|
||
|
|
EXPECTED_MD5 63da7df7996a86d6d9ce312276c2f014
|
||
|
|
INACTIVITY_TIMEOUT 30
|
||
|
|
TIMEOUT 300
|
||
|
|
SHOW_PROGRESS)
|
||
|
|
|
||
|
|
execute_process(
|
||
|
|
COMMAND ${SHELL_EXECUTABLE} ${TIMEM_INSTALLER} --prefix=${PROJECT_BINARY_DIR}
|
||
|
|
--exclude-subdir --skip-license
|
||
|
|
WORKING_DIRECTORY ${PROJECT_BINARY_DIR}
|
||
|
|
RESULT_VARIABLE _RET
|
||
|
|
OUTPUT_VARIABLE _OUT
|
||
|
|
ERROR_VARIABLE _ERR
|
||
|
|
OUTPUT_STRIP_TRAILING_WHITESPACE ERROR_STRIP_TRAILING_WHITESPACE)
|
||
|
|
|
||
|
|
if(NOT EXISTS ${PROJECT_BINARY_DIR}/bin/timem OR NOT _RET EQUAL 0)
|
||
|
|
message(
|
||
|
|
FATAL_ERROR
|
||
|
|
"timem installation failed with exit code ${_RET}.\nSTDOUT:\n\t${_OUT}\nSTDERR:\n\t${_ERR}"
|
||
|
|
)
|
||
|
|
endif()
|
||
|
|
endif()
|
||
|
|
|
||
|
|
find_program(
|
||
|
|
TIMEM_EXECUTABLE
|
||
|
|
NAMES timem REQUIRED
|
||
|
|
HINTS ${PROJECT_BINARY_DIR}
|
||
|
|
PATHS ${PROJECT_BINARY_DIR}
|
||
|
|
PATH_SUFFIXES bin)
|
||
|
|
|
||
|
|
add_executable(rocprofiler-sdk::timem IMPORTED)
|
||
|
|
set_property(TARGET rocprofiler-sdk::timem PROPERTY IMPORTED_LOCATION ${TIMEM_EXECUTABLE})
|