diff options
| author | Ethan Morgan <ethan@gweithio.com> | 2026-02-14 16:44:06 +0000 |
|---|---|---|
| committer | Ethan Morgan <ethan@gweithio.com> | 2026-02-14 16:44:06 +0000 |
| commit | 54409423f767d8b1cf30cb7d0efca6b4ca138823 (patch) | |
| tree | d915ac7828703ce4b963efdd9728a1777ba18c1e /vcpkg/ports/salome-medcoupling/portfile.cmake | |
Diffstat (limited to 'vcpkg/ports/salome-medcoupling/portfile.cmake')
| -rw-r--r-- | vcpkg/ports/salome-medcoupling/portfile.cmake | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/vcpkg/ports/salome-medcoupling/portfile.cmake b/vcpkg/ports/salome-medcoupling/portfile.cmake new file mode 100644 index 0000000..2e031f1 --- /dev/null +++ b/vcpkg/ports/salome-medcoupling/portfile.cmake @@ -0,0 +1,75 @@ +if(VCPKG_TARGET_IS_WINDOWS)
+ vcpkg_check_linkage(ONLY_DYNAMIC_LIBRARY)
+ # Fixing static builds requires fixing/removing _declspec(dllexport|dllimport)
+ # in the EXPORTS macros.
+endif()
+
+string(REPLACE "." "_" UNDERSCORE_VERSION "${VERSION}")
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO SalomePlatform/medcoupling
+ REF "V${UNDERSCORE_VERSION}"
+ SHA512 576b10daf58830e934a3f9d06abc63a22be76b995b2c2f2d1ab0bf16a76f3ba90f583eab06be2d665874cb433f8c990b7a7fd6724f69a5a3f9a5c20c775407cd
+ HEAD_REF master
+ PATCHES
+ win.patch
+ fix-missing-symbols.patch
+)
+
+string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" MEDCOUPLING_BUILD_STATIC)
+
+vcpkg_cmake_configure(
+ SOURCE_PATH "${SOURCE_PATH}"
+ OPTIONS
+ "-DCONFIGURATION_ROOT_DIR=${SALOME_CONFIGURATION_ROOT_DIR}"
+ -DMEDCOUPLING_BUILD_TESTS=OFF
+ -DMEDCOUPLING_BUILD_PY_TESTS=OFF
+ -DMEDCOUPLING_BUILD_DOC=OFF
+ -DMEDCOUPLING_BUILD_STATIC=${MEDCOUPLING_BUILD_STATIC}
+ -DMEDCOUPLING_ENABLE_PYTHON=OFF
+ -DMEDCOUPLING_ENABLE_RENUMBER=OFF
+ -DMEDCOUPLING_METIS_V5=ON
+ -DMETIS_LIBRARIES=metis # this is a target
+ -DSCOTCH_LIBRARIES=SCOTCH::scotch
+)
+
+vcpkg_cmake_install()
+
+file(GLOB dll_files "${CURRENT_PACKAGES_DIR}/lib/*.dll")
+file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/bin")
+foreach(dll_file IN LISTS dll_files)
+ string(REPLACE "/lib/" "/bin/" new_loc "${dll_file}")
+ file(RENAME "${dll_file}" "${new_loc}")
+endforeach()
+
+if(NOT VCPKG_BUILD_TYPE)
+ file(GLOB dll_files "${CURRENT_PACKAGES_DIR}/debug/lib/*.dll")
+ file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/debug/bin")
+ foreach(dll_file IN LISTS dll_files)
+ string(REPLACE "/lib/" "/bin/" new_loc "${dll_file}")
+ file(RENAME "${dll_file}" "${new_loc}")
+ endforeach()
+endif()
+
+vcpkg_cmake_config_fixup(PACKAGE_NAME MEDCoupling CONFIG_PATH "cmake_files")
+if(VCPKG_TARGET_IS_WINDOWS)
+ set(file "${CURRENT_PACKAGES_DIR}/share/MEDCoupling/MEDCouplingTargets-release.cmake")
+ file(READ "${file}" contents)
+ string(REGEX REPLACE "/lib/([^.]+)\\.dll" "/bin/\\1.dll" contents "${contents}")
+ file(WRITE "${file}" "${contents}")
+
+ if(NOT VCPKG_BUILD_TYPE)
+ set(file "${CURRENT_PACKAGES_DIR}/share/MEDCoupling/MEDCouplingTargets-debug.cmake")
+ file(READ "${file}" contents)
+ string(REGEX REPLACE "/lib/([^.]+)\\.dll" "/bin/\\1.dll" contents "${contents}")
+ file(WRITE "${file}" "${contents}")
+ endif()
+endif()
+
+vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/share/MEDCoupling/MEDCouplingConfig.cmake" "/cmake_files" "/share/MEDCoupling")
+vcpkg_copy_tools(TOOL_NAMES medpartitioner AUTO_CLEAN)
+vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING")
+
+file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include"
+ "${CURRENT_PACKAGES_DIR}/debug/share")
|