qxlsx, split packages for Qt versions (#13873)

This commit is contained in:
Schrijvers Luc
2026-03-28 11:09:45 +01:00
committed by GitHub
parent 75cc608264
commit ddf05a8169
3 changed files with 109 additions and 35 deletions

View File

@@ -0,0 +1,24 @@
From e54848f84b0cd798765819901302ae14c861f83c Mon Sep 17 00:00:00 2001
From: Luc Schrijvers <begasus@gmail.com>
Date: Fri, 3 Oct 2025 14:20:51 +0200
Subject: Fix build for Qt6 >= 6.10
diff --git a/QXlsx/CMakeLists.txt b/QXlsx/CMakeLists.txt
index 5e16bdd..e724057 100644
--- a/QXlsx/CMakeLists.txt
+++ b/QXlsx/CMakeLists.txt
@@ -19,6 +19,10 @@ endif()
find_package(Qt${QT_VERSION_MAJOR} COMPONENTS Core Gui REQUIRED)
set(EXPORT_NAME QXlsxQt${QT_VERSION_MAJOR})
+if(Qt6Gui_VERSION VERSION_GREATER_EQUAL "6.10.0")
+ find_package(Qt6 REQUIRED COMPONENTS GuiPrivate)
+endif()
+
if (QT_VERSION_MAJOR EQUAL 6)
set(CMAKE_CXX_STANDARD 17 CACHE STRING "")
else()
--
2.52.0

View File

@@ -7,8 +7,8 @@ Development language of QXlsx is C++. (with Qt)
as a static library."
HOMEPAGE="https://github.com/QtExcel/QXlsx"
COPYRIGHT="2017-, https://github.com/j2doll/QXlsx"
LICENSE="GNU GPL v2"
REVISION="1"
LICENSE="MIT"
REVISION="3"
SOURCE_URI="https://github.com/QtExcel/QXlsx/archive/refs/tags/v$portVersion.tar.gz"
CHECKSUM_SHA256="4461bb0fc9b88b6a970520e8b32eb7d2fc391a1a5c326b139a0af836278cdb09"
SOURCE_DIR="QXlsx-$portVersion"
@@ -29,31 +29,17 @@ REQUIRES="
lib:libQt5Gui$secondaryArchSuffix
"
PROVIDES_qt6="
qxlsx${secondaryArchSuffix}_qt6 = $portVersion
lib:libQXlsxQt6$secondaryArchSuffix = $libVersionCompat
"
REQUIRES_qt6="
haiku$secondaryArchSuffix
lib:libGL$secondaryArchSuffix
lib:libQt6Core$secondaryArchSuffix
lib:libQt6Gui$secondaryArchSuffix
"
PROVIDES_devel="
qxlsx${secondaryArchSuffix}_devel = $portVersion
devel:libQXlsxQt5$secondaryArchSuffix = $libVersionCompat
devel:libQXlsxQt6$secondaryArchSuffix = $libVersionCompat
"
REQUIRES_devel="
qxlsx$secondaryArchSuffix == $portVersion base
qxlsx${secondaryArchSuffix}_qt6 == $portVersion
"
BUILD_REQUIRES="
haiku${secondaryArchSuffix}_devel
devel:libQt5Core$secondaryArchSuffix
devel:libQt6Core$secondaryArchSuffix
"
BUILD_PREREQUIRES="
cmd:cmake
@@ -62,39 +48,27 @@ BUILD_PREREQUIRES="
"
defineDebugInfoPackage qxlsx$secondaryArchSuffix \
$libDir/libQXlsxQt5.so.$libVersion \
"$(getPackagePrefix qt6)/$relativeLibDir"/libQXlsxQt6.so.$libVersion
$libDir/libQXlsxQt5.so.$libVersion
BUILD()
{
sed -e 's/INSTALL_INTERFACE:include/INSTALL_INTERFACE:\${CMAKE_INSTALL_INCLUDEDIR}/' -i ./QXlsx/CMakeLists.txt
cmake -Bbuild5 -S ./QXlsx/ -DCMAKE_BUILD_TYPE=RelWithDebInfo \
cmake -B build -S ./QXlsx/ -DCMAKE_BUILD_TYPE=RelWithDebInfo \
$cmakeDirArgs \
-DBUILD_SHARED_LIBS=ON \
-DQT_VERSION_MAJOR=5
make -Cbuild5 $jobArgs
-DBUILD_SHARED_LIBS=ON
cmake -Bbuild6 -S ./QXlsx/ -DCMAKE_BUILD_TYPE=RelWithDebInfo \
$cmakeDirArgs \
-DBUILD_SHARED_LIBS=ON \
-DQT_VERSION_MAJOR=6
make -Cbuild6 $jobArgs
make -C build $jobArgs
}
INSTALL()
{
make -Cbuild5 install
make -Cbuild6 install
make -C build install
prepareInstalledDevelLibs \
libQXlsxQt5 \
libQXlsxQt6
prepareInstalledDevelLib \
libQXlsxQt5
packageEntries devel \
$developDir \
$libDir/cmake
packageEntries qt6 \
$libDir/*Qt6.*
}

View File

@@ -0,0 +1,76 @@
SUMMARY="Excel file reader/writer library using Qt"
DESCRIPTION="QXlsx is excel file(*.xlsx) reader/writer library.
* Because QtXlsxWriter is no longer supported, I created a new project that is based on QtXlsx. \
(2017-)
Development language of QXlsx is C++. (with Qt)
* You dont need to use static library or dynamic shared object using QXlsx. You can also use it \
as a static library."
HOMEPAGE="https://github.com/QtExcel/QXlsx"
COPYRIGHT="2017-, https://github.com/j2doll/QXlsx"
LICENSE="MIT"
REVISION="3"
SOURCE_URI="https://github.com/QtExcel/QXlsx/archive/refs/tags/v$portVersion.tar.gz"
CHECKSUM_SHA256="4461bb0fc9b88b6a970520e8b32eb7d2fc391a1a5c326b139a0af836278cdb09"
SOURCE_DIR="QXlsx-$portVersion"
PATCHES="qxlsx_qt6-$portVersion.patchset"
ARCHITECTURES="all !x86_gcc2"
SECONDARY_ARCHITECTURES="x86"
libVersion="1.5.0"
libVersionCompat="$libVersion compat >= ${libVersion%%.*}"
PROVIDES="
qxlsx_qt6$secondaryArchSuffix = $portVersion
lib:libQXlsxQt6$secondaryArchSuffix = $libVersionCompat
"
REQUIRES="
haiku$secondaryArchSuffix
lib:libGL$secondaryArchSuffix
lib:libQt6Core$secondaryArchSuffix
lib:libQt6Gui$secondaryArchSuffix
"
PROVIDES_devel="
qxlsx_qt6${secondaryArchSuffix}_devel = $portVersion
devel:libQXlsxQt6$secondaryArchSuffix = $libVersionCompat
"
REQUIRES_devel="
qxlsx_qt6$secondaryArchSuffix == $portVersion base
"
BUILD_REQUIRES="
haiku${secondaryArchSuffix}_devel
devel:libQt6Core$secondaryArchSuffix
"
BUILD_PREREQUIRES="
cmd:cmake
cmd:gcc$secondaryArchSuffix
cmd:make
"
defineDebugInfoPackage qxlsx_qt6$secondaryArchSuffix \
$libDir/libQXlsxQt6.so.$libVersion
BUILD()
{
sed -e 's/INSTALL_INTERFACE:include/INSTALL_INTERFACE:\${CMAKE_INSTALL_INCLUDEDIR}/' -i ./QXlsx/CMakeLists.txt
cmake -B build -S ./QXlsx/ -DCMAKE_BUILD_TYPE=RelWithDebInfo \
$cmakeDirArgs \
-DBUILD_SHARED_LIBS=ON
make -C build $jobArgs
}
INSTALL()
{
make -C build install
prepareInstalledDevelLib \
libQXlsxQt6
packageEntries devel \
$developDir \
$libDir/cmake
}