xref: /llvm-project/offload/plugins-nextgen/amdgpu/CMakeLists.txt (revision 300e5b91144249a5b142b02d6331fcb33e13cf1d)
1c4017cdaSJoseph Huber# As of rocm-3.7, hsa is installed with cmake packages and kmt is found via hsa
2330d8983SJohannes Doerfertfind_package(hsa-runtime64 QUIET 1.2.0 HINTS ${CMAKE_INSTALL_PREFIX} PATHS /opt/rocm)
3330d8983SJohannes Doerfert
4330d8983SJohannes Doerfert# Create the library and add the default arguments.
5330d8983SJohannes Doerfertadd_target_library(omptarget.rtl.amdgpu AMDGPU)
6330d8983SJohannes Doerfert
7330d8983SJohannes Doerferttarget_sources(omptarget.rtl.amdgpu PRIVATE src/rtl.cpp)
8330d8983SJohannes Doerferttarget_include_directories(omptarget.rtl.amdgpu PRIVATE
9330d8983SJohannes Doerfert                           ${CMAKE_CURRENT_SOURCE_DIR}/utils)
10330d8983SJohannes Doerfert
11*c618ae17SJoseph Huberif(hsa-runtime64_FOUND AND NOT "amdgpu" IN_LIST LIBOMPTARGET_DLOPEN_PLUGINS)
12770d9283SJoseph Huber  message(STATUS "Building AMDGPU plugin linked against libhsa")
13330d8983SJohannes Doerfert  target_link_libraries(omptarget.rtl.amdgpu PRIVATE hsa-runtime64::hsa-runtime64)
14330d8983SJohannes Doerfertelse()
15770d9283SJoseph Huber  message(STATUS "Building AMDGPU plugin for dlopened libhsa")
16330d8983SJohannes Doerfert  target_include_directories(omptarget.rtl.amdgpu PRIVATE dynamic_hsa)
17330d8983SJohannes Doerfert  target_sources(omptarget.rtl.amdgpu PRIVATE dynamic_hsa/hsa.cpp)
18330d8983SJohannes Doerfertendif()
19330d8983SJohannes Doerfert
20330d8983SJohannes Doerfert# Configure testing for the AMDGPU plugin. We will build tests if we could a
21330d8983SJohannes Doerfert# functional AMD GPU on the system, or if manually specifies by the user.
22330d8983SJohannes Doerfertoption(LIBOMPTARGET_FORCE_AMDGPU_TESTS "Build AMDGPU libomptarget tests" OFF)
23330d8983SJohannes Doerfertif (LIBOMPTARGET_FOUND_AMDGPU_GPU OR LIBOMPTARGET_FORCE_AMDGPU_TESTS)
24330d8983SJohannes Doerfert  # Report to the parent scope that we are building a plugin for amdgpu
25330d8983SJohannes Doerfert  set(LIBOMPTARGET_SYSTEM_TARGETS
26330d8983SJohannes Doerfert      "${LIBOMPTARGET_SYSTEM_TARGETS} amdgcn-amd-amdhsa" PARENT_SCOPE)
27330d8983SJohannes Doerfert  list(APPEND LIBOMPTARGET_TESTED_PLUGINS "omptarget.rtl.amdgpu")
28330d8983SJohannes Doerfert  set(LIBOMPTARGET_TESTED_PLUGINS "${LIBOMPTARGET_TESTED_PLUGINS}" PARENT_SCOPE)
29330d8983SJohannes Doerfertelse()
30770d9283SJoseph Huber  message(STATUS "Not generating AMDGPU tests, no supported devices detected."
31330d8983SJohannes Doerfert                   " Use 'LIBOMPTARGET_FORCE_AMDGPU_TESTS' to override.")
32330d8983SJohannes Doerfertendif()
33