11# Copyright (c) 2025, Advanced Micro Devices, Inc. All rights reserved.
22# License for AMD contributions = MIT. See LICENSE for more information
3+
34cmake_minimum_required (VERSION 3.21)
45project (rocshmem LANGUAGES HIP)
56
67find_package (hip REQUIRED)
78find_package (MPI REQUIRED)
89
9-
10- if (DEFINED ENV{ROCSHMEM_HOME})
11- set (ROCSHMEM_HOME "$ENV{ROCSHMEM_HOME} " CACHE STRING "Location of ROCSHMEM installation" )
12- else ()
13- set (ROCSHMEM_HOME "/opt/rocm" CACHE STRING "Location of ROCSHMEM installation (default)" )
14- endif ()
15-
16- set (ROCSHMEM_INCLUDE_DIR "${ROCSHMEM_HOME} /include/rocshmem" )
17- if (NOT EXISTS "${ROCSHMEM_INCLUDE_DIR} " )
18- set (ROCSHMEM_INCLUDE_DIR "${ROCSHMEM_HOME} /include" )
19- endif ()
20-
2110add_library (rocshmemapi OBJECT rocshmem_waitkernel.hip)
2211
2312target_compile_options (rocshmemapi PRIVATE
@@ -30,14 +19,35 @@ set_target_properties(rocshmemapi PROPERTIES
3019 POSITION_INDEPENDENT_CODE ON
3120)
3221
22+ if (DEFINED ENV{ROCSHMEM_HOME})
23+ set (ROCSHMEM_HOME "$ENV{ROCSHMEM_HOME} " CACHE STRING "Location of ROCSHMEM installation" )
24+ else ()
25+ set (ROCSHMEM_HOME "/opt/rocm" CACHE STRING "Location of ROCSHMEM installation (default)" )
26+ endif ()
27+ set (ROCSHMEM_LIBRARY_PATH "${ROCSHMEM_HOME} /lib/librocshmem.a" )
28+ if (EXISTS ${ROCSHMEM_LIBRARY_PATH} )
29+ add_library (rocshmem STATIC IMPORTED )
30+ set_target_properties (rocshmem PROPERTIES
31+ IMPORTED_LOCATION "${ROCSHMEM_LIBRARY_PATH} "
32+ IMPORTED_LINK_INTERFACE_LANGUAGES "CXX"
33+ )
34+ else ()
35+ message (FATAL_ERROR "ROCSHMEM library not found at ${ROCSHMEM_LIBRARY_PATH} . PLease set ROCSHMEM_HOME." )
36+ endif ()
37+
38+ set (ROCSHMEM_INCLUDE_DIR "${ROCSHMEM_HOME} /include/rocshmem" )
39+ if (NOT EXISTS "${ROCSHMEM_INCLUDE_DIR} " )
40+ set (ROCSHMEM_INCLUDE_DIR "${ROCSHMEM_HOME} /include" )
41+ endif ()
42+
3343target_include_directories (rocshmemapi PUBLIC
3444 "${ROCSHMEM_INCLUDE_DIR} "
3545 "${CMAKE_CURRENT_SOURCE_DIR} "
3646 "${MPI_INCLUDE_PATH} "
3747)
3848
3949target_link_libraries (rocshmemapi PUBLIC
40- " ${ROCSHMEM_HOME} /lib/librocshmem.a"
50+ rocshmem
4151 MPI::MPI_CXX
4252 hip::host
4353 hip::device
0 commit comments