commit:     d63003e9ac333d54b8cb4b80d0550e2de0016468
Author:     Bernd Waibel <waebbl <AT> gmail <DOT> com>
AuthorDate: Fri May 24 07:04:08 2019 +0000
Commit:     Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
CommitDate: Sat Apr 11 14:17:26 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=d63003e9

media-libs/lib3mf: new package

Thanks to Scott Alfter who initially wrote the ebuild.

Reported-by: Scott Alfter <scott <AT> alfter.us>
Closes: https://bugs.gentoo.org/686476
Package-Manager: Portage-2.3.96-r1, Repoman-2.3.22
Signed-off-by: Bernd Waibel <waebbl <AT> gmail.com>
Closes: https://github.com/gentoo/gentoo/pull/15269
Closes: https://github.com/gentoo/gentoo/pull/12097
Signed-off-by: Andreas Sturmlechner <asturm <AT> gentoo.org>

 media-libs/lib3mf/Manifest                         |  1 +
 ...ntoo-specific-avoid-pre-stripping-library.patch | 27 ++++++++++
 ...-1.8.1-0002-Add-library-link-dependencies.patch | 59 ++++++++++++++++++++++
 ....8.1-0003-Change-installation-include-dir.patch | 44 ++++++++++++++++
 ...4-Gentoo-specific-Remove-gtest-source-dir.patch | 35 +++++++++++++
 media-libs/lib3mf/lib3mf-1.8.1.ebuild              | 48 ++++++++++++++++++
 media-libs/lib3mf/metadata.xml                     | 21 ++++++++
 7 files changed, 235 insertions(+)

diff --git a/media-libs/lib3mf/Manifest b/media-libs/lib3mf/Manifest
new file mode 100644
index 00000000000..8e5f81cdf62
--- /dev/null
+++ b/media-libs/lib3mf/Manifest
@@ -0,0 +1 @@
+DIST lib3mf-1.8.1.tar.gz 8415939 BLAKE2B 
45652aab8c84eb5d500455db211eb911c6e74decf4fbbb652976847e1b3ea16db9c626bd37cd9669aefc8dea29c424e6518e0517e8f96fa6282771e34f840290
 SHA512 
f7fd75bcb6472de1595a018e5add516d0d78ab0aee92462b686b77f8d2bef05270e7b737cb7e1d31fc5850815056e753874c2f9ec456a455e8461c4010fe914a

diff --git 
a/media-libs/lib3mf/files/lib3mf-1.8.1-0001-Gentoo-specific-avoid-pre-stripping-library.patch
 
b/media-libs/lib3mf/files/lib3mf-1.8.1-0001-Gentoo-specific-avoid-pre-stripping-library.patch
new file mode 100644
index 00000000000..c695283cffb
--- /dev/null
+++ 
b/media-libs/lib3mf/files/lib3mf-1.8.1-0001-Gentoo-specific-avoid-pre-stripping-library.patch
@@ -0,0 +1,27 @@
+From d97ad4604af7998541567ec486f90dd528e839b1 Mon Sep 17 00:00:00 2001
+From: Bernd Waibel <wae...@gmail.com>
+Date: Wed, 8 Apr 2020 19:09:42 +0200
+Subject: [PATCH 1/4] [Gentoo-specific] avoid pre-stripping library
+
+Signed-off-by: Bernd Waibel <wae...@gmail.com>
+---
+ CMakeLists.txt | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 5453440..c867224 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -104,7 +104,8 @@ if (UNIX OR MINGW)
+       # Uncomment the following to but the version info into the .so-file.
+       SET_TARGET_PROPERTIES(${PROJECT_NAME}_s PROPERTIES VERSION 
"${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH}")
+       SET_TARGET_PROPERTIES(${PROJECT_NAME}_s PROPERTIES SOVERSION 
"${PROJECT_VERSION_MAJOR}")
+-      if (NOT APPLE)
++      # avoid pre-stripping on Gentoo, this is done by emerge
++      if (NOT APPLE OR (UNIX AND NOT CMAKE_BUILD_TYPE MATCHES "Gentoo"))
+               SET_TARGET_PROPERTIES(${PROJECT_NAME}_s PROPERTIES LINK_FLAGS 
-s)
+       endif()
+       if (NOT WIN32)
+-- 
+2.26.0
+

diff --git 
a/media-libs/lib3mf/files/lib3mf-1.8.1-0002-Add-library-link-dependencies.patch 
b/media-libs/lib3mf/files/lib3mf-1.8.1-0002-Add-library-link-dependencies.patch
new file mode 100644
index 00000000000..de5331ae66e
--- /dev/null
+++ 
b/media-libs/lib3mf/files/lib3mf-1.8.1-0002-Add-library-link-dependencies.patch
@@ -0,0 +1,59 @@
+From 976f14e1ac26389dbfc04bcffd9f4e7e21197001 Mon Sep 17 00:00:00 2001
+From: Bernd Waibel <wae...@gmail.com>
+Date: Wed, 8 Apr 2020 20:05:16 +0200
+Subject: [PATCH] Add library link dependencies
+
+If USE_INCLUDED_LIBZIP and/or USE_INCLUDED_ZLIB are not set
+add them to target_link_libaries command.
+
+Signed-off-by: Bernd Waibel <wae...@gmail.com>
+---
+ CMakeLists.txt               | 10 +++++++++-
+ UnitTests/CPP/CMakeLists.txt | 10 +++++++++-
+ 2 files changed, 18 insertions(+), 2 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index c867224..df87806 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -130,7 +130,15 @@ add_library(${PROJECT_NAME} SHARED ${SRCS_MAIN_PLATFORM}
+ )
+ set(STARTUPPROJECT ${PROJECT_NAME})
+ SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES PREFIX "" IMPORT_PREFIX "")
+-target_link_libraries(${PROJECT_NAME} ${PROJECT_NAME}_s)
++if(USE_INCLUDED_LIBZIP AND USE_INCLUDED_ZLIB)
++      target_link_libraries(${PROJECT_NAME} ${PROJECT_NAME}_s)
++elseif(USE_INCLUDED_LIBZIP AND NOT USE_INCLUDED_ZLIB)
++      target_link_libraries(${PROJECT_NAME} ${PROJECT_NAME}_s z)
++elseif(USE_INCLUDED_ZLIB AND NOT USE_INCLUDED_LIBZIP)
++      target_link_libraries(${PROJECT_NAME} ${PROJECT_NAME}_s zip)
++else()
++      target_link_libraries(${PROJECT_NAME} ${PROJECT_NAME}_s zip z)
++endif()
+ if (UNIX OR MINGW)
+       # Uncomment the following to but the version info into the .so-file.
+       SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES VERSION 
"${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH}.${BUILD_NUMBER}")
+diff --git a/UnitTests/CPP/CMakeLists.txt b/UnitTests/CPP/CMakeLists.txt
+index 2fdf85d..24d32bf 100644
+--- a/UnitTests/CPP/CMakeLists.txt
++++ b/UnitTests/CPP/CMakeLists.txt
+@@ -22,7 +22,15 @@ if (WIN32)
+ endif()
+ 
+ target_include_directories(${TESTNAME} PRIVATE 
${CMAKE_CURRENT_SOURCE_DIR}/Include ${gtest_SOURCE_DIR}/include)
+-target_link_libraries(${TESTNAME} ${PROJECT_NAME}_s gtest gtest_main)
++if(USE_INCLUDED_LIBZIP AND USE_INCLUDED_ZLIB)
++      target_link_libraries(${TESTNAME} ${PROJECT_NAME}_s gtest gtest_main)
++elseif(USE_INCLUDED_LIBZIP AND NOT USE_INCLUDED_ZLIB)
++      target_link_libraries(${TESTNAME} ${PROJECT_NAME}_s gtest gtest_main z)
++elseif(USE_INCLUDED_ZLIB AND NOT USE_INCLUDED_LIBZIP)
++      target_link_libraries(${TESTNAME} ${PROJECT_NAME}_s gtest gtest_main 
zip)
++else()
++      target_link_libraries(${TESTNAME} ${PROJECT_NAME}_s gtest gtest_main 
zip z)
++endif()
+ add_dependencies(${TESTNAME} ${PROJECT_NAME}_s)
+ set_target_properties(${TESTNAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY 
"${CMAKE_CURRENT_BINARY_DIR}/")
+ 
+-- 
+2.26.0
+

diff --git 
a/media-libs/lib3mf/files/lib3mf-1.8.1-0003-Change-installation-include-dir.patch
 
b/media-libs/lib3mf/files/lib3mf-1.8.1-0003-Change-installation-include-dir.patch
new file mode 100644
index 00000000000..3d79c0d4a4f
--- /dev/null
+++ 
b/media-libs/lib3mf/files/lib3mf-1.8.1-0003-Change-installation-include-dir.patch
@@ -0,0 +1,44 @@
+From f61a4c09977097b0d456ce9e480c2630b90cdc30 Mon Sep 17 00:00:00 2001
+From: Bernd Waibel <wae...@gmail.com>
+Date: Wed, 8 Apr 2020 19:16:07 +0200
+Subject: [PATCH 3/4] Change installation include dir to a more specific one.
+
+Signed-off-by: Bernd Waibel <wae...@gmail.com>
+---
+ CMakeLists.txt | 6 +++---
+ lib3MF.pc.in   | 2 +-
+ 2 files changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index df87806..3101c65 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -148,9 +148,9 @@ install(TARGETS ${PROJECT_NAME}
+       ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}"
+       LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}"
+       RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}")
+-install(DIRECTORY Include/Model DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}")
+-install(DIRECTORY Include/Common DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}")
+-install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/Include/ DESTINATION 
"${CMAKE_INSTALL_INCLUDEDIR}")
++install(DIRECTORY Include/Model DESTINATION 
"${CMAKE_INSTALL_INCLUDEDIR}/lib3mf")
++install(DIRECTORY Include/Common DESTINATION 
"${CMAKE_INSTALL_INCLUDEDIR}/lib3mf")
++install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/Include/ DESTINATION 
"${CMAKE_INSTALL_INCLUDEDIR}/lib3mf")
+ 
+ #########################################################
+ configure_file(lib3MF.pc.in lib3MF.pc @ONLY)
+diff --git a/lib3MF.pc.in b/lib3MF.pc.in
+index 9afb6ee..cf8cafb 100644
+--- a/lib3MF.pc.in
++++ b/lib3MF.pc.in
+@@ -1,7 +1,7 @@
+ prefix=@CMAKE_INSTALL_PREFIX@
+ exec_prefix=@CMAKE_INSTALL_PREFIX@
+ libdir=${exec_prefix}/@CMAKE_INSTALL_LIBDIR@
+-includedir=${prefix}/@CMAKE_INSTALL_INCLUDEDIR@
++includedir=${prefix}/@CMAKE_INSTALL_INCLUDEDIR@/lib3mf
+ 
+ Name: @PROJECT_NAME@
+ Description: @PROJECT_DESCRIPTION@
+-- 
+2.26.0
+

diff --git 
a/media-libs/lib3mf/files/lib3mf-1.8.1-0004-Gentoo-specific-Remove-gtest-source-dir.patch
 
b/media-libs/lib3mf/files/lib3mf-1.8.1-0004-Gentoo-specific-Remove-gtest-source-dir.patch
new file mode 100644
index 00000000000..edc202e8303
--- /dev/null
+++ 
b/media-libs/lib3mf/files/lib3mf-1.8.1-0004-Gentoo-specific-Remove-gtest-source-dir.patch
@@ -0,0 +1,35 @@
+From f392342f819b59449228100b7de8c14eda3cc391 Mon Sep 17 00:00:00 2001
+From: Bernd Waibel <wae...@gmail.com>
+Date: Wed, 8 Apr 2020 19:55:40 +0200
+Subject: [PATCH] [Gentoo-specific] Remove gtest source dir
+
+We use system gtest on Gentoo
+
+Signed-off-by: Bernd Waibel <wae...@gmail.com>
+---
+ UnitTests/CMakeLists.txt | 6 ++----
+ 1 file changed, 2 insertions(+), 4 deletions(-)
+
+diff --git a/UnitTests/CMakeLists.txt b/UnitTests/CMakeLists.txt
+index 59ae773..1212228 100644
+--- a/UnitTests/CMakeLists.txt
++++ b/UnitTests/CMakeLists.txt
+@@ -1,7 +1,5 @@
+-ADD_SUBDIRECTORY (googletest EXCLUDE_FROM_ALL)
+ enable_testing()
+-      
+-SET(gtest_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/googletest/googletest")
++
+ add_definitions( -DTESTFILESPATH="${CMAKE_CURRENT_SOURCE_DIR}/../TestFiles")
+ add_definitions( -DLTESTFILESPATH=L"${CMAKE_CURRENT_SOURCE_DIR}/../TestFiles")
+ add_definitions( -DLOUTFILESPATH=L"${CMAKE_BINARY_DIR}/")
+@@ -12,4 +10,4 @@ add_subdirectory(C_Interface)
+ # Tests on internal classes of the library
+ add_subdirectory(CPP)
+ 
+-set(STARTUPPROJECT ${STARTUPPROJECT} PARENT_SCOPE)
+\ No newline at end of file
++set(STARTUPPROJECT ${STARTUPPROJECT} PARENT_SCOPE)
+-- 
+2.26.0
+

diff --git a/media-libs/lib3mf/lib3mf-1.8.1.ebuild 
b/media-libs/lib3mf/lib3mf-1.8.1.ebuild
new file mode 100644
index 00000000000..a53ea513ef4
--- /dev/null
+++ b/media-libs/lib3mf/lib3mf-1.8.1.ebuild
@@ -0,0 +1,48 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit cmake
+
+DESCRIPTION="Implementation of the 3D Manufacturing Format file standard"
+HOMEPAGE="https://3mf.io/";
+SRC_URI="https://github.com/3MFConsortium/$PN/archive/v$PV.tar.gz -> $P.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="doc test"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+       dev-libs/libzip:=
+       sys-apps/util-linux
+       sys-libs/zlib
+"
+DEPEND="
+       ${RDEPEND}
+       test? ( >=dev-cpp/gtest-1.8.0 )
+"
+
+PATCHES=(
+       
"${FILESDIR}/${P}-0001-Gentoo-specific-avoid-pre-stripping-library.patch"
+       "${FILESDIR}/${P}-0002-Add-library-link-dependencies.patch"
+       "${FILESDIR}/${P}-0003-Change-installation-include-dir.patch"
+       "${FILESDIR}/${P}-0004-Gentoo-specific-Remove-gtest-source-dir.patch"
+)
+
+src_configure() {
+       local mycmakeargs=(
+               -DLIB3MF_TESTS=$(usex test)
+               -DUSE_INCLUDED_LIBZIP=OFF
+               -DUSE_INCLUDED_ZLIB=OFF
+       )
+       cmake_src_configure
+}
+
+src_install() {
+       local DOCS=( CONTRIBUTING.md README.md )
+       use doc && DOCS+=( Lib3MF-1.pdf )
+       cmake_src_install
+}

diff --git a/media-libs/lib3mf/metadata.xml b/media-libs/lib3mf/metadata.xml
new file mode 100644
index 00000000000..ca7507f06ed
--- /dev/null
+++ b/media-libs/lib3mf/metadata.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd";>
+<pkgmetadata>
+<maintainer type="person">
+       <email>wae...@gmail.com</email>
+       <name>Bernd Waibel</name>
+</maintainer>
+<maintainer type="project">
+       <email>proxy-ma...@gentoo.org</email>
+       <description>Gentoo Proxy Maintainer Team</description>
+</maintainer>
+<longdescription>
+       Implementation of the 3MF manufacturing file standard from the 3MF
+       consortium.
+       It provides reading and writing capabilities for 3MF files, as well
+       as conversion and validation tools for input and output data.
+</longdescription>
+<upstream>
+       <remote-id type="github">3MFConsortium/lib3mf</remote-id>
+</upstream>
+</pkgmetadata>

Reply via email to