# 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 }