summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJames Le Cuirot <chewi@gentoo.org>2024-03-15 22:53:46 +0000
committerJames Le Cuirot <chewi@gentoo.org>2024-03-15 22:54:22 +0000
commit937f03b7fe4af6130b4f338d6c7d317163ff6b1b (patch)
tree23e1ad286d4e337859ccc394a02c29b47b47dfff
parentdev-util/indent: keyword 2.2.13 for ~arm64 (diff)
downloadgentoo-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>
-rw-r--r--games-util/lgogdownloader/files/lgogdownloader-qt6.patch73
-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.ebuild27
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
}