1 cmake_minimum_required(VERSION 3.22.1) 2 project(cuda_backend) 3 4 set(CMAKE_CXX_STANDARD 14) 5 if(UNIX) 6 if(NOT DEFINED ROCM_PATH) 7 set(ROCM_PATH "/opt/rocm" CACHE STRING "Default ROCM installation directory.") 8 endif() 9 list(APPEND CMAKE_PREFIX_PATH "${ROCM_PATH}") 10 endif() 11 find_package(HIP) 12 #get_cmake_property(_variableNames VARIABLES) 13 #foreach (_variableName ${_variableNames}) 14 # message(STATUS "${_variableName}=${${_variableName}}") 15 #endforeach() 16 if(HIP_FOUND) 17 set(CMAKE_CXX_COMPILER ${HIP_HIPCC_EXECUTABLE}) 18 set(CMAKE_CXX_LINKER ${HIP_HIPCC_EXECUTABLE}) 19 20 if ("${HIP_BACKEND}EMPTY" STREQUAL "EMPTY") 21 set (HIP_BACKEND "${CMAKE_SOURCE_DIR}") 22 message("HIP_BACKEND=${HIP_BACKEND}") 23 endif() 24 25 if ("${SHARED_BACKEND}EMPTY" STREQUAL "EMPTY") 26 set (SHARED_BACKEND "${CMAKE_SOURCE_DIR}/../shared") 27 message("SHARED_BACKEND=${SHARED_BACKEND}") 28 endif() 29 30 include_directories( 31 hip::host 32 ${HIP_INCLUDE_DIR} 33 ${SHARED_BACKEND}/src/main/native/include 34 ${HIP_BACKEND}/src/main/native/include 35 ) 36 37 link_directories( 38 ${CMAKE_BINARY_DIR} 39 # ${hip_LIB_INSTALL_DIR} 40 ) 41 42 add_library(hip_backend SHARED 43 ${HIP_BACKEND}/src/main/native/cpp/hip_backend.cpp 44 ) 45 46 target_link_libraries(hip_backend 47 PRIVATE hip::host 48 ) 49 50 add_executable(hip_info 51 ${HIP_BACKEND}/src/main/native/cpp/info.cpp 52 ) 53 54 target_link_libraries(hip_info 55 hip_backend 56 hip::host 57 ) 58 else() 59 messge("NO HIP for YOU!") 60 endif()