* [gentoo-commits] repo/gentoo:master commit in: media-gfx/openmesh/, media-gfx/openmesh/files/
@ 2025-04-02 15:49 Andreas Sturmlechner
0 siblings, 0 replies; only message in thread
From: Andreas Sturmlechner @ 2025-04-02 15:49 UTC (permalink / raw
To: gentoo-commits
commit: ae72a44e4e5059a32d2fda2c19a1a6d40a2b204c
Author: Nicolas PARLANT <nicolas.parlant <AT> parhuet <DOT> fr>
AuthorDate: Mon Mar 24 14:37:27 2025 +0000
Commit: Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
CommitDate: Wed Apr 2 15:48:59 2025 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=ae72a44e
media-gfx/openmesh: add 11.0.0, qt6
update HOMEPAGE / SRC_URI (redirect)
iuse :
qt6 -> gui
add doc
deps :
* media-libs/freeglut -> media-libs/libglvnd
* test : add dev-cpp/eigen
* doc, add :
app-text/doxygen[dot]
dev-texlive/texlive-latex
dev-texlive/texlive-latexextra (for xcolor.sty)
dev-texlive/texlive-latexrecommended (for newunicodechar.sty)
static-libs : set shared-libs only with a patch because previous sed-op
is no longer sufficient.
Closes: https://bugs.gentoo.org/836649
Signed-off-by: Nicolas PARLANT <nicolas.parlant <AT> parhuet.fr>
Closes: https://github.com/gentoo/gentoo/pull/41285
Signed-off-by: Andreas Sturmlechner <asturm <AT> gentoo.org>
media-gfx/openmesh/Manifest | 1 +
.../files/openmesh-11.0.0-gtest_detection.patch | 27 ++++++
.../files/openmesh-11.0.0-pkgconfig_instdir.patch | 14 +++
.../files/openmesh-11.0.0-rm_static_libs.patch | 55 +++++++++++
.../files/openmesh-11.0.0-tests_conditionnal.patch | 27 ++++++
.../files/openmesh-11.0.0-unused_flags.patch | 34 +++++++
media-gfx/openmesh/openmesh-11.0.0.ebuild | 104 +++++++++++++++++++++
7 files changed, 262 insertions(+)
diff --git a/media-gfx/openmesh/Manifest b/media-gfx/openmesh/Manifest
index 99209b22a795..15c120515247 100644
--- a/media-gfx/openmesh/Manifest
+++ b/media-gfx/openmesh/Manifest
@@ -1 +1,2 @@
+DIST OpenMesh-11.0.0.tar.bz2 5867933 BLAKE2B 5f4eb34365cfeedab8e5de818db955ed1a5ab42d2289e9ab686efda0f3057462848bdee0b53af0f81ddc6ea388ef64eecde923f468beb2078a77f2dff5c04753 SHA512 4667ef9ae935403455a57277bd81dd61eb967f81dcbcc8ce5a84d537d60db37b0155dc7c118b14f90e142e44b0a453fd98984de17e20fae62c86be2ddc6e9a69
DIST OpenMesh-7.1.tar.bz2 22855582 BLAKE2B 778b3a40c2e476cdb2f50b5b4a90f8b6ae7852f166087426ff1db25c829cb4172cd7ed14db1a22229f7b4447e7ebeb0d6116647d929b7dab43d565192a8ac48e SHA512 bca0f937e08fe512efb436f5b96b83a1ff7945640e18fb1bb083956f04609560e29b1c1f7e058840791df77df6859fdd20ff6f49d80b908e8c1c5542b8615e6d
diff --git a/media-gfx/openmesh/files/openmesh-11.0.0-gtest_detection.patch b/media-gfx/openmesh/files/openmesh-11.0.0-gtest_detection.patch
new file mode 100644
index 000000000000..6bb0e76a5e46
--- /dev/null
+++ b/media-gfx/openmesh/files/openmesh-11.0.0-gtest_detection.patch
@@ -0,0 +1,27 @@
+use find_package for GTest
+diff --git a/src/Unittests/CMakeLists.txt b/src/Unittests/CMakeLists.txt
+index 0d7fb92..73127db 100644
+--- a/src/Unittests/CMakeLists.txt
++++ b/src/Unittests/CMakeLists.txt
+@@ -73,20 +73,9 @@ if (NOT DEFINED OPENMESH_BUILD_UNIT_TESTS)
+ endif()
+
+ if (OPENMESH_BUILD_UNIT_TESTS)
+- # Fetch Gtest from github
+- include(FetchContent)
+- FetchContent_Declare(
+- googletest
+- GIT_REPOSITORY https://github.com/google/googletest.git
+- GIT_TAG f8d7d77c06936315286eb55f8de22cd23c188571 # v1.14.0
+- #FIND_PACKAGE_ARGS NAMES GTest
+- )
+- # For Windows: Prevent overriding the parent project's compiler/linker settings
+- set(gtest_force_shared_crt ON CACHE BOOL "" FORCE)
+- FetchContent_MakeAvailable(googletest)
+-
+ enable_testing()
+
++ find_package(GTest CONFIG)
+ find_package(Eigen3)
+
+ # Set correct include paths so that the compiler can find the headers
diff --git a/media-gfx/openmesh/files/openmesh-11.0.0-pkgconfig_instdir.patch b/media-gfx/openmesh/files/openmesh-11.0.0-pkgconfig_instdir.patch
new file mode 100644
index 000000000000..05656b4bda25
--- /dev/null
+++ b/media-gfx/openmesh/files/openmesh-11.0.0-pkgconfig_instdir.patch
@@ -0,0 +1,14 @@
+use commondir (share) for pkgconfig installation
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 3aa8122..6d1bf51 100755
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -193,7 +196,7 @@ set(PRIVATE_LIBS "-lOpenMeshCore -lOpenMeshTools")
+
+ 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 share/pkgconfig)
+
+ # generate target file
+
diff --git a/media-gfx/openmesh/files/openmesh-11.0.0-rm_static_libs.patch b/media-gfx/openmesh/files/openmesh-11.0.0-rm_static_libs.patch
new file mode 100644
index 000000000000..06fb0b4b0015
--- /dev/null
+++ b/media-gfx/openmesh/files/openmesh-11.0.0-rm_static_libs.patch
@@ -0,0 +1,55 @@
+Set shared-libs only
+diff --git a/src/OpenMesh/Core/CMakeLists.txt b/src/OpenMesh/Core/CMakeLists.txt
+index 48f5547..b6e4fd6 100644
+--- a/src/OpenMesh/Core/CMakeLists.txt
++++ b/src/OpenMesh/Core/CMakeLists.txt
+@@ -151,16 +151,12 @@ if (WIN32)
+
+
+ else ()
+- vci_add_library (OpenMeshCore SHAREDANDSTATIC ${sources} ${headers})
++ vci_add_library (OpenMeshCore SHARED ${sources} ${headers})
+
+ target_include_directories(OpenMeshCore 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} )
+ endif ()
+diff --git a/src/OpenMesh/Tools/CMakeLists.txt b/src/OpenMesh/Tools/CMakeLists.txt
+index 08baecb..1b24daa 100644
+--- a/src/OpenMesh/Tools/CMakeLists.txt
++++ b/src/OpenMesh/Tools/CMakeLists.txt
+@@ -116,26 +116,18 @@ if (WIN32)
+ $<INSTALL_INTERFACE:include>)
+
+ else ()
+- vci_add_library (OpenMeshTools SHAREDANDSTATIC ${sources} ${headers})
++ vci_add_library (OpenMeshTools SHARED ${sources} ${headers})
+
+ target_include_directories(OpenMeshTools 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} )
+ endif ()
+
+ target_link_libraries (OpenMeshTools OpenMeshCore)
+
+-IF( NOT WIN32 )
+- target_link_libraries (OpenMeshToolsStatic OpenMeshCoreStatic)
+-ENDIF(NOT WIN32)
+-
+ if ( (${CMAKE_PROJECT_NAME} MATCHES "OpenMesh") AND BUILD_APPS )
+
+ if ( WIN32 )
diff --git a/media-gfx/openmesh/files/openmesh-11.0.0-tests_conditionnal.patch b/media-gfx/openmesh/files/openmesh-11.0.0-tests_conditionnal.patch
new file mode 100644
index 000000000000..545cfc763a01
--- /dev/null
+++ b/media-gfx/openmesh/files/openmesh-11.0.0-tests_conditionnal.patch
@@ -0,0 +1,27 @@
+make tests conditional
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 3aa8122..6d1bf51 100755
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -5,8 +5,9 @@ cmake_minimum_required(VERSION 3.10.0 FATAL_ERROR)
+ #set( CMAKE_CXX_STANDARD_REQUIRED TRUE )
+ #set( CMAKE_CXX_STANDARD 11 )
+
+-enable_testing()
+-
++if(OPENMESH_BUILD_UNIT_TESTS)
++ enable_testing()
++endif()
+
+ project (OpenMesh
+ VERSION 11.0.0
+@@ -118,7 +119,9 @@ endif()
+
+ # Do not build unit tests when build as external library
+ if(${CMAKE_PROJECT_NAME} MATCHES "OpenMesh")
++ if(OPENMESH_BUILD_UNIT_TESTS)
+ add_subdirectory (src/Unittests)
++ endif()
+ else()
+ # If built as a dependent project simulate effects of
+ # successful finder run:
diff --git a/media-gfx/openmesh/files/openmesh-11.0.0-unused_flags.patch b/media-gfx/openmesh/files/openmesh-11.0.0-unused_flags.patch
new file mode 100644
index 000000000000..77bf6956c504
--- /dev/null
+++ b/media-gfx/openmesh/files/openmesh-11.0.0-unused_flags.patch
@@ -0,0 +1,34 @@
+prevent configure from failing as variables called are unset and needless here
+diff --git a/cmake-library/VCI/VCICompiler.cmake b/cmake-library/VCI/VCICompiler.cmake
+index eca35d8..983099a 100755
+--- a/cmake-library/VCI/VCICompiler.cmake
++++ b/cmake-library/VCI/VCICompiler.cmake
+@@ -172,14 +172,6 @@ if (UNIX)
+ set( CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} ${flag} ")
+ endif()
+ endforeach()
+-
+- # Add the release with debug info flags
+- foreach( flag ${ADDITIONAL_CXX_FLAGS} ${ADDITIONAL_CXX_RELWITHDEBINFO_FLAGS} )
+- list (FIND ${CMAKE_CXX_FLAGS_RELWITHDEBINFO} ${flag} _index)
+- if (${_index} EQUAL -1)
+- set( CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} ${flag} ")
+- endif()
+- endforeach()
+ ENDIF()
+
+
+@@ -200,13 +192,5 @@ if (UNIX)
+ endif()
+ endforeach()
+
+- # Add the release with debug info flags
+- foreach( flag ${ADDITIONAL_C_FLAGS} ${ADDITIONAL_C_RELWITHDEBINFO_FLAGS} )
+- list (FIND ${CMAKE_C_FLAGS_RELWITHDEBINFO} ${flag} _index)
+- if (${_index} EQUAL -1)
+- set( CMAKE_C_FLAGS_RELWITHDEBINFO "${CMAKE_C_FLAGS_RELWITHDEBINFO} ${flag} ")
+- endif()
+- endforeach()
+-
+ endif()
+ endif ()
diff --git a/media-gfx/openmesh/openmesh-11.0.0.ebuild b/media-gfx/openmesh/openmesh-11.0.0.ebuild
new file mode 100644
index 000000000000..3e8b6c656d0a
--- /dev/null
+++ b/media-gfx/openmesh/openmesh-11.0.0.ebuild
@@ -0,0 +1,104 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit cmake
+
+MY_PN="OpenMesh"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="Generic data structure to represent and manipulate polygonal meshes"
+HOMEPAGE="https://www.graphics.rwth-aachen.de/software/openmesh/"
+SRC_URI="https://www.graphics.rwth-aachen.de/media/openmesh_static/Releases/$(ver_cut 1-2)/${MY_P}.tar.bz2"
+S="${WORKDIR}/${MY_P}"
+
+LICENSE="BSD"
+SLOT="4"
+KEYWORDS="~amd64 ~x86"
+IUSE="doc gui test"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ gui? (
+ dev-qt/qtbase:6[gui,opengl,widgets]
+ media-libs/libglvnd
+ )
+"
+DEPEND="${RDEPEND}"
+# texlive-latexextra for xcolor.sty
+# texlive-latexrecommended for newunicodechar.sty
+BDEPEND="
+ doc? (
+ app-text/doxygen[dot]
+ dev-texlive/texlive-latex
+ dev-texlive/texlive-latexextra
+ dev-texlive/texlive-latexrecommended
+ )
+ test? (
+ dev-cpp/eigen:3
+ dev-cpp/gtest
+ )
+"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-11.0.0-gtest_detection.patch
+ "${FILESDIR}"/${PN}-11.0.0-pkgconfig_instdir.patch
+ "${FILESDIR}"/${PN}-11.0.0-rm_static_libs.patch
+ "${FILESDIR}"/${PN}-11.0.0-tests_conditionnal.patch
+ "${FILESDIR}"/${PN}-11.0.0-unused_flags.patch
+)
+
+src_prepare() {
+ if use doc; then
+ doxygen -u Doc/doxy.config.in 2>/dev/null || die
+ fi
+
+ cmake_src_prepare
+}
+
+src_configure() {
+ local mycmakeargs=(
+ -DCMAKE_SKIP_RPATH=ON
+ # Enable tools by default
+ -DBUILD_APPS=ON
+ -DCMAKE_DISABLE_FIND_PACKAGE_Qt6=$(usex !gui)
+ -DOPENMESH_BUILD_UNIT_TESTS=$(usex test)
+ -DOPENMESH_DOCS=$(usex doc)
+ -DQT_VERSION=6
+ )
+
+ cmake_src_configure
+}
+
+src_compile() {
+ cmake_src_compile
+
+ if use doc; then
+ cmake_build doc
+ # remove doxygen working files
+ find "${BUILD_DIR}"/Build/share/OpenMesh/Doc/html/ \( \
+ -iname '*.map' -o \
+ -iname '*.md5' -o \
+ -iname '*.repository' \
+ \) -delete || die
+ fi
+}
+
+src_test() {
+ cp "${BUILD_DIR}"/src/Unittests/CTestTestfile.cmake "${BUILD_DIR}"/CTestTestfile.cmake || die
+ local -x LD_LIBRARY_PATH="${BUILD_DIR}/Build/$(get_libdir)"
+ # parallel tests cause failures to each other
+ cmake_src_test -j1
+}
+
+src_install() {
+ use doc && local HTML_DOCS=( "${BUILD_DIR}"/Build/share/OpenMesh/Doc/html/. )
+
+ cmake_src_install
+
+ # we don't want to install the unittests binaries
+ if use test; then
+ rm "${ED}"/usr/bin/unittests{,_customvec,_doublevec} || die
+ fi
+}
^ permalink raw reply related [flat|nested] only message in thread
only message in thread, other threads:[~2025-04-02 15:49 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-04-02 15:49 [gentoo-commits] repo/gentoo:master commit in: media-gfx/openmesh/, media-gfx/openmesh/files/ Andreas Sturmlechner
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox