From e5b2569f84d8867640c7ca81a142ce0d210b01ca Mon Sep 17 00:00:00 2001 From: Kenneth Weiss Date: Wed, 18 Feb 2026 23:38:13 -0800 Subject: [PATCH 1/5] Updates blt submodule Allows setting up MPI in a Fortran config without an MPI_Fortran_COMPILER wrapper --- src/cmake/blt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/cmake/blt b/src/cmake/blt index ccd6d31c70..e524797758 160000 --- a/src/cmake/blt +++ b/src/cmake/blt @@ -1 +1 @@ -Subproject commit ccd6d31c7072ff984c7c8b723fc51f69e677ca72 +Subproject commit e524797758d43e9dc654cbc46f22550482c1d444 From 5d17181cc5fa0c05556b5238967ce46bc12eefe1 Mon Sep 17 00:00:00 2001 From: Kenneth Weiss Date: Wed, 18 Feb 2026 23:39:03 -0800 Subject: [PATCH 2/5] Fixes MPI export to only require Fortran when MPI was set up with Fortran --- src/cmake/AxomConfig.cmake | 7 +++++++ src/cmake/axom-config.cmake.in | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/src/cmake/AxomConfig.cmake b/src/cmake/AxomConfig.cmake index 266c4abd3b..0c4849df24 100644 --- a/src/cmake/AxomConfig.cmake +++ b/src/cmake/AxomConfig.cmake @@ -28,6 +28,13 @@ if(AXOM_ENABLE_MPI AND ENABLE_FORTRAN) endif() endif() +if(AXOM_ENABLE_MPI) + set(AXOM_REQUIRED_MPI_COMPONENTS C CXX) + if(ENABLE_FORTRAN AND MPI_Fortran_COMPILER) + list(APPEND AXOM_REQUIRED_MPI_COMPONENTS Fortran) + endif() +endif() + ## Add a configuration define for each enabled axom component foreach(comp ${AXOM_COMPONENTS_ENABLED}) diff --git a/src/cmake/axom-config.cmake.in b/src/cmake/axom-config.cmake.in index 66987f6603..93240f2273 100644 --- a/src/cmake/axom-config.cmake.in +++ b/src/cmake/axom-config.cmake.in @@ -157,7 +157,7 @@ if(NOT AXOM_FOUND) # Load mpi targets because we require the optional Conduit mpi targets if(AXOM_USE_MPI) - find_package(MPI REQUIRED) + find_package(MPI REQUIRED COMPONENTS @AXOM_REQUIRED_MPI_COMPONENTS@) endif() find_dependency(Conduit REQUIRED From 2d78fccb12910a5f764b12ec7bffbee287dbef75 Mon Sep 17 00:00:00 2001 From: Kenneth Weiss Date: Wed, 18 Feb 2026 23:42:18 -0800 Subject: [PATCH 3/5] Updates RELEASE-NOTES --- RELEASE-NOTES.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/RELEASE-NOTES.md b/RELEASE-NOTES.md index 7c4c18c62d..ac93eb9323 100644 --- a/RELEASE-NOTES.md +++ b/RELEASE-NOTES.md @@ -24,6 +24,8 @@ The Axom project release numbers follow [Semantic Versioning](http://semver.org/ - Primal: Axom's polygon clipping was modified to handle some corner cases. ### Fixed +- MPI setup in exported Axom config only requires Fortran when Axom's MPI was set up with Fortran. + This is in support of configs that require Fortran and MPI, but not an MPI wrapper for Fortran. ### Removed From c280f8a29150d45343ec16a710bfb6f1d9cc7c87 Mon Sep 17 00:00:00 2001 From: Kenneth Weiss Date: Thu, 19 Feb 2026 13:12:21 -0800 Subject: [PATCH 4/5] Updates blt submodule again --- src/cmake/blt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/cmake/blt b/src/cmake/blt index e524797758..d5cbb561be 160000 --- a/src/cmake/blt +++ b/src/cmake/blt @@ -1 +1 @@ -Subproject commit e524797758d43e9dc654cbc46f22550482c1d444 +Subproject commit d5cbb561bec6575c90e4a1db09ac2595606ba44e From 9c22bae3bdf0655f289cdcbd2218d0469a83a7dc Mon Sep 17 00:00:00 2001 From: Kenneth Weiss Date: Thu, 19 Feb 2026 15:15:31 -0800 Subject: [PATCH 5/5] Improve export/import logic for Axom's MPI package --- src/cmake/AxomConfig.cmake | 17 ++++++++++++++--- src/cmake/axom-config.cmake.in | 11 ++++++++++- 2 files changed, 24 insertions(+), 4 deletions(-) diff --git a/src/cmake/AxomConfig.cmake b/src/cmake/AxomConfig.cmake index 0c4849df24..88fc07adc3 100644 --- a/src/cmake/AxomConfig.cmake +++ b/src/cmake/AxomConfig.cmake @@ -28,11 +28,22 @@ if(AXOM_ENABLE_MPI AND ENABLE_FORTRAN) endif() endif() +# Allow user to selectively enable which languages have MPI targets +# based on enabled languages and whether they've supplied MPI__COMPILER if(AXOM_ENABLE_MPI) - set(AXOM_REQUIRED_MPI_COMPONENTS C CXX) - if(ENABLE_FORTRAN AND MPI_Fortran_COMPILER) - list(APPEND AXOM_REQUIRED_MPI_COMPONENTS Fortran) + set(_axom_required_mpi_components) + get_property(_axom_enabled_languages GLOBAL PROPERTY ENABLED_LANGUAGES) + + if("C" IN_LIST _axom_enabled_languages AND MPI_C_COMPILER) + list(APPEND _axom_required_mpi_components C) + endif() + if("CXX" IN_LIST _axom_enabled_languages AND MPI_CXX_COMPILER) + list(APPEND _axom_required_mpi_components CXX) + endif() + if("Fortran" IN_LIST _axom_enabled_languages AND MPI_Fortran_COMPILER) + list(APPEND _axom_required_mpi_components Fortran) endif() + set(AXOM_REQUIRED_MPI_COMPONENTS "${_axom_required_mpi_components}") endif() diff --git a/src/cmake/axom-config.cmake.in b/src/cmake/axom-config.cmake.in index 93240f2273..57b74200a6 100644 --- a/src/cmake/axom-config.cmake.in +++ b/src/cmake/axom-config.cmake.in @@ -157,7 +157,16 @@ if(NOT AXOM_FOUND) # Load mpi targets because we require the optional Conduit mpi targets if(AXOM_USE_MPI) - find_package(MPI REQUIRED COMPONENTS @AXOM_REQUIRED_MPI_COMPONENTS@) + set(_axom_required_mpi_components "@AXOM_REQUIRED_MPI_COMPONENTS@") + if(NOT CMAKE_Fortran_COMPILER_LOADED) + list(REMOVE_ITEM _axom_required_mpi_components Fortran) + endif() + + if(_axom_required_mpi_components) + find_package(MPI REQUIRED COMPONENTS ${_axom_required_mpi_components}) + else() + find_package(MPI REQUIRED) + endif() endif() find_dependency(Conduit REQUIRED