commit:     58db7816b12f8045b936fa68dce00ad6a50b5d40
Author:     Nicolas PARLANT <nicolas.parlant <AT> parhuet <DOT> fr>
AuthorDate: Fri Jun 27 07:56:42 2025 +0000
Commit:     David Roman <davidroman96 <AT> gmail <DOT> com>
CommitDate: Sat Jun 28 20:53:34 2025 +0000
URL:        https://gitweb.gentoo.org/repo/proj/guru.git/commit/?id=58db7816

dev-cpp/wt: rework deps, unrestrict boost

dep :
unrestrict boost version. It builds now with >=1.87.
media-libs/libharu is only required with pdf feature
add media-libs/glew required for opengl
add connector-c for mariadb/mysql
add pkgconfig
use libglvnd[X] instead of virtual/opengl

doc :
generate qch requires qttools[assistant] not qttools[qdoc]
add dev-ruby/asciidoctor for tutorial building
add graphviz for dot

add useflags :
make graphicsmagick (raster image) optional
make Wt::Test optional with wttest
make sqlite optional (but enabled by default) and force system-lib

REQUIRED_USE :
pango is only used with graphicsmagick or libharu
opengl requires graphicsmagick

Signed-off-by: Nicolas PARLANT <nicolas.parlant <AT> parhuet.fr>
Part-of: https://github.com/gentoo/guru/pull/339
Signed-off-by: David Roman <davidroman96 <AT> gmail.com>

 dev-cpp/wt/metadata.xml        |   4 +-
 dev-cpp/wt/wt-4.11.4-r3.ebuild | 131 +++++++++++++++++++++++++++++++++++++++++
 2 files changed, 134 insertions(+), 1 deletion(-)

diff --git a/dev-cpp/wt/metadata.xml b/dev-cpp/wt/metadata.xml
index f8c1c1ffbc..7a8a8a0802 100644
--- a/dev-cpp/wt/metadata.xml
+++ b/dev-cpp/wt/metadata.xml
@@ -6,7 +6,9 @@
                <name>David Roman</name>
        </maintainer>
        <use>
-               <flag name="pango">Enable <pkg>x11-libs/pango</pkg>, wich is 
used for improved font support (WPdfImage and WRasterImage)</flag>
+               <flag name="graphicsmagick">Enable 
<pkg>media-gfx/graphicsmagick</pkg>, which is used for creating raster images 
(WRasterImage)</flag>
+               <flag name="pango">Enable <pkg>x11-libs/pango</pkg>, which is 
used for improved font support (WPdfImage and WRasterImage)</flag>
+               <flag name="wttest">Build Wt::Test for automated 
(integration/unit) tests</flag>
        </use>
        <upstream>
                <remote-id type="github">emweb/wt</remote-id>

diff --git a/dev-cpp/wt/wt-4.11.4-r3.ebuild b/dev-cpp/wt/wt-4.11.4-r3.ebuild
new file mode 100644
index 0000000000..d33c8f3d91
--- /dev/null
+++ b/dev-cpp/wt/wt-4.11.4-r3.ebuild
@@ -0,0 +1,131 @@
+# Copyright 2024-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit cmake flag-o-matic
+
+DESCRIPTION="Wt, C++ Web Toolkit"
+HOMEPAGE="https://www.webtoolkit.eu/wt https://github.com/emweb/wt";
+SRC_URI="https://github.com/emweb/wt/archive/refs/tags/${PV}.tar.gz -> 
${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0/${PV}"
+KEYWORDS="~amd64"
+IUSE="doc +graphicsmagick mysql opengl +pango pdf postgres +sqlite ssl wttest"
+REQUIRED_USE="
+       pango? ( || ( graphicsmagick pdf ) )
+       opengl? ( graphicsmagick )
+"
+# TODO: auto-test with wttest
+RESTRICT="test"
+
+DEPEND="
+       dev-libs/boost:=
+       sys-libs/zlib
+       graphicsmagick? ( media-gfx/graphicsmagick:=[jpeg,png] )
+       mysql? (
+               virtual/mysql
+               || (
+                       dev-db/mariadb-connector-c
+                       dev-db/mysql-connector-c
+               )
+       )
+       opengl? (
+               media-libs/glew:=
+               media-libs/libglvnd[X]
+       )
+       pango? (
+               dev-libs/glib:2
+               media-libs/fontconfig
+               x11-libs/pango
+       )
+       pdf? ( media-libs/libharu:= )
+       postgres? ( dev-db/postgresql )
+       sqlite? ( dev-db/sqlite:3 )
+       ssl? ( dev-libs/openssl:= )
+"
+RDEPEND="${DEPEND}"
+BDEPEND="
+       doc? (
+               app-text/doxygen
+               dev-qt/qttools:6[assistant]
+               dev-ruby/asciidoctor
+               media-gfx/graphviz[cairo]
+       )
+       virtual/pkgconfig
+"
+
+PATCHES=( "${FILESDIR}/wt-no-rundir.patch" )
+
+src_prepare() {
+       cmake_src_prepare
+
+       # remove bundled sqlite
+       rm -r src/Wt/Dbo/backend/amalgamation || die
+
+       if use doc; then
+               doxygen -u Doxyfile 2>/dev/null || die
+               doxygen -u examples/Doxyfile 2>/dev/null || die
+               sed -e 
"/^QHG_LOCATION/s|qhelpgenerator|/usr/$(get_libdir)/qt6/libexec/&|" \
+                       -i Doxyfile || die
+       fi
+}
+
+src_configure() {
+       local mycmakeargs=(
+               -DLIB_INSTALL_DIR=$(get_libdir)
+               -DBUILD_EXAMPLES=OFF
+               -DBUILD_TESTS=OFF
+               -DDOCUMENTATION_DESTINATION="share/doc/${PF}"
+               -DINSTALL_DOCUMENTATION=$(usex doc)
+               # will be deprecated
+               -DCONNECTOR_FCGI=OFF
+               -DCONNECTOR_HTTP=ON
+               -DENABLE_SSL=$(usex ssl)
+               -DENABLE_HARU=$(usex pdf)
+               -DENABLE_PANGO=$(usex pango)
+               -DENABLE_SQLITE=$(usex sqlite)
+               -DENABLE_POSTGRES=$(usex postgres)
+               -DENABLE_MYSQL=$(usex mysql)
+               -DENABLE_FIREBIRD=OFF
+               -DENABLE_LIBWTTEST=$(usex wttest)
+               # QT is only required for examples
+               -DENABLE_QT4=OFF
+               -DENABLE_QT5=OFF
+               -DENABLE_QT6=OFF
+               # requires shibboleth and opensaml, not in tree
+               -DENABLE_SAML=OFF
+               -DENABLE_OPENGL=$(usex opengl)
+               -DWT_WRASTERIMAGE_IMPLEMENTATION=$(usex graphicsmagick 
GraphicsMagick none)
+       )
+
+       if use mysql || use postgres || use sqlite; then
+               mycmakeargs+=( -DENABLE_LIBWTDBO=ON )
+               if use sqlite; then
+                       mycmakeargs+=( -DUSE_SYSTEM_SQLITE3=ON )
+                       # DboTest.C: In member function ‘void 
Sqlite3_Test_Suite::dbo_precision_test2::test_method()’
+                       if use wttest; then
+                       append-flags -fno-strict-aliasing
+                       filter-lto
+                       fi
+               fi
+       else
+               mycmakeargs+=( -DENABLE_LIBWTDBO=OFF )
+       fi
+
+       cmake_src_configure
+}
+
+src_install() {
+       cmake_src_install
+
+       if use doc; then
+               find "${ED}" \( \
+                       -iname '*.map' -o \
+                       -iname '*.md5' \
+                       \) -delete || die
+
+               docompress -x /usr/share/doc/${PF}/{examples,reference,tutorial}
+       fi
+}

Reply via email to