diff options
author | Paul Zander <negril.nx+gentoo@gmail.com> | 2024-11-16 02:52:12 +0100 |
---|---|---|
committer | Sam James <sam@gentoo.org> | 2024-11-16 21:39:07 +0000 |
commit | b809ad20e706bf9af8c0a918f3b47701efc4e9e4 (patch) | |
tree | cb8f1164adf8991ee0114d2def76852f07126d57 /media-gfx/openscad | |
parent | sci-mathematics/manifold: bump to 3.0.0_pre20241115 (diff) | |
download | gentoo-b809ad20e706bf9af8c0a918f3b47701efc4e9e4.tar.gz gentoo-b809ad20e706bf9af8c0a918f3b47701efc4e9e4.tar.bz2 gentoo-b809ad20e706bf9af8c0a918f3b47701efc4e9e4.zip |
media-gfx/openscad: add 20241114
Drop RESTRICT=mirror.
Document manifold USE-flag.
Drop qt5 support.
Bundle sanitizers-cmake as there is and likely never will be another consumer.
Force CONFIG mode for FindBoost.
Eigen3 is a header-only library and we do not have public headers, so it's
DEPEND only.
Add egl and glx USE-flags.
Adjust ebuild style to fit the rest my ebuilds.
Signed-off-by: Paul Zander <negril.nx+gentoo@gmail.com>
Signed-off-by: Sam James <sam@gentoo.org>
Diffstat (limited to 'media-gfx/openscad')
-rw-r--r-- | media-gfx/openscad/Manifest | 3 | ||||
-rw-r--r-- | media-gfx/openscad/metadata.xml | 6 | ||||
-rw-r--r-- | media-gfx/openscad/openscad-20241114.ebuild (renamed from media-gfx/openscad/openscad-20241111.ebuild) | 134 |
3 files changed, 79 insertions, 64 deletions
diff --git a/media-gfx/openscad/Manifest b/media-gfx/openscad/Manifest index eb98c72aacdb..c20624a8c4dc 100644 --- a/media-gfx/openscad/Manifest +++ b/media-gfx/openscad/Manifest @@ -1,3 +1,4 @@ DIST openscad-2021.01.tar.gz 15817555 BLAKE2B 417857d704fa3c14312641ebda983eb85a1e3bc0d517a235fa3bd2523fce6f93c1ea526c330179bc35f03e6c73d3cd7c4c57cd71480088c21bfc99bb020ab7cd SHA512 8deaa26bf4c295c12da38f323d2b2e6f827851337f5bc1cc9c79afc083c9f913c19a263086e6e853bf2c8434c1ccc705ea22ddb02dc99d39bb1e5e03fc58d128 -DIST openscad-20241111.tar.gz 25288494 BLAKE2B d414e2c2bf13a436ee78d02cc4888d2c4c69e237d1b7deef808b56a6b0e1b16dd39acf939befa009da97653b3363886068e8316e7c861b384e6c9e32ad97cf62 SHA512 b42ba68842a279a48063690ad730a71e25b5a49c89551eecfe3671e3c217f493968292805831eec3efc8cbb7421d30bcdd216e4205c1b1de8989ab94a31531ae +DIST openscad-20241114.tar.gz 25288312 BLAKE2B 0c1a9b4b15c12f4b3b600e81cdb5eeddb34887c83e2ae67735d7221b6660730dc5e7f97f80b84d187772adfa20d15e20f0cded1b4937e26305434847bbf2af27 SHA512 6c66c09e4b72ec5ef200d077b58fcb7a5a9acd359551a5daebdc3e24cb2cb7ed7d607b04e5563ea6f14d9d929310c3a9194ac889f2530c2c933235271040981a DIST openscad-MCAD-bd0a7ba3f042bfbced5ca1894b236cea08904e26.tar.gz 58895 BLAKE2B e154a38e1c36873a34f7c80b8fa484e4bbcb1b0c217e15b977e6cedc9a83fd2e1518791f9a58a4f0e893c2a55947d7eaddb660d8b725eca048c30f0ea41cf14a SHA512 c6208a90f6a58ebdc0477d3e1b6be2f52e4ce976ac619a87818437cb9696b7e83285564fde757d32efaf50033d5217b55f67b6ce342250de838dd09fef334f36 +DIST sanitizers-cmake-3f0542e4e034aab417c51b2b22c94f83355dee15.tar.gz 7451 BLAKE2B 2ca72e3ecda02d4f0eed05be0954af02706425e94626d5a4b9d897968e35c341413171e2388ece7e83dad9eb7b5e2c2f73811ea8db8fa33b0bce6d5dd53550b7 SHA512 10cd4eeb3bbb7bf5c6f5cf8b5bc6a531b1ec8bdc147583d8de028a3e4b8b9d0e258aad81f02135267ce8f7d87b30999dedd25b44c0754b5c31e00d8481cd412f diff --git a/media-gfx/openscad/metadata.xml b/media-gfx/openscad/metadata.xml index 654ea84529a5..ac47d0a9f5d3 100644 --- a/media-gfx/openscad/metadata.xml +++ b/media-gfx/openscad/metadata.xml @@ -30,12 +30,18 @@ <flag name="gamepad"> Add support for gamepads through <pkg>dev-qt/qtgamepad</pkg> </flag> + <flag name="glx"> + Enable GLX to interface OpenGL and X11 + </flag> <flag name="gui"> Enable or disable building of the GUI </flag> <flag name="hidapi"> Build in support for HID-Class devices using <pkg>dev-libs/hidapi</pkg> </flag> + <flag name="manifold"> + Enable Manifold render backend via <pkg>sci-mathematics/manifold</pkg> + </flag> <flag name="mimalloc"> Build using <pkg>dev-libs/mimalloc</pkg> as memory allocator </flag> diff --git a/media-gfx/openscad/openscad-20241111.ebuild b/media-gfx/openscad/openscad-20241114.ebuild index afb2c30366fb..ec08be8aa0b5 100644 --- a/media-gfx/openscad/openscad-20241111.ebuild +++ b/media-gfx/openscad/openscad-20241114.ebuild @@ -5,13 +5,21 @@ EAPI=8 inherit cmake flag-o-matic multiprocessing optfeature virtualx xdg -COMMIT=6baf982dc95c91829251fab871bf66554386ece1 -MCAD_COMMIT=bd0a7ba3f042bfbced5ca1894b236cea08904e26 +COMMIT="bc0d078e0361d7dba66723ac31bdb3b650ecff37" +SANITIZERS_CMAKE_COMMIT="3f0542e4e034aab417c51b2b22c94f83355dee15" +MCAD_COMMIT="bd0a7ba3f042bfbced5ca1894b236cea08904e26" DESCRIPTION="The Programmers Solid 3D CAD Modeller" HOMEPAGE="https://openscad.org/" -SRC_URI="https://github.com/openscad/openscad/archive/${COMMIT}.tar.gz -> ${P}.tar.gz - test? ( https://github.com/openscad/MCAD/archive/${MCAD_COMMIT}.tar.gz -> ${PN}-MCAD-${MCAD_COMMIT}.tar.gz )" +SRC_URI=" + https://github.com/openscad/openscad/archive/${COMMIT}.tar.gz + -> ${P}.tar.gz + https://github.com/arsenm/sanitizers-cmake/archive/${SANITIZERS_CMAKE_COMMIT}.tar.gz + -> sanitizers-cmake-${SANITIZERS_CMAKE_COMMIT}.tar.gz + test? ( + https://github.com/openscad/MCAD/archive/${MCAD_COMMIT}.tar.gz -> ${PN}-MCAD-${MCAD_COMMIT}.tar.gz + ) +" # doc downloads are not versioned and found at: # https://files.openscad.org/documentation/ S="${WORKDIR}/${PN}-${COMMIT}" @@ -19,19 +27,19 @@ S="${WORKDIR}/${PN}-${COMMIT}" # Code is GPL-3+, MCAD library is LGPL-2.1 LICENSE="GPL-3+ LGPL-2.1" SLOT="0" -KEYWORDS="~amd64" -IUSE="dbus experimental gamepad +gui hidapi +manifold mimalloc pdf qt6 spacenav test" -RESTRICT="test mirror" # many tests fail +KEYWORDS="~amd64 ~arm64 ~ppc64 ~x86" + +IUSE="dbus +egl experimental glx +gui hidapi +manifold mimalloc pdf spacenav test" +RESTRICT="test" # many tests fail REQUIRED_USE=" dbus? ( gui ) - gamepad? ( gui ) + hidapi? ( gui ) spacenav? ( gui ) - qt6? ( !gamepad ) + || ( egl glx ) " RDEPEND=" - dev-cpp/eigen:3 dev-libs/boost:= dev-libs/double-conversion:= dev-libs/glib:2 @@ -43,44 +51,31 @@ RDEPEND=" media-libs/harfbuzz:= media-libs/lib3mf:= sci-mathematics/cgal:= - virtual/opengl + media-libs/libglvnd[X] gui? ( - qt6? ( - dev-qt/qt5compat:6 - dev-qt/qtbase:6[concurrent,dbus?,-gles2-only,network,opengl,widgets] - dev-qt/qtmultimedia:6 - dev-qt/qtsvg:6 - x11-libs/qscintilla:=[qt6] - ) - !qt6? ( - 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/qtsvg:5 - dev-qt/qtwidgets:5 - x11-libs/qscintilla:0= - dbus? ( dev-qt/qtdbus:5 ) - gamepad? ( dev-qt/qtgamepad:5 ) - ) + dev-qt/qt5compat:6 + dev-qt/qtbase:6[concurrent,dbus?,-gles2-only,network,opengl,widgets] + dev-qt/qtmultimedia:6 + dev-qt/qtsvg:6 + x11-libs/qscintilla:=[qt6] ) hidapi? ( dev-libs/hidapi ) manifold? ( dev-cpp/tbb - >=sci-mathematics/manifold-3.0.0_pre2040919 + sci-mathematics/manifold ) mimalloc? ( dev-libs/mimalloc:= ) pdf? ( x11-libs/cairo ) spacenav? ( dev-libs/libspnav ) " -DEPEND="${RDEPEND}" +DEPEND=" + ${RDEPEND} + dev-cpp/eigen:3 +" BDEPEND=" app-alternatives/yacc app-alternatives/lex dev-util/itstool - dev-util/sanitizers-cmake sys-devel/gettext virtual/pkgconfig " @@ -95,13 +90,17 @@ DOCS=( doc/translation.txt ) -PATCHES=( "${FILESDIR}/sanitizers-cmake.patch" ) - src_prepare() { if use test; then mv -f "${WORKDIR}/MCAD-${MCAD_COMMIT}"/* "${S}/libraries/MCAD/" || die fi + # NOTE adhere CMP0167 + # https://cmake.org/cmake/help/latest/policy/CMP0167.html + sed \ + -e '/find_package(Boost/s/)/ CONFIG)/g' \ + -i CMakeLists.txt || die + cmake_src_prepare } @@ -111,51 +110,60 @@ src_configure() { filter-lto local mycmakeargs=( - -DOPENSCAD_COMMIT=${COMMIT:0:9} - -DOPENSCAD_VERSION=${PV:0:4}.${PV:4:2}.${PV:6:2} - -DCLANG_TIDY=OFF - -DENABLE_CAIRO=$(usex pdf) - -DENABLE_EGL=ON - -DENABLE_GLX=OFF - -DENABLE_MANIFOLD=$(usex manifold) - -DENABLE_TESTS=$(usex test) - -DEXPERIMENTAL=$(usex experimental) - -DHEADLESS=$(usex gui OFF ON) - -DUSE_BUILTIN_MANIFOLD=OFF - -DUSE_CCACHE=OFF - -DUSE_GLAD=ON - -DUSE_LEGACY_RENDERERS=OFF - -DUSE_MIMALLOC=$(usex mimalloc) - -DUSE_QT6=$(usex qt6) + -DCMAKE_MODULE_PATH="${WORKDIR}/sanitizers-cmake-${SANITIZERS_CMAKE_COMMIT}/cmake" + + -DOPENSCAD_COMMIT="${COMMIT:0:9}" + -DOPENSCAD_VERSION="${PV:0:4}.${PV:4:2}.${PV:6:2}" + + -DCLANG_TIDY="no" + -DENABLE_CAIRO="$(usex pdf)" + -DENABLE_CGAL="yes" + -DENABLE_EGL="$(usex egl)" + -DENABLE_GLX="$(usex glx)" + -DENABLE_MANIFOLD="$(usex manifold)" + -DENABLE_PYTHON="no" + -DENABLE_TESTS="$(usex test)" + + -DEXPERIMENTAL="$(usex experimental)" + + -DHEADLESS="$(usex !gui)" + -DUSE_BUILTIN_MANIFOLD="no" + -DUSE_CCACHE="no" + -DUSE_GLAD="yes" + -DUSE_GLEW="no" + -DUSE_LEGACY_RENDERERS="no" + -DUSE_MIMALLOC="$(usex mimalloc)" + -DUSE_QT6="$(usex gui)" + -DOFFLINE_DOCS="no" # TODO ) if use gui; then mycmakeargs+=( - -DENABLE_GAMEPAD=$(usex gamepad) - -DENABLE_HIDAPI=$(usex hidapi) - -DENABLE_QTDBUS=$(usex dbus) - -DENABLE_SPNAV=$(usex spacenav) + -DENABLE_HIDAPI="$(usex hidapi)" + -DENABLE_QTDBUS="$(usex dbus)" + -DENABLE_SPNAV="$(usex spacenav)" ) fi cmake_src_configure } +src_test() { + xdg_environment_reset + pushd "${BUILD_DIR}" > /dev/null || die + virtx ctest -j "$(makeopts_jobs "${MAKEOPTS}" 999)" + popd > /dev/null || die +} + src_install() { DOCS+=( doc/*.pdf ) + cmake_src_install mv -i "${ED}"/usr/share/openscad/locale "${ED}"/usr/share || die "failed to move locales" dosym -r /usr/share/locale /usr/share/openscad/locale } -src_test() { - xdg_environment_reset - pushd "${BUILD_DIR}" > /dev/null || die - virtx ctest -j "$(makeopts_jobs "${MAKEOPTS}" 999)" - popd > /dev/null || die -} - pkg_postinst() { xdg_pkg_postinst |