aboutsummaryrefslogtreecommitdiff
path: root/vcpkg/ports/openmpi/portfile.cmake
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/portfile.cmake
move to own git serverHEADmaster
Diffstat (limited to 'vcpkg/ports/openmpi/portfile.cmake')
-rw-r--r--vcpkg/ports/openmpi/portfile.cmake51
1 files changed, 51 insertions, 0 deletions
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")