Rework cmakery: (#136)
* Rework cmakery:
* detect rocm/hip/rocshmem better, make sure that ROCM_PATH and
ROCM_ROOT don't conflict and are taken by default
* add /opt/rocm as a fallback when nothing else found
* obtain hipcc in a sanitized way (ensure we use the same logic we
use to later find_package hip)
* factorize redundancies
* export GPU_TARGETS as part of the cmake target for librocshmem,
this helps with a clean error when an application tries to link
with the wrong offload-target flag (rather than a cryptic link error)
* phased out ROCSHMEM_HOME, in favor of rocshmem_ROOT (the cmake
blessed way)
* Remove references to ROCSHMEM_HOME, we prefer ROCSHMEM_ROOT
* Pick CMAKE_PREFIX_PATH method for consistent finding hip/rocm
* Undo this pr using LANGUAGE HIP, maybe later
* Use only rocmcmakebuildtools as recommended from 6.4 onward
[ROCm/rocshmem commit: ee5363be7a]
This commit is contained in:
committed by
GitHub
parent
14756a73b1
commit
08d8324f74
@@ -70,51 +70,10 @@ option(BUILD_CODE_COVERAGE "Build with code coverage flags (gcc only)" OFF)
|
||||
|
||||
configure_file(cmake/rocshmem_config.h.in rocshmem_config.h)
|
||||
|
||||
###############################################################################
|
||||
# GLOBAL COMPILE FLAGS
|
||||
###############################################################################
|
||||
if (DEFINED ENV{ROCM_PATH})
|
||||
set(ROCM_PATH "$ENV{ROCM_PATH}" CACHE STRING "ROCm install directory")
|
||||
else()
|
||||
set(ROCM_PATH "/opt/rocm" CACHE STRING "ROCm install directory")
|
||||
endif()
|
||||
|
||||
if (NOT DEFINED CMAKE_CXX_COMPILER)
|
||||
set(CMAKE_CXX_COMPILER ${ROCM_PATH}/bin/hipcc)
|
||||
endif()
|
||||
set(CMAKE_CXX_EXTENSIONS OFF)
|
||||
set(CMAKE_CXX_STANDARD 17)
|
||||
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||
set(CMAKE_CXX_FLAGS_DEBUG "-O0 -ggdb")
|
||||
|
||||
if (BUILD_TESTS_ONLY)
|
||||
if (DEFINED ENV{ROCSHMEM_HOME})
|
||||
set(ROCSHMEM_HOME "$ENV{ROCSHMEM_HOME}")
|
||||
else()
|
||||
message("Environment variable ROCSHMEM_HOME is not set.")
|
||||
message("Assuming that rocSHMEM is installed at ${ROCM_PATH}.")
|
||||
set(ROCSHMEM_HOME "${ROCM_PATH}")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
find_package(ROCM 0.8 REQUIRED PATHS ${ROCM_PATH})
|
||||
set(ROCMCHECKS_WARN_TOOLCHAIN_VAR OFF)
|
||||
|
||||
include(cmake/rocm_local_targets.cmake)
|
||||
|
||||
set(DEFAULT_GPUS
|
||||
gfx90a:xnack-;
|
||||
gfx90a:xnack+;
|
||||
gfx942:xnack-;
|
||||
gfx942:xnack+)
|
||||
|
||||
###############################################################################
|
||||
# PROJECT
|
||||
###############################################################################
|
||||
find_package(ROCmCMakeBuildTools)
|
||||
include(ROCMCreatePackage)
|
||||
include(ROCMInstallTargets)
|
||||
include(ROCMCheckTargetIds)
|
||||
include(${CMAKE_SOURCE_DIR}/cmake/setup_project.cmake)
|
||||
|
||||
## Setup VERSION
|
||||
file(READ include/rocshmem/rocshmem.hpp header_text)
|
||||
@@ -125,9 +84,15 @@ else()
|
||||
endif()
|
||||
message(STATUS "rocSHMEM Version: " "${VERSION_STRING}")
|
||||
|
||||
rocm_setup_version(VERSION ${VERSION_STRING})
|
||||
project(rocshmem VERSION ${VERSION_STRING} LANGUAGES CXX)
|
||||
|
||||
find_package(ROCmCMakeBuildTools PATHS /opt/rocm)
|
||||
include(ROCMCreatePackage)
|
||||
include(ROCMInstallTargets)
|
||||
include(ROCMCheckTargetIds)
|
||||
|
||||
rocm_setup_version(VERSION ${VERSION_STRING})
|
||||
|
||||
###############################################################################
|
||||
# CREATE ROCSHMEM LIBRARY
|
||||
###############################################################################
|
||||
@@ -139,6 +104,14 @@ if (NOT BUILD_TESTS_ONLY)
|
||||
#############################################################################
|
||||
# SET GPU ARCHITECTURES
|
||||
#############################################################################
|
||||
include(cmake/rocm_local_targets.cmake)
|
||||
|
||||
set(DEFAULT_GPUS
|
||||
gfx90a:xnack-;
|
||||
gfx90a:xnack+;
|
||||
gfx942:xnack-;
|
||||
gfx942:xnack+)
|
||||
|
||||
if (BUILD_LOCAL_GPU_TARGET_ONLY)
|
||||
message(STATUS "Building only for local GPU target")
|
||||
if (COMMAND rocm_local_targets)
|
||||
@@ -155,8 +128,8 @@ if (NOT BUILD_TESTS_ONLY)
|
||||
message(STATUS "Checking for ROCm support for GPU targets: " "${GPU_TARGETS}")
|
||||
rocm_check_target_ids(SUPPORTED_GPUS TARGETS ${GPU_TARGETS})
|
||||
else()
|
||||
message(WARNING "Unable to check for supported GPU targets. Falling back to default GPUs.")
|
||||
set(SUPPORTED_GPUS ${DEFAULT_GPUS})
|
||||
message(WARNING "Unable to check for supported GPU targets.")
|
||||
set(SUPPORTED_GPUS ${GPU_TARGETS})
|
||||
endif()
|
||||
|
||||
set(COMPILING_TARGETS "${SUPPORTED_GPUS}" CACHE STRING "GPU targets to compile for.")
|
||||
@@ -165,13 +138,12 @@ if (NOT BUILD_TESTS_ONLY)
|
||||
foreach (target ${COMPILING_TARGETS})
|
||||
list(APPEND offload_flags --offload-arch=${target})
|
||||
endforeach()
|
||||
add_compile_options(${offload_flags})
|
||||
|
||||
#############################################################################
|
||||
# PACKAGE DEPENDENCIES
|
||||
#############################################################################
|
||||
find_package(MPI REQUIRED)
|
||||
find_package(hip REQUIRED)
|
||||
find_package(hip REQUIRED PATHS /opt/rocm)
|
||||
find_package(hsa-runtime64 REQUIRED)
|
||||
|
||||
set(CMAKE_THREAD_PREFER_PTHREAD TRUE)
|
||||
@@ -181,37 +153,32 @@ if (NOT BUILD_TESTS_ONLY)
|
||||
#############################################################################
|
||||
# LINKING AND INCLUDE DIRECTORIES
|
||||
#############################################################################
|
||||
target_compile_options(
|
||||
${PROJECT_NAME}
|
||||
PUBLIC
|
||||
${offload_flags}
|
||||
-fgpu-rdc
|
||||
)
|
||||
|
||||
target_include_directories(
|
||||
${PROJECT_NAME}
|
||||
PUBLIC
|
||||
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
|
||||
$<BUILD_INTERFACE:${CMAKE_BINARY_DIR}> # rocshmem_config.h
|
||||
$<INSTALL_INTERFACE:include>
|
||||
${MPI_CXX_HEADER_DIR}
|
||||
)
|
||||
|
||||
target_link_libraries(
|
||||
${PROJECT_NAME}
|
||||
PUBLIC
|
||||
Threads::Threads
|
||||
${MPI_mpi_LIBRARY}
|
||||
${MPI_mpicxx_LIBRARY}
|
||||
MPI::MPI_CXX
|
||||
hip::device
|
||||
hip::host
|
||||
hsa-runtime64::hsa-runtime64
|
||||
-fgpu-rdc
|
||||
)
|
||||
endif()
|
||||
|
||||
###############################################################################
|
||||
# TEST SUBDIRECTORIES
|
||||
###############################################################################
|
||||
add_subdirectory(tests)
|
||||
|
||||
if (BUILD_EXAMPLES)
|
||||
add_subdirectory(examples)
|
||||
endif()
|
||||
|
||||
if (NOT BUILD_TESTS_ONLY)
|
||||
#############################################################################
|
||||
# INSTALL
|
||||
#############################################################################
|
||||
@@ -252,4 +219,14 @@ if (NOT BUILD_TESTS_ONLY)
|
||||
DESCRIPTION "ROCm OpenSHMEM (rocSHMEM)"
|
||||
MAINTAINER "rocSHMEM Maintainer <rocshmem-maintainer@amd.com>"
|
||||
)
|
||||
endif (NOT BUILD_TESTS_ONLY)
|
||||
|
||||
###############################################################################
|
||||
# TEST SUBDIRECTORIES
|
||||
###############################################################################
|
||||
add_subdirectory(tests)
|
||||
|
||||
if (BUILD_EXAMPLES)
|
||||
add_subdirectory(examples)
|
||||
endif()
|
||||
|
||||
|
||||
@@ -0,0 +1,46 @@
|
||||
###############################################################################
|
||||
# Copyright (c) Advanced Micro Devices, Inc. All rights reserved.
|
||||
#
|
||||
# SPDX-License-Identifier: MIT
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
# of this software and associated documentation files (the "Software"), to
|
||||
# deal in the Software without restriction, including without limitation the
|
||||
# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
|
||||
# sell copies of the Software, and to permit persons to whom the Software is
|
||||
# furnished to do so, subject to the following conditions:
|
||||
#
|
||||
# The above copyright notice and this permission notice shall be included in
|
||||
# all copies or substantial portions of the Software.
|
||||
#
|
||||
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
|
||||
# IN THE SOFTWARE.
|
||||
###############################################################################
|
||||
|
||||
###############################################################################
|
||||
# DEFAULT BUILD TYPE
|
||||
###############################################################################
|
||||
set(CMAKE_BUILD_TYPE "Release" CACHE STRING
|
||||
"build type: Release, Debug, RelWithDebInfo, MinSizeRel")
|
||||
|
||||
###############################################################################
|
||||
# GLOBAL COMPILE FLAGS
|
||||
###############################################################################
|
||||
foreach (root ${hip_ROOT} $ENV{hip_ROOT} ${ROCM_ROOT} $ENV{ROCM_ROOT} ${ROCM_PATH} $ENV{ROCM_PATH})
|
||||
if (IS_DIRECTORY ${root})
|
||||
list(PREPEND CMAKE_PREFIX_PATH ${root})
|
||||
endif()
|
||||
endforeach()
|
||||
if (NOT DEFINED CMAKE_CXX_COMPILER)
|
||||
find_program(CMAKE_CXX_COMPILER hipcc PATHS /opt/rocm)
|
||||
endif()
|
||||
set(CMAKE_CXX_EXTENSIONS OFF)
|
||||
set(CMAKE_CXX_STANDARD 20)
|
||||
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||
set(CMAKE_CXX_FLAGS_DEBUG "-O0 -ggdb")
|
||||
|
||||
@@ -21,6 +21,13 @@
|
||||
# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
|
||||
# IN THE SOFTWARE.
|
||||
###############################################################################
|
||||
cmake_minimum_required(VERSION 3.16.3 FATAL_ERROR)
|
||||
|
||||
###############################################################################
|
||||
# PROJECT
|
||||
###############################################################################
|
||||
include(${CMAKE_SOURCE_DIR}/cmake/setup_project.cmake)
|
||||
project(rocshmem_examples VERSION 1.0.0 LANGUAGES CXX)
|
||||
|
||||
###############################################################################
|
||||
# SOURCES
|
||||
@@ -34,56 +41,21 @@ set(EXAMPLE_SOURCES
|
||||
rocshmem_init_attr_test.cc
|
||||
)
|
||||
|
||||
find_package(MPI REQUIRED)
|
||||
find_package(hip REQUIRED PATHS /opt/rocm)
|
||||
if(NOT TARGET roc::rocshmem)
|
||||
find_package(rocshmem REQUIRED PATHS /opt/rocm)
|
||||
endif()
|
||||
|
||||
foreach(SOURCE_FILE IN LISTS EXAMPLE_SOURCES)
|
||||
get_filename_component(EXECUTABLE_NAME ${SOURCE_FILE} NAME_WE)
|
||||
|
||||
add_executable(${EXECUTABLE_NAME} ${SOURCE_FILE})
|
||||
|
||||
if (BUILD_TESTS_ONLY)
|
||||
find_package(MPI REQUIRED)
|
||||
|
||||
target_include_directories(
|
||||
${EXECUTABLE_NAME}
|
||||
PRIVATE
|
||||
$<BUILD_INTERFACE:${ROCSHMEM_HOME}/include>
|
||||
$<BUILD_INTERFACE:${MPI_CXX_HEADER_DIR}>
|
||||
)
|
||||
|
||||
foreach (target ${DEFAULT_GPUS})
|
||||
list(APPEND offload_flags --offload-arch=${target})
|
||||
endforeach()
|
||||
|
||||
target_compile_options(
|
||||
${EXECUTABLE_NAME}
|
||||
PRIVATE
|
||||
${offload_flags}
|
||||
-fgpu-rdc
|
||||
)
|
||||
|
||||
target_link_libraries(
|
||||
${EXECUTABLE_NAME}
|
||||
PRIVATE
|
||||
${MPI_mpi_LIBRARY}
|
||||
${MPI_mpicxx_LIBRARY}
|
||||
${offload_flags}
|
||||
-L${ROCSHMEM_HOME}/lib
|
||||
-lamdhip64
|
||||
-lhsa-runtime64
|
||||
-lrocshmem
|
||||
-fgpu-rdc
|
||||
)
|
||||
else()
|
||||
target_include_directories(
|
||||
${EXECUTABLE_NAME}
|
||||
PRIVATE
|
||||
roc::rocshmem
|
||||
)
|
||||
|
||||
target_link_libraries(
|
||||
${EXECUTABLE_NAME}
|
||||
PRIVATE
|
||||
roc::rocshmem
|
||||
-fgpu-rdc
|
||||
)
|
||||
endif()
|
||||
target_link_libraries(
|
||||
${EXECUTABLE_NAME}
|
||||
PRIVATE
|
||||
MPI::MPI_CXX
|
||||
roc::rocshmem
|
||||
)
|
||||
endforeach()
|
||||
|
||||
@@ -33,13 +33,10 @@ else
|
||||
install_path=$1
|
||||
fi
|
||||
|
||||
if [ -z $1 ] && [ -z $ROCSHMEM_HOME ]
|
||||
then
|
||||
export ROCSHMEM_HOME=/opt/rocm/
|
||||
fi
|
||||
|
||||
src_path=$(dirname "$(realpath $0)")/../../
|
||||
|
||||
# If as specific rocSHMEM version is required, the recommended approach
|
||||
# is to set environment variable 'rocshmem_ROOT'
|
||||
cmake \
|
||||
-DCMAKE_BUILD_TYPE=Release \
|
||||
-DCMAKE_INSTALL_PREFIX=$install_path \
|
||||
|
||||
@@ -22,21 +22,27 @@
|
||||
# IN THE SOFTWARE.
|
||||
###############################################################################
|
||||
|
||||
set(TESTS_NAME rocshmem_example_driver)
|
||||
cmake_minimum_required(VERSION 3.16.3 FATAL_ERROR)
|
||||
|
||||
###############################################################################
|
||||
# PROJECT
|
||||
###############################################################################
|
||||
include(${CMAKE_SOURCE_DIR}/cmake/setup_project.cmake)
|
||||
project(rocshmem_functional_tests VERSION 1.0.0 LANGUAGES CXX)
|
||||
|
||||
###############################################################################
|
||||
# SOURCES
|
||||
###############################################################################
|
||||
add_executable(${TESTS_NAME} "")
|
||||
add_executable(${PROJECT_NAME} "")
|
||||
|
||||
target_include_directories(
|
||||
${TESTS_NAME}
|
||||
${PROJECT_NAME}
|
||||
PRIVATE
|
||||
${CMAKE_CURRENT_SOURCE_DIR}
|
||||
)
|
||||
|
||||
target_sources(
|
||||
${TESTS_NAME}
|
||||
${PROJECT_NAME}
|
||||
PRIVATE
|
||||
barrier_all_tester.cpp
|
||||
sync_tester.cpp
|
||||
@@ -67,50 +73,19 @@ target_sources(
|
||||
###############################################################################
|
||||
if (BUILD_TESTS_ONLY)
|
||||
find_package(MPI REQUIRED)
|
||||
find_package(hip REQUIRED PATHS /opt/rocm)
|
||||
find_package(rocshmem REQUIRED PATHS /opt/rocm)
|
||||
|
||||
target_include_directories(
|
||||
${TESTS_NAME}
|
||||
${PROJECT_NAME}
|
||||
PRIVATE
|
||||
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/..>
|
||||
$<BUILD_INTERFACE:${CMAKE_BINARY_DIR}>
|
||||
$<BUILD_INTERFACE:${ROCSHMEM_HOME}/include>
|
||||
$<BUILD_INTERFACE:${MPI_CXX_HEADER_DIR}>
|
||||
)
|
||||
|
||||
foreach (target ${DEFAULT_GPUS})
|
||||
list(APPEND offload_flags --offload-arch=${target})
|
||||
endforeach()
|
||||
|
||||
target_compile_options(
|
||||
${TESTS_NAME}
|
||||
PRIVATE
|
||||
${offload_flags}
|
||||
-fgpu-rdc
|
||||
)
|
||||
|
||||
target_link_libraries(
|
||||
${TESTS_NAME}
|
||||
PRIVATE
|
||||
${MPI_mpi_LIBRARY}
|
||||
${MPI_mpicxx_LIBRARY}
|
||||
${offload_flags}
|
||||
-L${ROCSHMEM_HOME}/lib
|
||||
-lamdhip64
|
||||
-lhsa-runtime64
|
||||
-lrocshmem
|
||||
-fgpu-rdc
|
||||
)
|
||||
else()
|
||||
target_include_directories(
|
||||
${TESTS_NAME}
|
||||
PRIVATE
|
||||
roc::rocshmem
|
||||
)
|
||||
|
||||
target_link_libraries(
|
||||
${TESTS_NAME}
|
||||
PRIVATE
|
||||
roc::rocshmem
|
||||
-fgpu-rdc
|
||||
)
|
||||
endif()
|
||||
|
||||
target_link_libraries(
|
||||
${PROJECT_NAME}
|
||||
PRIVATE
|
||||
roc::rocshmem
|
||||
)
|
||||
|
||||
@@ -24,38 +24,10 @@
|
||||
|
||||
cmake_minimum_required(VERSION 3.16.3 FATAL_ERROR)
|
||||
|
||||
set(INSTALL_GTEST OFF CACHE BOOL "" FORCE)
|
||||
|
||||
###############################################################################
|
||||
# GLOBAL COMPILE FLAGS
|
||||
###############################################################################
|
||||
if (NOT DEFINED CMAKE_CXX_COMPILER)
|
||||
set(CMAKE_CXX_COMPILER /opt/rocm/bin/hipcc)
|
||||
endif()
|
||||
set(CMAKE_CXX_EXTENSIONS OFF)
|
||||
set(CMAKE_CXX_STANDARD 20)
|
||||
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||
set(CMAKE_CXX_FLAGS_DEBUG "-O0 -ggdb")
|
||||
|
||||
###############################################################################
|
||||
# DEFAULT BUILD TYPE
|
||||
###############################################################################
|
||||
if(NOT CMAKE_BUILD_TYPE)
|
||||
message(STATUS "CMAKE_BUILD_TYPE unspecified: generating Release build")
|
||||
|
||||
set(
|
||||
CMAKE_BUILD_TYPE
|
||||
"Release"
|
||||
CACHE
|
||||
STRING
|
||||
"build type: Release, Debug, RelWithDebInfo, MinSizeRel"
|
||||
FORCE
|
||||
)
|
||||
endif()
|
||||
|
||||
###############################################################################
|
||||
# PROJECT
|
||||
###############################################################################
|
||||
include(${CMAKE_SOURCE_DIR}/cmake/setup_project.cmake)
|
||||
project(rocshmem_unit_tests VERSION 1.0.0 LANGUAGES CXX)
|
||||
|
||||
###############################################################################
|
||||
@@ -67,7 +39,6 @@ target_include_directories(
|
||||
${PROJECT_NAME}
|
||||
PRIVATE
|
||||
${CMAKE_CURRENT_SOURCE_DIR}
|
||||
${CMAKE_SOURCE_DIR}/../../library
|
||||
)
|
||||
|
||||
target_sources(
|
||||
@@ -78,7 +49,7 @@ target_sources(
|
||||
hipmalloc_gtest.cpp
|
||||
bin_gtest.cpp
|
||||
binner_gtest.cpp
|
||||
#bitwise_gtest.cpp # Test is disabled becasue of compilation errors
|
||||
#bitwise_gtest.cpp # Test is disabled because of compilation errors
|
||||
address_record_gtest.cpp
|
||||
index_strategy_gtest.cpp
|
||||
single_heap_gtest.cpp
|
||||
@@ -107,65 +78,32 @@ endif()
|
||||
###############################################################################
|
||||
# ROCSHMEM DEPENDENCY
|
||||
###############################################################################
|
||||
find_package(hip REQUIRED)
|
||||
find_package(hip REQUIRED PATHS /opt/rocm)
|
||||
|
||||
if (BUILD_TESTS_ONLY)
|
||||
find_package(MPI REQUIRED)
|
||||
find_package(rocshmem REQUIRED PATHS /opt/rocm)
|
||||
|
||||
target_include_directories(
|
||||
${PROJECT_NAME}
|
||||
PRIVATE
|
||||
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/..>
|
||||
$<BUILD_INTERFACE:${CMAKE_BINARY_DIR}>
|
||||
$<BUILD_INTERFACE:${ROCSHMEM_HOME}/include>
|
||||
$<BUILD_INTERFACE:${MPI_CXX_HEADER_DIR}>
|
||||
)
|
||||
|
||||
foreach (target ${DEFAULT_GPUS})
|
||||
list(APPEND offload_flags --offload-arch=${target})
|
||||
endforeach()
|
||||
|
||||
target_compile_options(
|
||||
${PROJECT_NAME}
|
||||
PRIVATE
|
||||
${offload_flags}
|
||||
-fgpu-rdc
|
||||
)
|
||||
|
||||
target_link_libraries(
|
||||
${PROJECT_NAME}
|
||||
PRIVATE
|
||||
${MPI_mpi_LIBRARY}
|
||||
${MPI_mpicxx_LIBRARY}
|
||||
${offload_flags}
|
||||
-L${ROCSHMEM_HOME}/lib
|
||||
-lamdhip64
|
||||
-lhsa-runtime64
|
||||
-lrocshmem
|
||||
-fgpu-rdc
|
||||
)
|
||||
else()
|
||||
target_include_directories(
|
||||
${PROJECT_NAME}
|
||||
PRIVATE
|
||||
roc::rocshmem
|
||||
)
|
||||
|
||||
target_link_libraries(
|
||||
${PROJECT_NAME}
|
||||
PRIVATE
|
||||
roc::rocshmem
|
||||
hip::host
|
||||
-fgpu-rdc
|
||||
)
|
||||
endif()
|
||||
|
||||
target_link_libraries(
|
||||
${PROJECT_NAME}
|
||||
PRIVATE
|
||||
roc::rocshmem
|
||||
)
|
||||
|
||||
###############################################################################
|
||||
# GTEST DEPENDENCY
|
||||
###############################################################################
|
||||
# These packages are required for the unit tests
|
||||
find_package(rocprim REQUIRED CONFIG PATHS "${ROCM_PATH}/include/rocprim")
|
||||
find_package(rocthrust REQUIRED CONFIG PATHS "${ROCM_PATH}/include/rocthrust")
|
||||
find_package(rocprim REQUIRED PATHS /opt/rocm)
|
||||
find_package(rocthrust REQUIRED PATHS /opt/rocm)
|
||||
|
||||
include(FetchContent)
|
||||
|
||||
@@ -179,6 +117,7 @@ FetchContent_Declare(
|
||||
set(gtest_force_shared_crt ON CACHE BOOL "" FORCE)
|
||||
set(BUILD_GMOCK OFF CACHE BOOL "" FORCE)
|
||||
set(BUILD_GTEST ON CACHE BOOL "" FORCE)
|
||||
set(INSTALL_GTEST OFF CACHE BOOL "" FORCE)
|
||||
|
||||
FetchContent_MakeAvailable(googletest)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user