diff options
Diffstat (limited to 'vcpkg/ports/openmesh')
| -rw-r--r-- | vcpkg/ports/openmesh/fix-library-install-path.patch | 89 | ||||
| -rw-r--r-- | vcpkg/ports/openmesh/fix-pkgconfig.patch | 22 | ||||
| -rw-r--r-- | vcpkg/ports/openmesh/portfile.cmake | 47 | ||||
| -rw-r--r-- | vcpkg/ports/openmesh/restore-c++11-compatibility.patch | 25 | ||||
| -rw-r--r-- | vcpkg/ports/openmesh/vcpkg.json | 17 |
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 + } + ] +} |