summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBernd Waibel <waebbl-gentoo@posteo.net>2021-02-12 23:43:30 +0100
committerJoonas Niilola <juippis@gentoo.org>2021-03-07 11:03:07 +0200
commit61ae68b49a1af31cd54436180e5116a2a5055e63 (patch)
tree9b080dc0d03df21e1a37e957d7815fb1ea5e49c0
parentmedia-gfx/openscad: restrict dependency (diff)
downloadgentoo-61ae68b49a1af31cd54436180e5116a2a5055e63.tar.gz
gentoo-61ae68b49a1af31cd54436180e5116a2a5055e63.tar.bz2
gentoo-61ae68b49a1af31cd54436180e5116a2a5055e63.zip
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@posteo.net> Signed-off-by: Joonas Niilola <juippis@gentoo.org>
-rw-r--r--media-gfx/openscad/files/openscad-9999-0001-fix-to-find-lib3mf-2.patch36
-rw-r--r--media-gfx/openscad/files/openscad-9999-0002-Gentoo-specific-Disable-ccache-building.patch35
-rw-r--r--media-gfx/openscad/metadata.xml10
-rw-r--r--media-gfx/openscad/openscad-9999.ebuild101
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 000000000000..0ca19d33646b
--- /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 <waebbl-gentoo@posteo.net>
+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 <waebbl-gentoo@posteo.net>
+---
+ 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 ca21b9322e8e..000000000000
--- 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 <waebbl@gmail.com>
-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 <waebbl@gmail.com>
----
- 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 75aa20b67f16..3ccb815587c6 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 a718d9a9a8ac..433200d96c25 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
}