aboutsummaryrefslogtreecommitdiff
path: root/vcpkg/ports/openmpi
diff options
context:
space:
mode:
authorEthan Morgan <ethan@gweithio.com>2026-02-14 16:44:06 +0000
committerEthan Morgan <ethan@gweithio.com>2026-02-14 16:44:06 +0000
commit54409423f767d8b1cf30cb7d0efca6b4ca138823 (patch)
treed915ac7828703ce4b963efdd9728a1777ba18c1e /vcpkg/ports/openmpi
move to own git serverHEADmaster
Diffstat (limited to 'vcpkg/ports/openmpi')
-rw-r--r--vcpkg/ports/openmpi/keep_isystem.patch283
-rw-r--r--vcpkg/ports/openmpi/mpi-wrapper.cmake13
-rw-r--r--vcpkg/ports/openmpi/portfile.cmake51
-rw-r--r--vcpkg/ports/openmpi/vcpkg.json8
4 files changed, 355 insertions, 0 deletions
diff --git a/vcpkg/ports/openmpi/keep_isystem.patch b/vcpkg/ports/openmpi/keep_isystem.patch
new file mode 100644
index 0000000..9352e4a
--- /dev/null
+++ b/vcpkg/ports/openmpi/keep_isystem.patch
@@ -0,0 +1,283 @@
+diff --git a/configure b/configure
+index b2451c4..a7fb4da 100755
+--- a/configure
++++ b/configure
+@@ -19562,6 +19562,10 @@ $as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;}
+ opal_found=0
+ opal_i=`expr $opal_count + 1`
+ ;;
++ -isystem)
++ opal_found=0
++ opal_i=`expr $opal_count + 1`
++ ;;
+ --param)
+ opal_found=0
+ opal_i=`expr $opal_count + 1`
+@@ -19653,6 +19657,10 @@ $as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;}
+ opal_found=0
+ opal_i=`expr $opal_count + 1`
+ ;;
++ -isystem)
++ opal_found=0
++ opal_i=`expr $opal_count + 1`
++ ;;
+ --param)
+ opal_found=0
+ opal_i=`expr $opal_count + 1`
+@@ -19759,6 +19767,10 @@ $as_echo "$as_me: WARNING: Code coverage functionality is currently available on
+ opal_found=0
+ opal_i=`expr $opal_count + 1`
+ ;;
++ -isystem)
++ opal_found=0
++ opal_i=`expr $opal_count + 1`
++ ;;
+ --param)
+ opal_found=0
+ opal_i=`expr $opal_count + 1`
+@@ -19946,6 +19958,10 @@ $as_echo "$opal_cv_cc_wno_long_double" >&6; }
+ opal_found=0
+ opal_i=`expr $opal_count + 1`
+ ;;
++ -isystem)
++ opal_found=0
++ opal_i=`expr $opal_count + 1`
++ ;;
+ --param)
+ opal_found=0
+ opal_i=`expr $opal_count + 1`
+@@ -20127,6 +20143,10 @@ $as_echo "$opal_cv_cc_fno_strict_aliasing" >&6; }
+ opal_found=0
+ opal_i=`expr $opal_count + 1`
+ ;;
++ -isystem)
++ opal_found=0
++ opal_i=`expr $opal_count + 1`
++ ;;
+ --param)
+ opal_found=0
+ opal_i=`expr $opal_count + 1`
+@@ -20267,6 +20287,10 @@ $as_echo "$opal_cv_cc_restrict_cflags" >&6; }
+ opal_found=0
+ opal_i=`expr $opal_count + 1`
+ ;;
++ -isystem)
++ opal_found=0
++ opal_i=`expr $opal_count + 1`
++ ;;
+ --param)
+ opal_found=0
+ opal_i=`expr $opal_count + 1`
+@@ -26120,6 +26144,10 @@ $as_echo "$as_me: WARNING: Code coverage functionality is currently available on
+ opal_found=0
+ opal_i=`expr $opal_count + 1`
+ ;;
++ -isystem)
++ opal_found=0
++ opal_i=`expr $opal_count + 1`
++ ;;
+ --param)
+ opal_found=0
+ opal_i=`expr $opal_count + 1`
+@@ -26297,6 +26325,10 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
+ opal_found=0
+ opal_i=`expr $opal_count + 1`
+ ;;
++ -isystem)
++ opal_found=0
++ opal_i=`expr $opal_count + 1`
++ ;;
+ --param)
+ opal_found=0
+ opal_i=`expr $opal_count + 1`
+@@ -26441,6 +26473,10 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
+ opal_found=0
+ opal_i=`expr $opal_count + 1`
+ ;;
++ -isystem)
++ opal_found=0
++ opal_i=`expr $opal_count + 1`
++ ;;
+ --param)
+ opal_found=0
+ opal_i=`expr $opal_count + 1`
+@@ -27799,6 +27835,10 @@ $as_echo "$as_me: WARNING: Code coverage functionality is currently available on
+ opal_found=0
+ opal_i=`expr $opal_count + 1`
+ ;;
++ -isystem)
++ opal_found=0
++ opal_i=`expr $opal_count + 1`
++ ;;
+ --param)
+ opal_found=0
+ opal_i=`expr $opal_count + 1`
+@@ -27973,6 +28013,10 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
+ opal_found=0
+ opal_i=`expr $opal_count + 1`
+ ;;
++ -isystem)
++ opal_found=0
++ opal_i=`expr $opal_count + 1`
++ ;;
+ --param)
+ opal_found=0
+ opal_i=`expr $opal_count + 1`
+@@ -28117,6 +28161,10 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
+ opal_found=0
+ opal_i=`expr $opal_count + 1`
+ ;;
++ -isystem)
++ opal_found=0
++ opal_i=`expr $opal_count + 1`
++ ;;
+ --param)
+ opal_found=0
+ opal_i=`expr $opal_count + 1`
+@@ -44127,6 +44175,10 @@ fi
+ opal_found=0
+ opal_i=`expr $opal_count + 1`
+ ;;
++ -isystem)
++ opal_found=0
++ opal_i=`expr $opal_count + 1`
++ ;;
+ --param)
+ opal_found=0
+ opal_i=`expr $opal_count + 1`
+@@ -60612,6 +60664,10 @@ $as_echo_n "checking if intel compiler _Quad == REAL*16... " >&6; }
+ opal_found=0
+ opal_i=`expr $opal_count + 1`
+ ;;
++ -isystem)
++ opal_found=0
++ opal_i=`expr $opal_count + 1`
++ ;;
+ --param)
+ opal_found=0
+ opal_i=`expr $opal_count + 1`
+@@ -60842,6 +60898,10 @@ $as_echo_n "checking if gnu compiler __float128 == REAL*16... " >&6; }
+ opal_found=0
+ opal_i=`expr $opal_count + 1`
+ ;;
++ -isystem)
++ opal_found=0
++ opal_i=`expr $opal_count + 1`
++ ;;
+ --param)
+ opal_found=0
+ opal_i=`expr $opal_count + 1`
+diff --git a/opal/mca/pmix/pmix3x/pmix/configure b/opal/mca/pmix/pmix3x/pmix/configure
+index 0326a68..07df146 100755
+--- a/opal/mca/pmix/pmix3x/pmix/configure
++++ b/opal/mca/pmix/pmix3x/pmix/configure
+@@ -19386,6 +19386,10 @@ $as_echo "$pmix_cv_cc_coverage" >&6; }
+ pmix_found=0
+ pmix_i=`expr $pmix_count + 1`
+ ;;
++ -isystem)
++ pmix_found=0
++ pmix_i=`expr $pmix_count + 1`
++ ;;
+ --param)
+ pmix_found=0
+ pmix_i=`expr $pmix_count + 1`
+@@ -19477,6 +19481,10 @@ $as_echo "$pmix_cv_cc_coverage" >&6; }
+ pmix_found=0
+ pmix_i=`expr $pmix_count + 1`
+ ;;
++ -isystem)
++ pmix_found=0
++ pmix_i=`expr $pmix_count + 1`
++ ;;
+ --param)
+ pmix_found=0
+ pmix_i=`expr $pmix_count + 1`
+@@ -19583,6 +19591,10 @@ $as_echo "$as_me: WARNING: Code coverage functionality is currently available on
+ pmix_found=0
+ pmix_i=`expr $pmix_count + 1`
+ ;;
++ -isystem)
++ pmix_found=0
++ pmix_i=`expr $pmix_count + 1`
++ ;;
+ --param)
+ pmix_found=0
+ pmix_i=`expr $pmix_count + 1`
+@@ -19770,6 +19782,10 @@ $as_echo "$pmix_cv_cc_wno_long_double" >&6; }
+ pmix_found=0
+ pmix_i=`expr $pmix_count + 1`
+ ;;
++ -isystem)
++ pmix_found=0
++ pmix_i=`expr $pmix_count + 1`
++ ;;
+ --param)
+ pmix_found=0
+ pmix_i=`expr $pmix_count + 1`
+@@ -19951,6 +19967,10 @@ $as_echo "$pmix_cv_cc_fno_strict_aliasing" >&6; }
+ pmix_found=0
+ pmix_i=`expr $pmix_count + 1`
+ ;;
++ -isystem)
++ pmix_found=0
++ pmix_i=`expr $pmix_count + 1`
++ ;;
+ --param)
+ pmix_found=0
+ pmix_i=`expr $pmix_count + 1`
+@@ -20091,6 +20111,10 @@ $as_echo "$pmix_cv_cc_restrict_cflags" >&6; }
+ pmix_found=0
+ pmix_i=`expr $pmix_count + 1`
+ ;;
++ -isystem)
++ pmix_found=0
++ pmix_i=`expr $pmix_count + 1`
++ ;;
+ --param)
+ pmix_found=0
+ pmix_i=`expr $pmix_count + 1`
+@@ -53914,6 +53938,10 @@ fi
+ pmix_found=0
+ pmix_i=`expr $pmix_count + 1`
+ ;;
++ -isystem)
++ pmix_found=0
++ pmix_i=`expr $pmix_count + 1`
++ ;;
+ --param)
+ pmix_found=0
+ pmix_i=`expr $pmix_count + 1`
+@@ -54005,6 +54033,10 @@ fi
+ pmix_found=0
+ pmix_i=`expr $pmix_count + 1`
+ ;;
++ -isystem)
++ pmix_found=0
++ pmix_i=`expr $pmix_count + 1`
++ ;;
+ --param)
+ pmix_found=0
+ pmix_i=`expr $pmix_count + 1`
+@@ -54096,6 +54128,10 @@ fi
+ pmix_found=0
+ pmix_i=`expr $pmix_count + 1`
+ ;;
++ -isystem)
++ pmix_found=0
++ pmix_i=`expr $pmix_count + 1`
++ ;;
+ --param)
+ pmix_found=0
+ pmix_i=`expr $pmix_count + 1`
+@@ -54187,6 +54223,10 @@ fi
+ pmix_found=0
+ pmix_i=`expr $pmix_count + 1`
+ ;;
++ -isystem)
++ pmix_found=0
++ pmix_i=`expr $pmix_count + 1`
++ ;;
+ --param)
+ pmix_found=0
+ pmix_i=`expr $pmix_count + 1`
diff --git a/vcpkg/ports/openmpi/mpi-wrapper.cmake b/vcpkg/ports/openmpi/mpi-wrapper.cmake
new file mode 100644
index 0000000..e4327ce
--- /dev/null
+++ b/vcpkg/ports/openmpi/mpi-wrapper.cmake
@@ -0,0 +1,13 @@
+if(NOT DEFINED MPI_HOME)
+ set(MPI_HOME "${VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}" CACHE INTERNAL "vcpkg")
+ set(z_vcpkg_mpiexec_directories
+ "${MPI_HOME}/tools/openmpi/bin"
+ "${MPI_HOME}/tools/openmpi/debug/bin"
+ )
+ if(NOT DEFINED CMAKE_BUILD_TYPE OR CMAKE_BUILD_TYPE MATCHES "^[Dd][Ee][Bb][Uu][Gg]$")
+ list(REVERSE z_vcpkg_mpiexec_directories)
+ endif()
+ find_program(MPIEXEC_EXECUTABLE NAMES mpiexec PATHS ${z_vcpkg_mpiexec_directories} NO_DEFAULT_PATH)
+ unset(z_vcpkg_mpiexec_directories)
+endif()
+_find_package(${ARGS})
diff --git a/vcpkg/ports/openmpi/portfile.cmake b/vcpkg/ports/openmpi/portfile.cmake
new file mode 100644
index 0000000..53fbee1
--- /dev/null
+++ b/vcpkg/ports/openmpi/portfile.cmake
@@ -0,0 +1,51 @@
+vcpkg_check_linkage(ONLY_DYNAMIC_LIBRARY)
+
+string(REGEX REPLACE [[^([0-9]+[.][0-9]+).*$]] [[\1]] OpenMPI_SHORT_VERSION "${VERSION}")
+
+vcpkg_download_distfile(ARCHIVE
+ URLS "https://download.open-mpi.org/release/open-mpi/v${OpenMPI_SHORT_VERSION}/openmpi-${VERSION}.tar.gz"
+ FILENAME "openmpi-${VERSION}.tar.gz"
+ SHA512 34d8db42b93d79f178fea043ff8b5565e646b4935be6fa57fff6674030e901b4c84012c800304a6ce639738beb04191fe78a9372eae626dd4a2f8c0839711e46
+)
+
+vcpkg_extract_source_archive(
+ SOURCE_PATH
+ ARCHIVE ${ARCHIVE}
+ PATCHES
+ keep_isystem.patch
+)
+
+vcpkg_find_acquire_program(PERL)
+get_filename_component(PERL_PATH ${PERL} DIRECTORY)
+vcpkg_add_to_path(${PERL_PATH})
+
+# Put wrapper data dir side-by-side to wrapper executables dir instead of loosing debug data.
+# VCPKG_CONFIGURE_MAKE_OPTIONS overwrites vcpkg_configure_make overwrites OPTIONS.
+vcpkg_list(PREPEND VCPKG_CONFIGURE_MAKE_OPTIONS_DEBUG [[--datadir=\${prefix}/../tools/openmpi/debug/share]])
+vcpkg_list(PREPEND VCPKG_CONFIGURE_MAKE_OPTIONS_RELEASE [[--datadir=\${prefix}/tools/openmpi/share]])
+if(VCPKG_TARGET_IS_OSX)
+ # This ensures that vcpkg-fixup-macho-rpath succeeds
+ string(APPEND VCPKG_LINKER_FLAGS " -headerpad_max_install_names")
+endif()
+
+vcpkg_configure_make(
+ COPY_SOURCE
+ SOURCE_PATH ${SOURCE_PATH}
+ OPTIONS
+ --with-hwloc=internal
+ --with-libevent=internal
+ --with-pmix=internal
+ --disable-mpi-fortran
+ OPTIONS_DEBUG
+ --enable-debug
+)
+
+vcpkg_install_make()
+vcpkg_fixup_pkgconfig()
+
+file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include")
+file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share")
+
+file(INSTALL "${CURRENT_PORT_DIR}/mpi-wrapper.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}")
+
+vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE")
diff --git a/vcpkg/ports/openmpi/vcpkg.json b/vcpkg/ports/openmpi/vcpkg.json
new file mode 100644
index 0000000..7399e8b
--- /dev/null
+++ b/vcpkg/ports/openmpi/vcpkg.json
@@ -0,0 +1,8 @@
+{
+ "name": "openmpi",
+ "version": "4.1.7",
+ "port-version": 1,
+ "description": "The Open MPI Project is an open source Message Passing Interface implementation that is developed and maintained by a consortium of academic, research, and industry partners. Open MPI is therefore able to combine the expertise, technologies, and resources from all across the High Performance Computing community in order to build the best MPI library available. Open MPI offers advantages for system and software vendors, application developers and computer science researchers.",
+ "homepage": "https://www.open-mpi.org/",
+ "supports": "!windows"
+}