commit:     61ae68b49a1af31cd54436180e5116a2a5055e63
Author:     Bernd Waibel <waebbl-gentoo <AT> posteo <DOT> net>
AuthorDate: Fri Feb 12 22:43:30 2021 +0000
Commit:     Joonas Niilola <juippis <AT> gentoo <DOT> org>
CommitDate: Sun Mar  7 09:03:07 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=61ae68b4

media-gfx/openscad: adapt to work with lib3mf-2

Now uses cmake instead of qmake.

Package-Manager: Portage-3.0.14, Repoman-3.0.2
Signed-off-by: Bernd Waibel <waebbl-gentoo <AT> posteo.net>
Signed-off-by: Joonas Niilola <juippis <AT> gentoo.org>

 .../openscad-9999-0001-fix-to-find-lib3mf-2.patch  |  36 ++++++++
 ...2-Gentoo-specific-Disable-ccache-building.patch |  35 -------
 media-gfx/openscad/metadata.xml                    |  10 ++
 media-gfx/openscad/openscad-9999.ebuild            | 101 ++++++++++++++-------
 4 files changed, 113 insertions(+), 69 deletions(-)

diff --git 
a/media-gfx/openscad/files/openscad-9999-0001-fix-to-find-lib3mf-2.patch 
b/media-gfx/openscad/files/openscad-9999-0001-fix-to-find-lib3mf-2.patch
new file mode 100644
index 00000000000..0ca19d33646
--- /dev/null
+++ b/media-gfx/openscad/files/openscad-9999-0001-fix-to-find-lib3mf-2.patch
@@ -0,0 +1,36 @@
+From 15bf93ab04e6fd61507f138bcfc6f9c770d9479b Mon Sep 17 00:00:00 2001
+From: Bernd Waibel <[email protected]>
+Date: Thu, 11 Feb 2021 23:14:31 +0100
+Subject: [PATCH] fix to find lib3mf-2
+
+Lib3mf-2 uses lowercase name for it's pkg-config file.
+
+Signed-off-by: Bernd Waibel <[email protected]>
+---
+ cmake/Modules/FindLib3MF.cmake | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/cmake/Modules/FindLib3MF.cmake b/cmake/Modules/FindLib3MF.cmake
+index 7a1ee285..b062c09c 100644
+--- a/cmake/Modules/FindLib3MF.cmake
++++ b/cmake/Modules/FindLib3MF.cmake
+@@ -15,14 +15,14 @@ message(STATUS "Searching for lib3mf.")
+ # We still fall back to the rest of detection code here.
+ # Travis CI Ubuntu Trusty environment has some issue with pkg-config
+ # not finding the version.
+-pkg_check_modules(LIB3MF lib3MF)
++pkg_check_modules(LIB3MF lib3mf)
+ 
+ # default to uppercase for 1.0 library name
+ set(LIB3MF_LIB "3MF")
+ 
+ # some distribution packages are missing version information for 2.0
+ if (LIB3MF_VERSION STREQUAL "" AND LIB3MF_FOUND)
+-  if (EXISTS "/usr/include/lib3mf" AND EXISTS 
"/usr/include/lib3mf/lib3mf_implicit.hpp")
++  if (EXISTS "/usr/include/lib3mf" AND EXISTS 
"/usr/include/lib3mf/Bindings/Cpp/lib3mf_implicit.hpp")
+     set(LIB3MF_VERSION "2.0.0")
+   endif()
+ endif()
+-- 
+2.30.1
+

diff --git 
a/media-gfx/openscad/files/openscad-9999-0002-Gentoo-specific-Disable-ccache-building.patch
 
b/media-gfx/openscad/files/openscad-9999-0002-Gentoo-specific-Disable-ccache-building.patch
deleted file mode 100644
index ca21b9322e8..00000000000
--- 
a/media-gfx/openscad/files/openscad-9999-0002-Gentoo-specific-Disable-ccache-building.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-From 8d6fd9c0896e513eec2da3c97cfd33a5ec09c148 Mon Sep 17 00:00:00 2001
-From: Bernd Waibel <[email protected]>
-Date: Sun, 17 May 2020 21:38:45 +0200
-Subject: [PATCH] [Gentoo-specific] Disable ccache building
-
-On Gentoo we use a USE flag to determine whether to use
-ccache for building or not.
-
-Signed-off-by: Bernd Waibel <[email protected]>
----
- openscad.pro | 8 ++++----
- 1 file changed, 4 insertions(+), 4 deletions(-)
-
-diff --git a/openscad.pro b/openscad.pro
-index cc7f3569..8fbd3a5b 100755
---- a/openscad.pro
-+++ b/openscad.pro
-@@ -208,10 +208,10 @@ mdi {
-   DEFINES += ENABLE_MDI
- }
- 
--system("ccache -V >/dev/null 2>/dev/null") {
--  CONFIG += ccache
--  message("Using ccache")
--}
-+#system("ccache -V >/dev/null 2>/dev/null") {
-+#  CONFIG += ccache
-+#  message("Using ccache")
-+#}
- 
- include(common.pri)
- 
--- 
-2.26.2
-

diff --git a/media-gfx/openscad/metadata.xml b/media-gfx/openscad/metadata.xml
index 75aa20b67f1..3ccb815587c 100644
--- a/media-gfx/openscad/metadata.xml
+++ b/media-gfx/openscad/metadata.xml
@@ -24,6 +24,16 @@
        <flag name="ccache">
                Use <pkg>dev-util/ccache</pkg> to speed up rebuilds
        </flag>
+       <flag name="gamepad">
+               Add support for gamepads through <pkg>dev-qt/qtgamepad</pkg>
+       </flag>
+       <flag name="headless">
+               Build a binary without GUI
+       </flag>
+       <flag name="spacenav">
+               Add support for space navigator devices through
+               <pkg>dev-libs/libspnav</pkg>
+       </flag>
 </use>
 <upstream>
        <remote-id type="github">openscad/openscad</remote-id>

diff --git a/media-gfx/openscad/openscad-9999.ebuild 
b/media-gfx/openscad/openscad-9999.ebuild
index a718d9a9a8a..433200d96c2 100644
--- a/media-gfx/openscad/openscad-9999.ebuild
+++ b/media-gfx/openscad/openscad-9999.ebuild
@@ -1,49 +1,58 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2021 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
 EAPI=7
 
-inherit elisp-common git-r3 qmake-utils xdg
+inherit cmake elisp-common git-r3 xdg
 
 SITEFILE="50${PN}-gentoo.el"
 
 DESCRIPTION="The Programmers Solid 3D CAD Modeller"
 HOMEPAGE="https://www.openscad.org/";
+SRC_URI=""
 EGIT_REPO_URI="https://github.com/openscad/openscad.git";
 
-LICENSE="GPL-2"
+# Code is GPL-3+, MCAD library is LGPL-2.1
+LICENSE="GPL-3+ LGPL-2.1"
 SLOT="0"
 KEYWORDS=""
-IUSE="ccache emacs"
-RESTRICT="test"
+IUSE="cairo dbus emacs gamepad headless spacenav"
+RESTRICT="test" # 32 out 1300+ tests fail
+
+REQUIRED_USE="
+       headless? ( !dbus !gamepad !spacenav )
+"
 
 RDEPEND="
        dev-cpp/eigen:3
        dev-libs/boost:=
        dev-libs/double-conversion:=
        dev-libs/glib:2
-       dev-libs/gmp:0=
-       dev-libs/hidapi
-       dev-libs/libspnav
+       dev-libs/libxml2
        dev-libs/libzip:=
-       dev-libs/mpfr:0=
-       dev-qt/qtconcurrent:5
-       dev-qt/qtcore:5
-       dev-qt/qtdbus:5
-       dev-qt/qtgui:5[-gles2-only]
-       dev-qt/qtmultimedia:5
-       dev-qt/qtnetwork:5
-       dev-qt/qtopengl:5
-       dev-qt/qtwidgets:5
        media-gfx/opencsg
        media-libs/fontconfig
        media-libs/freetype
-       >=media-libs/glew-2.0.0:0=
+       media-libs/glew:0=
        media-libs/harfbuzz:=
        media-libs/lib3mf
        sci-mathematics/cgal:=
-       >=x11-libs/qscintilla-2.10.3:=
-       emacs? ( >=app-editors/emacs-23.1:* )
+       virtual/opengl
+       cairo? ( x11-libs/cairo )
+       emacs? ( app-editors/emacs:* )
+       !headless? (
+               dev-qt/qtconcurrent:5
+               dev-qt/qtcore:5
+               dev-qt/qtgui:5[-gles2-only]
+               dev-qt/qtmultimedia:5
+               dev-qt/qtnetwork:5
+               dev-qt/qtopengl:5
+               dev-qt/qtwidgets:5
+               x11-libs/qscintilla:=
+               dbus? ( dev-qt/qtdbus:5 )
+               gamepad? ( dev-qt/qtgamepad:5 )
+       )
+       spacenav? ( dev-libs/libspnav )
 "
 DEPEND="${RDEPEND}"
 BDEPEND="
@@ -52,27 +61,45 @@ BDEPEND="
        sys-devel/flex
        sys-devel/gettext
        virtual/pkgconfig
-       ccache? ( dev-util/ccache )
 "
 
-src_prepare() {
-       default
+DOCS=(
+       RELEASE_NOTES.md
+       doc/TODO.txt
+       doc/contributor_copyright.txt
+       doc/hacking.md
+       doc/testing.txt
+)
 
-       # fix path prefix
-       sed -i "s/\/usr\/local/\/usr/g" ${PN}.pro || die
-
-       # disable ccache
-       if ! use ccache; then
-               eapply 
"${FILESDIR}/${P}-0002-Gentoo-specific-Disable-ccache-building.patch"
+src_prepare() {
+       if has_version ">=media-libs/lib3mf-2"; then
+               eapply "${FILESDIR}/${P}-0001-fix-to-find-lib3mf-2.patch"
        fi
+       cmake_src_prepare
 }
 
 src_configure() {
-       eqmake5 "${PN}.pro"
+       local mycmakeargs=(
+               -DCLANG_TIDY=OFF
+               -DENABLE_CAIRO=$(usex cairo)
+               -DENABLE_SPNAV=$(usex spacenav)
+               -DENABLE_TESTS=OFF
+               -DHEADLESS=$(usex headless)
+               -DUSE_CCACHE=OFF
+       )
+
+       if use !headless; then
+               mycmakeargs+=(
+                       -DENABLE_GAMEPAD=$(usex gamepad)
+                       -DENABLE_QTDBUS=$(usex dbus)
+               )
+       fi
+
+       cmake_src_configure
 }
 
 src_compile() {
-       default
+       cmake_src_compile
 
        if use emacs ; then
                elisp-compile contrib/*.el
@@ -80,24 +107,30 @@ src_compile() {
 }
 
 src_install() {
-       emake install INSTALL_ROOT="${D}"
+       DOCS+=( doc/*.pdf )
+       cmake_src_install
+
+       mv -i "${ED}"/usr/share/openscad/locale "${ED}"/usr/share || die 
"failed to move locales"
+       ln -sf ../locale "${ED}"/usr/share/openscad/locale || die
+
+       rm -r "${ED}"/usr/share/openscad/libraries/MCAD/.{git,gitignore} || die
 
        if use emacs; then
                elisp-site-file-install "${FILESDIR}/${SITEFILE}"
                elisp-install ${PN} contrib/*.el contrib/*.elc
        fi
-
-       einstalldocs
 }
 
 pkg_postinst() {
        use emacs && elisp-site-regen
        xdg_desktop_database_update
+       xdg_icon_cache_update
        xdg_mimeinfo_database_update
 }
 
 pkg_postrm() {
        use emacs && elisp-site-regen
        xdg_desktop_database_update
+       xdg_icon_cache_update
        xdg_mimeinfo_database_update
 }

Reply via email to