aboutsummaryrefslogtreecommitdiff
path: root/vcpkg/ports/openmesh
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/openmesh
move to own git serverHEADmaster
Diffstat (limited to 'vcpkg/ports/openmesh')
-rw-r--r--vcpkg/ports/openmesh/fix-library-install-path.patch89
-rw-r--r--vcpkg/ports/openmesh/fix-pkgconfig.patch22
-rw-r--r--vcpkg/ports/openmesh/portfile.cmake47
-rw-r--r--vcpkg/ports/openmesh/restore-c++11-compatibility.patch25
-rw-r--r--vcpkg/ports/openmesh/vcpkg.json17
5 files changed, 200 insertions, 0 deletions
diff --git a/vcpkg/ports/openmesh/fix-library-install-path.patch b/vcpkg/ports/openmesh/fix-library-install-path.patch
new file mode 100644
index 0000000..77430ea
--- /dev/null
+++ b/vcpkg/ports/openmesh/fix-library-install-path.patch
@@ -0,0 +1,89 @@
+diff --git a/cmake-library/VCI/VCICommon.cmake b/cmake-library/VCI/VCICommon.cmake
+index 7a5269c..e3f87ff 100644
+--- a/cmake-library/VCI/VCICommon.cmake
++++ b/cmake-library/VCI/VCICommon.cmake
+@@ -242,7 +242,8 @@
+ set (_and_static 0)
+ endif ()
+
+- add_library (${_target} ${_type} ${ARGN} )
++ set(_and_static 0)
++ add_library (${_target} ${ARGN} )
+
+ # set common target properties defined in common.cmake
+ vci_set_target_props (${_target})
+index 7a5269c..e3f87ff 100644
+--- a/src/OpenMesh/Core/CMakeLists.txt
++++ b/src/OpenMesh/Core/CMakeLists.txt
+@@ -156,9 +156,9 @@
+ $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/../..>
+ $<INSTALL_INTERFACE:include>)
+
+- target_include_directories(OpenMeshCoreStatic PUBLIC
+- $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/../..>
+- $<INSTALL_INTERFACE:include>)
++ #target_include_directories(OpenMeshCoreStatic PUBLIC
++ # $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/../..>
++ # $<INSTALL_INTERFACE:include>)
+
+ set_target_properties (OpenMeshCore PROPERTIES VERSION ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}
+ SOVERSION ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR} )
+@@ -180,7 +180,7 @@ endif()
+
+ # if we build debug and release in the same dir, we want to install both!
+ if ( ${CMAKE_PROJECT_NAME} MATCHES "OpenMesh")
+- if ( WIN32 )
++ if ( 0 )
+ FILE(GLOB files_install_libs "${CMAKE_BINARY_DIR}/Build/lib/*.lib" )
+ FILE(GLOB files_install_dlls "${CMAKE_BINARY_DIR}/Build/*.dll" )
+ INSTALL(FILES ${files_install_libs} DESTINATION lib )
+@@ -240,7 +240,8 @@ target_include_directories(OpenMeshCore PUBLIC
+ endif ()
+
+ install(TARGETS OpenMeshCore EXPORT OpenMeshConfig
+- ARCHIVE DESTINATION ${VCI_PROJECT_LIBDIR}
+- LIBRARY DESTINATION ${VCI_PROJECT_LIBDIR}
+- RUNTIME DESTINATION ${VCI_PROJECT_BINDIR})
++ ARCHIVE DESTINATION lib
++ LIBRARY DESTINATION lib
++ RUNTIME DESTINATION bin)
++ target_compile_features(OpenMeshCore PUBLIC cxx_std_11)
+
+diff --git a/src/OpenMesh/Tools/CMakeLists.txt b/src/OpenMesh/Tools/CMakeLists.txt
+index 0170e2b..e40dfa1 100644
+--- a/src/OpenMesh/Tools/CMakeLists.txt
++++ b/src/OpenMesh/Tools/CMakeLists.txt
+@@ -122,9 +122,9 @@
+ $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/../..>
+ $<INSTALL_INTERFACE:include>)
+
+- target_include_directories(OpenMeshToolsStatic PUBLIC
+- $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/../..>
+- $<INSTALL_INTERFACE:include>)
++ #target_include_directories(OpenMeshToolsStatic PUBLIC
++ # $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/../..>
++ # $<INSTALL_INTERFACE:include>)
+
+ set_target_properties (OpenMeshTools PROPERTIES VERSION ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}
+ SOVERSION ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR} )
+@@ -132,7 +132,7 @@
+
+ target_link_libraries (OpenMeshTools OpenMeshCore)
+
+-IF( NOT WIN32 )
++IF( 0 )
+ target_link_libraries (OpenMeshToolsStatic OpenMeshCoreStatic)
+ ENDIF(NOT WIN32)
+
+@@ -126,7 +126,8 @@ target_include_directories(OpenMeshTools PUBLIC
+ endif ()
+
+ install(TARGETS OpenMeshTools EXPORT OpenMeshConfig
+- ARCHIVE DESTINATION ${VCI_PROJECT_LIBDIR}
+- LIBRARY DESTINATION ${VCI_PROJECT_LIBDIR}
+- RUNTIME DESTINATION ${VCI_PROJECT_BINDIR})
++ ARCHIVE DESTINATION lib
++ LIBRARY DESTINATION lib
++ RUNTIME DESTINATION bin
++)
+
diff --git a/vcpkg/ports/openmesh/fix-pkgconfig.patch b/vcpkg/ports/openmesh/fix-pkgconfig.patch
new file mode 100644
index 0000000..e2b4748
--- /dev/null
+++ b/vcpkg/ports/openmesh/fix-pkgconfig.patch
@@ -0,0 +1,22 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 7a5269c..e3f87ff 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -188,12 +188,15 @@
+
+ # Generate openmesh.pc file
+
++if("${CMAKE_BUILD_TYPE}" STREQUAL "Debug")
++ set(_debug_postfix "${CMAKE_DEBUG_POSTFIX}")
++endif()
+ set(DEST_DIR "${CMAKE_INSTALL_PREFIX}")
+-set(PRIVATE_LIBS "-lOpenMeshCore -lOpenMeshTools")
++set(PRIVATE_LIBS "-lOpenMeshCore${_debug_postfix} -lOpenMeshTools${_debug_postfix}")
+
+ configure_file("openmesh.pc.in" "${CMAKE_CURRENT_BINARY_DIR}/openmesh.pc" @ONLY)
+
+-install(FILES ${CMAKE_CURRENT_BINARY_DIR}/openmesh.pc DESTINATION libdata/pkgconfig)
++install(FILES ${CMAKE_CURRENT_BINARY_DIR}/openmesh.pc DESTINATION lib/pkgconfig)
+
+ # generate target file
+
diff --git a/vcpkg/ports/openmesh/portfile.cmake b/vcpkg/ports/openmesh/portfile.cmake
new file mode 100644
index 0000000..d5fca6a
--- /dev/null
+++ b/vcpkg/ports/openmesh/portfile.cmake
@@ -0,0 +1,47 @@
+# Note: upstream GitLab instance at https://graphics.rwth-aachen.de:9000 often goes down
+vcpkg_download_distfile(ARCHIVE
+ URLS "https://www.openmesh.org/media/Releases/${VERSION}/OpenMesh-${VERSION}.0.tar.gz"
+ FILENAME "OpenMesh-${VERSION}.tar.gz"
+ SHA512 b895e5eaabdf5d3671625df5314e1f95921ac672e9d9d945a5cf0973e20b4e395aac6517d86269a2e8c103f32bc9c8c2ecf57d811a260bbc69f592043e1307ba
+)
+
+vcpkg_extract_source_archive(
+ SOURCE_PATH
+ ARCHIVE "${ARCHIVE}"
+ PATCHES
+ fix-library-install-path.patch
+ fix-pkgconfig.patch
+
+ # This patch is a combination of these two:
+ # https://gitlab.vci.rwth-aachen.de:9000/OpenMesh/OpenMesh/-/commit/1d4a866282ace376c8e3ba05c21ce3bcc6643040
+ # https://gitlab.vci.rwth-aachen.de:9000/OpenMesh/OpenMesh/-/commit/a7f30b6f70447932444f5b518840ca26e9461fa9
+ restore-c++11-compatibility.patch
+)
+
+if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic")
+ set(OPENMESH_BUILD_SHARED ON)
+else()
+ set(OPENMESH_BUILD_SHARED OFF)
+endif()
+
+vcpkg_cmake_configure(
+ SOURCE_PATH "${SOURCE_PATH}"
+ OPTIONS
+ -DBUILD_APPS=OFF
+ -DVCI_COMMON_DO_NOT_COPY_POST_BUILD=ON
+ -DVCI_NO_LIBRARY_INSTALL=ON
+ -DOPENMESH_BUILD_SHARED=${OPENMESH_BUILD_SHARED}
+ MAYBE_UNUSED_VARIABLES
+ OPENMESH_BUILD_SHARED
+ # [TODO]: add apps as feature, requires qt5 and freeglut
+)
+
+vcpkg_cmake_install()
+vcpkg_copy_pdbs()
+vcpkg_cmake_config_fixup(PACKAGE_NAME OpenMesh CONFIG_PATH "share/OpenMesh/cmake")
+vcpkg_fixup_pkgconfig()
+
+file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include")
+file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/include/OpenMesh/Tools/VDPM/xpm")
+
+vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE")
diff --git a/vcpkg/ports/openmesh/restore-c++11-compatibility.patch b/vcpkg/ports/openmesh/restore-c++11-compatibility.patch
new file mode 100644
index 0000000..1122642
--- /dev/null
+++ b/vcpkg/ports/openmesh/restore-c++11-compatibility.patch
@@ -0,0 +1,25 @@
+From 1d4a866282ace376c8e3ba05c21ce3bcc6643040 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Jan=20M=C3=B6bius?= <moebius@cs.rwth-aachen.de>
+Date: Tue, 9 Jan 2024 12:59:45 +0100
+Subject: [PATCH] Small patch to keep backward compatibility with c++11
+
+---
+ src/OpenMesh/Core/Utils/Property.hh | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/OpenMesh/Core/Utils/Property.hh b/src/OpenMesh/Core/Utils/Property.hh
+index 485d3072..6ba66584 100644
+--- a/src/OpenMesh/Core/Utils/Property.hh
++++ b/src/OpenMesh/Core/Utils/Property.hh
+@@ -250,7 +250,7 @@ public: // inherited from BaseProperty
+ virtual void reserve(size_t _n) override { data_.reserve(_n); }
+ virtual void resize(size_t _n) override { data_.resize(_n); }
+ virtual void clear() override { data_.clear(); vector_type().swap(data_); }
+- virtual void push_back() override { data_.emplace_back(); }
++ virtual void push_back() override { data_.push_back(bool()); }
+ virtual void swap(size_t _i0, size_t _i1) override
+ { bool t(data_[_i0]); data_[_i0]=data_[_i1]; data_[_i1]=t; }
+ virtual void copy(size_t _i0, size_t _i1) override
+--
+GitLab
+
diff --git a/vcpkg/ports/openmesh/vcpkg.json b/vcpkg/ports/openmesh/vcpkg.json
new file mode 100644
index 0000000..72e55ce
--- /dev/null
+++ b/vcpkg/ports/openmesh/vcpkg.json
@@ -0,0 +1,17 @@
+{
+ "name": "openmesh",
+ "version": "10.0",
+ "description": "A generic and efficient polygon mesh data structure",
+ "homepage": "https://www.graphics.rwth-aachen.de/media/openmesh_static/Daily-Builds/Doc/index.html",
+ "license": "BSD-3-Clause",
+ "dependencies": [
+ {
+ "name": "vcpkg-cmake",
+ "host": true
+ },
+ {
+ "name": "vcpkg-cmake-config",
+ "host": true
+ }
+ ]
+}