From ddf05a8169c7837acaec697d3aea37df93b90481 Mon Sep 17 00:00:00 2001 From: Schrijvers Luc Date: Sat, 28 Mar 2026 11:09:45 +0100 Subject: [PATCH] qxlsx, split packages for Qt versions (#13873) --- .../qxlsx/patches/qxlsx_qt6-1.5.0.patchset | 24 ++++++ dev-libs/qxlsx/qxlsx-1.5.0.recipe | 44 +++-------- dev-libs/qxlsx/qxlsx_qt6-1.5.0.recipe | 76 +++++++++++++++++++ 3 files changed, 109 insertions(+), 35 deletions(-) create mode 100644 dev-libs/qxlsx/patches/qxlsx_qt6-1.5.0.patchset create mode 100644 dev-libs/qxlsx/qxlsx_qt6-1.5.0.recipe diff --git a/dev-libs/qxlsx/patches/qxlsx_qt6-1.5.0.patchset b/dev-libs/qxlsx/patches/qxlsx_qt6-1.5.0.patchset new file mode 100644 index 000000000..c85331346 --- /dev/null +++ b/dev-libs/qxlsx/patches/qxlsx_qt6-1.5.0.patchset @@ -0,0 +1,24 @@ +From e54848f84b0cd798765819901302ae14c861f83c Mon Sep 17 00:00:00 2001 +From: Luc Schrijvers +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 + diff --git a/dev-libs/qxlsx/qxlsx-1.5.0.recipe b/dev-libs/qxlsx/qxlsx-1.5.0.recipe index 78c10b73a..2f406b408 100644 --- a/dev-libs/qxlsx/qxlsx-1.5.0.recipe +++ b/dev-libs/qxlsx/qxlsx-1.5.0.recipe @@ -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.* } diff --git a/dev-libs/qxlsx/qxlsx_qt6-1.5.0.recipe b/dev-libs/qxlsx/qxlsx_qt6-1.5.0.recipe new file mode 100644 index 000000000..0e12053f7 --- /dev/null +++ b/dev-libs/qxlsx/qxlsx_qt6-1.5.0.recipe @@ -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 don’t 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 +}