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