diff options
author | James Le Cuirot <chewi@gentoo.org> | 2024-03-15 22:53:46 +0000 |
---|---|---|
committer | James Le Cuirot <chewi@gentoo.org> | 2024-03-15 22:54:22 +0000 |
commit | 937f03b7fe4af6130b4f338d6c7d317163ff6b1b (patch) | |
tree | 23e1ad286d4e337859ccc394a02c29b47b47dfff /games-util | |
parent | dev-util/indent: keyword 2.2.13 for ~arm64 (diff) | |
download | gentoo-937f03b7fe4af6130b4f338d6c7d317163ff6b1b.tar.gz gentoo-937f03b7fe4af6130b4f338d6c7d317163ff6b1b.tar.bz2 gentoo-937f03b7fe4af6130b4f338d6c7d317163ff6b1b.zip |
games-util/lgogdownloader: Add Qt6 support with patch
Closes: https://bugs.gentoo.org/926661
Signed-off-by: James Le Cuirot <chewi@gentoo.org>
Diffstat (limited to 'games-util')
-rw-r--r-- | games-util/lgogdownloader/files/lgogdownloader-qt6.patch | 73 | ||||
-rw-r--r-- | games-util/lgogdownloader/lgogdownloader-3.12-r1.ebuild (renamed from games-util/lgogdownloader/lgogdownloader-3.12.ebuild) | 31 | ||||
-rw-r--r-- | games-util/lgogdownloader/lgogdownloader-9999.ebuild | 27 |
3 files changed, 117 insertions, 14 deletions
diff --git a/games-util/lgogdownloader/files/lgogdownloader-qt6.patch b/games-util/lgogdownloader/files/lgogdownloader-qt6.patch new file mode 100644 index 000000000000..5d1652bcbdd7 --- /dev/null +++ b/games-util/lgogdownloader/files/lgogdownloader-qt6.patch @@ -0,0 +1,73 @@ +From 3f223684cbe1367c68b2b68301eeaaf644a4c0be Mon Sep 17 00:00:00 2001 +From: James Le Cuirot <chewi@gentoo.org> +Date: Thu, 14 Mar 2024 22:12:02 +0000 +Subject: [PATCH] Add support for Qt6 (as well as Qt5) + +No actual code changes were necessary. + +I have partly followed +https://doc.qt.io/qt-6/cmake-qt5-and-qt6-compatibility.html, but the +versionless targets only work from Qt 5.15 onwards. The suggested +workaround chooses 5 over 6 and does not appear to work properly when +one of the required components is missing. Using the versionless +approach with an additional variable for the targets seems to work best. + +If necessary, Qt 5 can be forced over 6 by passing +`-DCMAKE_DISABLE_FIND_PACKAGE_Qt6=ON`. + +I have tested this by tweaking the code to force the GUI to appear. +--- + CMakeLists.txt | 20 +++++++++++++++----- + 1 file changed, 15 insertions(+), 5 deletions(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 0fe7568..9f489c1 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -45,8 +45,12 @@ file(GLOB SRC_FILES + ) + + if(USE_QT_GUI) +- find_package(Qt5Widgets CONFIG REQUIRED) +- find_package(Qt5WebEngineWidgets CONFIG REQUIRED) ++ set(QT Qt6) ++ find_package(Qt6 COMPONENTS Widgets WebEngineWidgets CONFIG) ++ if(NOT Qt6_FOUND) ++ set(QT Qt5) ++ find_package(Qt5 REQUIRED COMPONENTS Widgets WebEngineWidgets CONFIG) ++ endif() + + file(GLOB QT_GUI_SRC_FILES + src/gui_login.cpp +@@ -140,11 +144,17 @@ file(REMOVE ${CMAKE_BINARY_DIR}/test_atomic.cpp) + + if(USE_QT_GUI) + target_link_libraries(${PROJECT_NAME} +- PRIVATE Qt5::Widgets +- PRIVATE Qt5::WebEngineWidgets ++ PRIVATE ${QT}::Widgets ++ PRIVATE ${QT}::WebEngineWidgets + ) + endif(USE_QT_GUI) + ++if(Qt6_FOUND) ++ set_property(TARGET ${PROJECT_NAME} PROPERTY CXX_STANDARD 17) ++else() ++ set_property(TARGET ${PROJECT_NAME} PROPERTY CXX_STANDARD 11) ++endif(Qt6_FOUND) ++ + if(MSVC) + # Force to always compile with W4 + if(CMAKE_CXX_FLAGS MATCHES "/W[0-4]") +@@ -154,7 +164,7 @@ if(MSVC) + endif() + elseif(CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang") + # Update if necessary +- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -Wall -Wextra -Wno-long-long -fexceptions") ++ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -Wno-long-long -fexceptions") + endif() + + set(INSTALL_BIN_DIR bin CACHE PATH "Installation directory for executables") +-- +2.43.2 + diff --git a/games-util/lgogdownloader/lgogdownloader-3.12.ebuild b/games-util/lgogdownloader/lgogdownloader-3.12-r1.ebuild index 17e3c906771f..e07404cb11a4 100644 --- a/games-util/lgogdownloader/lgogdownloader-3.12.ebuild +++ b/games-util/lgogdownloader/lgogdownloader-3.12-r1.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2023 Gentoo Authors +# Copyright 1999-2024 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -11,25 +11,42 @@ SRC_URI="https://github.com/Sude-/${PN}/releases/download/v${PV}/${P}.tar.gz" LICENSE="WTFPL-2" SLOT="0" KEYWORDS="~amd64 ~x86" -IUSE="gui" +IUSE="gui qt5 qt6" +REQUIRED_USE="gui? ( ^^ ( qt5 qt6 ) )" -RDEPEND=">=app-crypt/rhash-1.3.3-r2:0= +RDEPEND=" + >=app-crypt/rhash-1.3.3-r2:0= dev-cpp/htmlcxx:0= dev-libs/boost:=[zlib] >=dev-libs/jsoncpp-1.7:0= dev-libs/tinyxml2:0= >=net-misc/curl-7.55:0=[ssl] - gui? ( dev-qt/qtwebengine:5=[widgets] )" + gui? ( + qt5? ( dev-qt/qtwebengine:5[widgets] ) + qt6? ( dev-qt/qtwebengine:6[widgets] ) + ) +" + +DEPEND=" + ${RDEPEND} +" -DEPEND="${RDEPEND}" +BDEPEND=" + sys-apps/help2man + virtual/pkgconfig +" -BDEPEND="sys-apps/help2man - virtual/pkgconfig" +PATCHES=( + "${FILESDIR}"/${PN}-qt6.patch +) src_configure() { local mycmakeargs=( -DUSE_QT_GUI=$(usex gui) ) + use gui && mycmakeargs+=( + -DCMAKE_DISABLE_FIND_PACKAGE_Qt6=$(usex qt5) + ) cmake_src_configure } diff --git a/games-util/lgogdownloader/lgogdownloader-9999.ebuild b/games-util/lgogdownloader/lgogdownloader-9999.ebuild index de26bf23392b..daf26178322c 100644 --- a/games-util/lgogdownloader/lgogdownloader-9999.ebuild +++ b/games-util/lgogdownloader/lgogdownloader-9999.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2023 Gentoo Authors +# Copyright 1999-2024 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -10,25 +10,38 @@ HOMEPAGE="https://sites.google.com/site/gogdownloader/" EGIT_REPO_URI="https://github.com/Sude-/lgogdownloader.git" LICENSE="WTFPL-2" SLOT="0" -IUSE="gui" +IUSE="gui qt5 qt6" +REQUIRED_USE="gui? ( ^^ ( qt5 qt6 ) )" -RDEPEND=">=app-crypt/rhash-1.3.3-r2:0= +RDEPEND=" + >=app-crypt/rhash-1.3.3-r2:0= dev-cpp/htmlcxx:0= dev-libs/boost:=[zlib] >=dev-libs/jsoncpp-1.7:0= dev-libs/tinyxml2:0= >=net-misc/curl-7.55:0=[ssl] - gui? ( dev-qt/qtwebengine:5=[widgets] )" + gui? ( + qt5? ( dev-qt/qtwebengine:5[widgets] ) + qt6? ( dev-qt/qtwebengine:6[widgets] ) + ) +" -DEPEND="${RDEPEND}" +DEPEND=" + ${RDEPEND} +" -BDEPEND="sys-apps/help2man - virtual/pkgconfig" +BDEPEND=" + sys-apps/help2man + virtual/pkgconfig +" src_configure() { local mycmakeargs=( -DUSE_QT_GUI=$(usex gui) ) + use gui && mycmakeargs+=( + -DCMAKE_DISABLE_FIND_PACKAGE_Qt6=$(usex qt5) + ) cmake_src_configure } |