From 1a16b3bedc65aa2d71f6bc72e221df348a499f7a Mon Sep 17 00:00:00 2001 From: Aurelien Bouteiller Date: Wed, 10 Dec 2025 11:40:29 -0500 Subject: [PATCH] Reenable building test-only with external MPI (#352) --- cmake/setup_project.cmake | 6 +++++- examples/CMakeLists.txt | 5 +++-- src/mpi_instance.hpp | 4 ++-- tests/functional_tests/CMakeLists.txt | 12 ++++++++---- 4 files changed, 18 insertions(+), 9 deletions(-) diff --git a/cmake/setup_project.cmake b/cmake/setup_project.cmake index df3a98376c..4bf480b4ae 100644 --- a/cmake/setup_project.cmake +++ b/cmake/setup_project.cmake @@ -29,7 +29,7 @@ set(CMAKE_BUILD_TYPE "Release" CACHE STRING "build type: Release, Debug, RelWithDebInfo, MinSizeRel") ############################################################################### -# GLOBAL COMPILE FLAGS +# DEPENDENCIES ############################################################################### # Try to establish ROCM_PATH (for find_package) @@ -70,6 +70,10 @@ endforeach() if (NOT DEFINED CMAKE_CXX_COMPILER) find_program(CMAKE_CXX_COMPILER hipcc PATHS /opt/rocm) endif() + +############################################################################### +# GLOBAL COMPILE FLAGS +############################################################################### set(CMAKE_CXX_EXTENSIONS OFF) set(CMAKE_CXX_STANDARD 20) set(CMAKE_CXX_STANDARD_REQUIRED ON) diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt index f35e6db4d7..8969ae4a69 100644 --- a/examples/CMakeLists.txt +++ b/examples/CMakeLists.txt @@ -29,6 +29,7 @@ cmake_minimum_required(VERSION 3.16.3 FATAL_ERROR) include(${CMAKE_SOURCE_DIR}/cmake/setup_project.cmake) project(rocshmem_examples VERSION 1.0.0 LANGUAGES CXX) +find_package(MPI) find_package(hip REQUIRED PATHS /opt/rocm) if (NOT TARGET roc::rocshmem) find_package(rocshmem REQUIRED PATHS /opt/rocm) @@ -45,7 +46,7 @@ set(EXAMPLE_SOURCES rocshmem_put_signal_test.cc ) -if (HAVE_EXTERNAL_MPI) +if (MPI_CXX_FOUND) list(APPEND EXAMPLE_SOURCES rocshmem_init_attr_test.cc) endif() @@ -58,7 +59,7 @@ foreach(SOURCE_FILE IN LISTS EXAMPLE_SOURCES) target_link_libraries( ${EXECUTABLE_NAME} PRIVATE - $ roc::rocshmem + $ ) endforeach() diff --git a/src/mpi_instance.hpp b/src/mpi_instance.hpp index b7a2c88d88..9ab281eea4 100644 --- a/src/mpi_instance.hpp +++ b/src/mpi_instance.hpp @@ -25,8 +25,8 @@ #ifndef LIBRARY_SRC_MPI_INSTANCE_HPP_ #define LIBRARY_SRC_MPI_INSTANCE_HPP_ -#include -#include +#include "rocshmem/rocshmem_config.h" +#include "rocshmem/rocshmem_mpi.hpp" #include /** diff --git a/tests/functional_tests/CMakeLists.txt b/tests/functional_tests/CMakeLists.txt index 57eefed5a6..a474e02234 100644 --- a/tests/functional_tests/CMakeLists.txt +++ b/tests/functional_tests/CMakeLists.txt @@ -72,14 +72,17 @@ target_sources( # ROCSHMEM ############################################################################### if (BUILD_TESTS_ONLY) - #TODO check that build_test_only still works with external-mpi + #TODO these find_packages should be performed as-needed in rocshmem-config.cmake + find_package(hip REQUIRED PATHS /opt/rocm) + find_package(MPI) + find_package(Threads REQUIRED) find_package(rocshmem REQUIRED PATHS /opt/rocm) target_include_directories( ${PROJECT_NAME} PRIVATE - $ $ + $ ) endif() @@ -88,12 +91,13 @@ find_package(PMIx) target_compile_definitions( ${PROJECT_NAME} PRIVATE - $<$:HAVE_PMIX=1> + $<$:HAVE_PMIX=1> ) target_link_libraries( ${PROJECT_NAME} PRIVATE roc::rocshmem - $<$:PMIx::pmix> + $ + $ )