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()