# Template file for 'qt6-base' pkgname=qt6-base version=6.5.2 revision=2 build_style=cmake configure_args="-DINSTALL_DATADIR=share/qt6 -DINSTALL_ARCHDATADIR=lib${XBPS_TARGET_WORDSIZE}/qt6 -DINSTALL_BINDIR=lib${XBPS_TARGET_WORDSIZE}/qt6/bin -DINSTALL_MKSPECSDIR=lib${XBPS_TARGET_WORDSIZE}/qt6/mkspecs -DINSTALL_INCLUDEDIR=include/qt6 -DINSTALL_EXAMPLESDIR=lib${XBPS_TARGET_WORDSIZE}/qt6/examples -DINSTALL_TESTSDIR=lib${XBPS_TARGET_WORDSIZE}/qt6/tests -DINSTALL_SYSCONFDIR=/etc/xdg -DQT_FEATURE_openssl_linked=ON -DQT_FEATURE_system_sqlite=ON -DQT_FEATURE_libproxy=ON -DQT_FEATURE_qmake=ON -DBUILD_WITH_PCH=OFF" hostmakedepends="perl pkg-config xmlstarlet" makedepends="zlib-devel libzstd-devel dbus-devel libmd4c-devel double-conversion-devel glib-devel libxcb-devel xcb-util-image-devel xcb-util-keysyms-devel xcb-util-renderutil-devel xcb-util-wm-devel MesaLib-devel pcre2-devel icu-devel mtdev-devel harfbuzz-devel libpng-devel tslib-devel libinput-devel gtk+3-devel libmariadbclient-devel postgresql-libs-devel unixodbc-devel cups-devel libproxy-devel brotli-devel sqlite-devel Vulkan-Headers mit-krb5-devel vulkan-loader libb2-devel xcb-util-cursor-devel" short_desc="Cross-platform application and UI framework (QT6)" maintainer="John " license="GPL-3.0-only WITH Qt-GPL-exception-1.0, LGPL-3.0-only, GPL-2.0-or-later" homepage="https://www.qt.io" distfiles="https://download.qt.io/official_releases/qt/${version%.*}/${version}/submodules/qtbase-everywhere-src-${version}.tar.xz" checksum=3db4c729b4d80a9d8fda8dd77128406353baff4755ca619177eda4cddae71269 python_version=3 if [ "$CROSS_BUILD" ]; then hostmakedepends+=" qt6-base" # QtSetup fails native builds if this is set configure_args+=" -DQT_FORCE_BUILD_TOOLS=true" fi # It is currently expected that quite a few patches do fail if [ "$XBPS_CHECK_PKGS" ]; then configure_args+=" -DQT_BUILD_TESTS=ON" fi do_check() { cd build export QT_QPA_PLATFORM=offscreen export QMAKESPEC=$wrksrc/mkspecs/linux-g++ local failing_tests="tst_selftests tst_qmake tst_moc tst_rcc tst_qfile tst_qstandardpaths tst_qtemporarydir tst_qtemporaryfile tst_qdir tst_qpluginloader tst_qlibrary tst_qtextstream test_build_simple_widget_app_qmake test_interface test_interface_link_libraries tst_qfont tst_qfontdatabase tst_qfontmetrics tst_qglyphrun tst_qrawfont tst_qtextdocumentlayout tst_qopenglconfig tst_qopengl tst_qfiledialog tst_qgraphicsview tst_qapplication tst_qfontcombobox tst_qlineedit tst_qmenubar tst_qopenglwidget tst_qx11info tst_qcomplextext tst_qaddpreroutine tst_qtextcursor test_widgets_app_deployment tst_qnetworkinterface tst_qgraphicsproxywidget" # Unknown platform linux-g++ :/ failing_tests+=" mockplugins test_import_plugins test_static_resources test_generating_cpp_exports" failing_tests+=" tst_qstorageinfo" if [ "$XBPS_TARGET_LIBC" = musl ]; then # Some glibc specific DNS Lookup failing_tests+=" tst_qdnslookup" fi if [ "$XBPS_TARGET_WORDSIZE" = 32 ]; then # failing on i686, not checked on arm failing_tests+=" tst_qvectorrnd" fi local ctest_exclude="(" for failure in $failing_tests; do ctest_exclude+="$failure|" done ctest_exclude="${ctest_exclude%|})" if [ ! -e "$wrksrc/build/include/qt6" ]; then ln -s .. "$wrksrc/build/include/qt6" fi ctest -E "$ctest_exclude" rm "$wrksrc/build/include/qt6" } post_install() { rm -rf ${DESTDIR}/usr/tests cat <<-EOF >${DESTDIR}/usr/lib/qt6/bin/target_qt.conf [Paths] Prefix=../../../ HostPrefix=/usr Binaries=lib${XBPS_TARGET_WORDSIZE}/qt6/bin HostBinaries=lib/qt6/bin Libraries=lib${XBPS_TARGET_WORDSIZE} HostLibraries=lib LibraryExecutables=lib${XBPS_TARGET_WORDSIZE}/qt6/libexec HostLibraryExecutables=lib/qt6/libexec ArchData=lib${XBPS_TARGET_WORDSIZE}/qt6 HostArchData=lib/qt6 Data=share/qt6 HostData=share/qt6 Sysroot= SysrootifyPrefix=false TargetSpec=linux-g++ HostSpec=linux-g++ EOF } qt6-gui_package() { short_desc+=" - Gui" pkg_install() { vmove "usr/lib/libQt6Gui.so.*" vmove "usr/lib/libQt6XcbQpa.so.*" vmove "usr/lib/libQt6EglFSDeviceIntegration.so.*" vmove "usr/lib/libQt6EglFsKmsGbmSupport.so.*" vmove "usr/lib/libQt6EglFsKmsSupport.so.*" vmove "usr/lib/libQt6OpenGL.so.*" vmove usr/lib/qt6/plugins/generic vmove usr/lib/qt6/plugins/platforms vmove usr/lib/qt6/plugins/xcbglintegrations vmove usr/lib/qt6/plugins/imageformats vmove usr/lib/qt6/plugins/egldeviceintegrations vmove usr/lib/qt6/plugins/platforminputcontexts vmove usr/lib/qt6/plugins/platformthemes } } qt6-opengl-widgets_package() { short_desc+=" - OpenGL Widgets" pkg_install() { vmove "usr/lib/libQt6OpenGLWidgets.so.*" } } qt6-dbus_package() { short_desc+=" - DBus" pkg_install() { vmove "usr/lib/libQt6DBus.so.*" } } qt6-core_package() { short_desc+=" - Core" pkg_install() { vmove "usr/lib/libQt6Core.so.*" } } qt6-printsupport_package() { short_desc+=" - Print Support" pkg_install() { vmove "usr/lib/libQt6PrintSupport.so.*" vmove usr/lib/qt6/plugins/printsupport } } qt6-concurrent_package() { short_desc+=" - Concurrency" pkg_install() { vmove "usr/lib/libQt6Concurrent.so.*" } } qt6-widgets_package() { short_desc+=" - Widgets" pkg_install() { vmove "usr/lib/libQt6Widgets.so.*" } } qt6-network_package() { short_desc+=" - Network" pkg_install() { vmove "usr/lib/libQt6Network.so.*" } } qt6-sql_package() { short_desc+=" - Sql" pkg_install() { vmove "usr/lib/libQt6Sql.so.*" } } qt6-test_package() { short_desc+=" - Test" pkg_install() { vmove "usr/lib/libQt6Test.so*" } } qt6-xml_package() { short_desc+=" - Xml" pkg_install() { vmove "usr/lib/libQt6Xml.so.*" } } qt6-base-doc_package() { short_desc+=" - Documentation" pkg_install() { vmove usr/share/qt6/doc } } qt6-plugin-odbc_package() { short_desc+=" - ODBC plugin" pkg_install() { vmove usr/lib/qt6/plugins/sqldrivers/libqsqlodbc.so } } qt6-plugin-pgsql_package() { short_desc+=" - PostgreSQL plugin" pkg_install() { vmove usr/lib/qt6/plugins/sqldrivers/libqsqlpsql.so } } qt6-plugin-mysql_package() { short_desc+=" - MySQL plugin" pkg_install() { vmove usr/lib/qt6/plugins/sqldrivers/libqsqlmysql.so } } qt6-plugin-sqlite_package() { short_desc+=" - SQLite plugin" pkg_install() { vmove usr/lib/qt6/plugins/sqldrivers/libqsqlite.so } } qt6-plugin-tls-openssl_package() { short_desc+=" - TLS plugin" pkg_install() { vmove usr/lib/qt6/plugins/tls/libqopensslbackend.so } } qt6-plugin-tls-qcertonly_package() { short_desc+=" - TLS plugin" pkg_install() { vmove usr/lib/qt6/plugins/tls/libqcertonlybackend.so } } qt6-plugin-networkinformation_package() { short_desc+=" - NetworkInformation plugin" pkg_install() { vmove usr/lib/qt6/plugins/networkinformation } } qt6-base-devel_package() { short_desc+=" - Development files" depends="qt6-base>=${version}_${revision} qt6-gui>=${version}_${revision} qt6-core>=${version}_${revision} qt6-widgets>=${version}_${revision} qt6-opengl-widgets>=${version}_${revision} qt6-printsupport>=${version}_${revision} qt6-concurrent>=${version}_${revision} qt6-sql>=${version}_${revision} qt6-test>=${version}_${revision} qt6-network>=${version}_${revision} qt6-xml>=${version}_${revision} qt6-plugin-odbc>=${version}_${revision} qt6-plugin-pgsql>=${version}_${revision} qt6-plugin-mysql>=${version}_${revision} qt6-plugin-sqlite>=${version}_${revision} qt6-plugin-tls-openssl>=${version}_${revision} qt6-plugin-tls-qcertonly>=${version}_${revision} qt6-plugin-networkinformation>=${version}_${revision} ${makedepends}" pkg_install() { local _f vmove usr/include vmove usr/lib/pkgconfig vmove usr/lib/qt6/metatypes vmove usr/lib/qt6/mkspecs/modules vmove "usr/lib/*.a" vmove "usr/lib/*.so" vmove "usr/lib/*.prl" vmove usr/lib/qt6/modules for _f in ${DESTDIR}/usr/lib/cmake/*; do case "$_f" in *Tools|*HostInfo|*/Qt6) ;; *) vmove "usr/lib/cmake/${_f##*/}" ;; esac done } }