diff --git a/CMakeLists.txt b/CMakeLists.txt index 0fb91cbd9..9caeeddfa 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -34,7 +34,11 @@ set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE CACHE BOOL "Add paths to linker searc # rocm-cmake contains common cmake code for rocm projects to help # setup and install -find_package(ROCM 0.6 REQUIRED CONFIG PATHS /opt/rocm) +if(WIN32) + include (cmake/HIPOnWindowsDependencies.cmake) +else() + find_package(ROCM 0.6 REQUIRED CONFIG PATHS /opt/rocm) +endif() include( ROCMSetupVersion ) include( ROCMCreatePackage ) include( ROCMInstallTargets ) diff --git a/cmake/HIPOnWindowsDependencies.cmake b/cmake/HIPOnWindowsDependencies.cmake new file mode 100644 index 000000000..7142bcd97 --- /dev/null +++ b/cmake/HIPOnWindowsDependencies.cmake @@ -0,0 +1,37 @@ +# ######################################################################## +# Copyright 2021 Advanced Micro Devices, Inc. +# ######################################################################## + +# ########################### +# rocThrust dependencies +# ########################### + +if (WIN32) + find_package(ROCM 0.6 CONFIG QUIET PATHS ${ROCM_PATH}) + if(NOT ROCM_FOUND) + set(rocm_cmake_tag "master" CACHE STRING "rocm-cmake tag to download") + file( + DOWNLOAD https://github.com/RadeonOpenCompute/rocm-cmake/archive/${rocm_cmake_tag}.zip + ${CMAKE_CURRENT_BINARY_DIR}/rocm-cmake-${rocm_cmake_tag}.zip + STATUS rocm_cmake_download_status LOG rocm_cmake_download_log + ) + list(GET rocm_cmake_download_status 0 rocm_cmake_download_error_code) + if(rocm_cmake_download_error_code) + message(FATAL_ERROR "Error: downloading " + "https://github.com/RadeonOpenCompute/rocm-cmake/archive/${rocm_cmake_tag}.zip failed " + "error_code: ${rocm_cmake_download_error_code} " + "log: ${rocm_cmake_download_log} " + ) + endif() + + execute_process( + COMMAND ${CMAKE_COMMAND} -E tar xzf ${CMAKE_CURRENT_BINARY_DIR}/rocm-cmake-${rocm_cmake_tag}.zip + WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} + RESULT_VARIABLE rocm_cmake_unpack_error_code + ) + if(rocm_cmake_unpack_error_code) + message(FATAL_ERROR "Error: unpacking ${CMAKE_CURRENT_BINARY_DIR}/rocm-cmake-${rocm_cmake_tag}.zip failed") + endif() + find_package(ROCM REQUIRED CONFIG PATHS ${CMAKE_CURRENT_BINARY_DIR}/rocm-cmake-${rocm_cmake_tag}) + endif() +endif() \ No newline at end of file