git: de69901268cd - main - www/kdsoap: flavorize for Qt5 and Qt6

From: Tobias C. Berner <tcberner_at_FreeBSD.org>
Date: Mon, 14 Aug 2023 07:14:49 UTC
The branch main has been updated by tcberner:

URL: https://cgit.FreeBSD.org/ports/commit/?id=de69901268cd74b9b684255c610aba6a4f18d6b2

commit de69901268cd74b9b684255c610aba6a4f18d6b2
Author:     Tobias C. Berner <tcberner@FreeBSD.org>
AuthorDate: 2023-08-14 07:09:56 +0000
Commit:     Tobias C. Berner <tcberner@FreeBSD.org>
CommitDate: 2023-08-14 07:14:19 +0000

    www/kdsoap: flavorize for Qt5 and Qt6
    
    For symmetry reasons the Qt5 package has been renamed to kdsoap-qt5.
    Users might need to manually intervene using
    > pkg delete -f kdsoap
    before re-installing this package.
    
    As co-installability is not properly supported upstream, use cmake to
    install the headers to PREFIX/include/KDSoap${QT_VER}.
---
 UPDATING             |   7 +++
 www/kdsoap/Makefile  |  34 +++++++++--
 www/kdsoap/pkg-plist | 156 +++++++++++++++++++++++++--------------------------
 3 files changed, 114 insertions(+), 83 deletions(-)

diff --git a/UPDATING b/UPDATING
index b9708858467c..01a25d304622 100644
--- a/UPDATING
+++ b/UPDATING
@@ -5,6 +5,13 @@ they are unavoidable.
 You should get into the habit of checking this file for changes each time
 you update your ports collection, before attempting any port upgrades.
 
+20230814:
+  AFFECTS: usrs of www/kdsoap
+  AUTHOR: kde@FreeBSD.org
+
+  The port www/kdsoap has been flavorized to support both Qt5 and Qt6.
+  For symmetry, the Qt5 package has been renamed to kdsoap-qt5.
+
 20230811:
   AFFECTS: users of www/p5-AnyEvent-WebSocket-Client
   AUTHOR: rodrigo@FreeBSD.org
diff --git a/www/kdsoap/Makefile b/www/kdsoap/Makefile
index 50154e02efbb..e3ecf2a34846 100644
--- a/www/kdsoap/Makefile
+++ b/www/kdsoap/Makefile
@@ -1,9 +1,11 @@
 PORTNAME=	kdsoap
 DISTVERSION=	2.1.1
+PORTREVISION=	1
 CATEGORIES=	www
 # It's on GitHub, but KDAB uploads tidy release tarballs,
 # so do NOT USE_GITHUB, but do write out the variables.
 MASTER_SITES=	https://github.com/${GH_ACCOUNT}/${GH_PROJECT}/releases/download/${PORTNAME}-${DISTVERSION}/
+PKGNAMESUFFIX=	-${FLAVOR}
 
 MAINTAINER=	kde@FreeBSD.org
 COMMENT=	C++/Qt SOAP framework
@@ -15,15 +17,37 @@ WWW=		https://github.com/KDAB/KDSoap
 LICENSE=	LGPL21 AGPLv3
 LICENSE_COMB=	multi
 
-USES=		cmake compiler:c++11-lang localbase pkgconfig qt:5
-USE_LDCONFIG=	yes
-USE_QT=		core network widgets xml \
-		buildtools:build linguisttools:build qmake:build
+FLAVORS=	qt5 qt6
+FLAVOR?=	qt5
 
+USES=		cmake compiler:c++11-lang localbase pkgconfig qt:${FLAVOR:S/qt//}
 # No USE_GITHUB, but pretty close
 GH_ACCOUNT=	KDAB
 GH_PROJECT=	KDSoap
+USE_LDCONFIG=	yes
+USE_QT=		${_USE_QT_${FLAVOR}}
+# KDSoap upstream does not support co-installability properly. To mitigate this,
+# install the headers to a prefixed location.
+CMAKE_ARGS=	${_CMAKE_ARGS_${FLAVOR}} \
+		-DINSTALL_INCLUDE_DIR:PATH=${PREFIX}/${_KDSOAP_INCDIR}
+
+
+PLIST_SUB=	SOVER=${DISTVERSION} \
+		KDSOAP_INCDIR=${_KDSOAP_INCDIR} \
+		KDSOAP_SUFFIX=${_KDSOAP_SUFFIX} \
+		KDSOAP_QT5_ONLY=${_KDSOAP_QT5_ONLY}
+
+# Flavor handling
+_CMAKE_ARGS_qt5=	-DKDSoap_QT6:BOOL=FALSE
+_CMAKE_ARGS_qt6=	-DKDSoap_QT6:BOOL=TRUE
+_USE_QT_qt5=	core network widgets xml \
+		buildtools:build linguisttools:build qmake:build
+_USE_QT_qt6=	base
+_KDSOAP_INCDIR=	include/KDSoap${FLAVOR:S/qt//}
+_KDSOAP_SUFFIX=	${_KDSOAP_SUFFIX_${FLAVOR}}
+_KDSOAP_SUFFIX_qt6=	-qt6
+_KDSOAP_QT5_ONLY_qt6=	"@comment "
+_KDSOAP_QT5_ONLY=	${_KDSOAP_QT5_ONLY_${FLAVOR}}
 
-PLIST_SUB=	SOVER=${DISTVERSION}
 
 .include <bsd.port.mk>
diff --git a/www/kdsoap/pkg-plist b/www/kdsoap/pkg-plist
index aff487c35d30..a423b0b0fcdd 100644
--- a/www/kdsoap/pkg-plist
+++ b/www/kdsoap/pkg-plist
@@ -1,80 +1,80 @@
-bin/kdwsdl2cpp
-include/KDSoapClient/KDDateTime
-include/KDSoapClient/KDDateTime.h
-include/KDSoapClient/KDQName
-include/KDSoapClient/KDQName.h
-include/KDSoapClient/KDSoap
-include/KDSoapClient/KDSoap.h
-include/KDSoapClient/KDSoapAuthentication
-include/KDSoapClient/KDSoapAuthentication.h
-include/KDSoapClient/KDSoapClient
-include/KDSoapClient/KDSoapClientInterface
-include/KDSoapClient/KDSoapClientInterface.h
-include/KDSoapClient/KDSoapEndpointReference
-include/KDSoapClient/KDSoapEndpointReference.h
-include/KDSoapClient/KDSoapFaultException
-include/KDSoapClient/KDSoapFaultException.h
-include/KDSoapClient/KDSoapGlobal
-include/KDSoapClient/KDSoapGlobal.h
-include/KDSoapClient/KDSoapHeaders
-include/KDSoapClient/KDSoapJob
-include/KDSoapClient/KDSoapJob.h
-include/KDSoapClient/KDSoapMessage
-include/KDSoapClient/KDSoapMessage.h
-include/KDSoapClient/KDSoapMessageAddressingProperties
-include/KDSoapClient/KDSoapMessageAddressingProperties.h
-include/KDSoapClient/KDSoapNamespaceManager
-include/KDSoapClient/KDSoapNamespaceManager.h
-include/KDSoapClient/KDSoapPendingCall
-include/KDSoapClient/KDSoapPendingCall.h
-include/KDSoapClient/KDSoapPendingCallWatcher
-include/KDSoapClient/KDSoapPendingCallWatcher.h
-include/KDSoapClient/KDSoapSslHandler
-include/KDSoapClient/KDSoapSslHandler.h
-include/KDSoapClient/KDSoapUdpClient
-include/KDSoapClient/KDSoapUdpClient.h
-include/KDSoapClient/KDSoapValue
-include/KDSoapClient/KDSoapValue.h
-include/KDSoapClient/KDSoapValueList
-include/KDSoapClient/kdsoap_version.h
-include/KDSoapServer/KDSoapDelayedResponseHandle
-include/KDSoapServer/KDSoapDelayedResponseHandle.h
-include/KDSoapServer/KDSoapServer
-include/KDSoapServer/KDSoapServer.h
-include/KDSoapServer/KDSoapServerAuthInterface
-include/KDSoapServer/KDSoapServerAuthInterface.h
-include/KDSoapServer/KDSoapServerCustomVerbRequestInterface
-include/KDSoapServer/KDSoapServerCustomVerbRequestInterface.h
-include/KDSoapServer/KDSoapServerGlobal
-include/KDSoapServer/KDSoapServerGlobal.h
-include/KDSoapServer/KDSoapServerObjectInterface
-include/KDSoapServer/KDSoapServerObjectInterface.h
-include/KDSoapServer/KDSoapServerRawXMLInterface
-include/KDSoapServer/KDSoapServerRawXMLInterface.h
-include/KDSoapServer/KDSoapThreadPool
-include/KDSoapServer/KDSoapThreadPool.h
-lib/cmake/KDSoap/KDSoapConfig.cmake
-lib/cmake/KDSoap/KDSoapConfigVersion.cmake
-lib/cmake/KDSoap/KDSoapMacros.cmake
-lib/cmake/KDSoap/KDSoapTargets-%%CMAKE_BUILD_TYPE%%.cmake
-lib/cmake/KDSoap/KDSoapTargets.cmake
-lib/libkdsoap-server.so
-lib/libkdsoap-server.so.2
-lib/libkdsoap-server.so.%%SOVER%%
-lib/libkdsoap.so
-lib/libkdsoap.so.2
-lib/libkdsoap.so.%%SOVER%%
+bin/kdwsdl2cpp%%KDSOAP_SUFFIX%%
+%%KDSOAP_INCDIR%%/KDSoapClient/KDDateTime
+%%KDSOAP_INCDIR%%/KDSoapClient/KDDateTime.h
+%%KDSOAP_INCDIR%%/KDSoapClient/KDQName
+%%KDSOAP_INCDIR%%/KDSoapClient/KDQName.h
+%%KDSOAP_INCDIR%%/KDSoapClient/KDSoap
+%%KDSOAP_INCDIR%%/KDSoapClient/KDSoap.h
+%%KDSOAP_INCDIR%%/KDSoapClient/KDSoapAuthentication
+%%KDSOAP_INCDIR%%/KDSoapClient/KDSoapAuthentication.h
+%%KDSOAP_INCDIR%%/KDSoapClient/KDSoapClient
+%%KDSOAP_INCDIR%%/KDSoapClient/KDSoapClientInterface
+%%KDSOAP_INCDIR%%/KDSoapClient/KDSoapClientInterface.h
+%%KDSOAP_INCDIR%%/KDSoapClient/KDSoapEndpointReference
+%%KDSOAP_INCDIR%%/KDSoapClient/KDSoapEndpointReference.h
+%%KDSOAP_INCDIR%%/KDSoapClient/KDSoapFaultException
+%%KDSOAP_INCDIR%%/KDSoapClient/KDSoapFaultException.h
+%%KDSOAP_INCDIR%%/KDSoapClient/KDSoapGlobal
+%%KDSOAP_INCDIR%%/KDSoapClient/KDSoapGlobal.h
+%%KDSOAP_INCDIR%%/KDSoapClient/KDSoapHeaders
+%%KDSOAP_INCDIR%%/KDSoapClient/KDSoapJob
+%%KDSOAP_INCDIR%%/KDSoapClient/KDSoapJob.h
+%%KDSOAP_INCDIR%%/KDSoapClient/KDSoapMessage
+%%KDSOAP_INCDIR%%/KDSoapClient/KDSoapMessage.h
+%%KDSOAP_INCDIR%%/KDSoapClient/KDSoapMessageAddressingProperties
+%%KDSOAP_INCDIR%%/KDSoapClient/KDSoapMessageAddressingProperties.h
+%%KDSOAP_INCDIR%%/KDSoapClient/KDSoapNamespaceManager
+%%KDSOAP_INCDIR%%/KDSoapClient/KDSoapNamespaceManager.h
+%%KDSOAP_INCDIR%%/KDSoapClient/KDSoapPendingCall
+%%KDSOAP_INCDIR%%/KDSoapClient/KDSoapPendingCall.h
+%%KDSOAP_INCDIR%%/KDSoapClient/KDSoapPendingCallWatcher
+%%KDSOAP_INCDIR%%/KDSoapClient/KDSoapPendingCallWatcher.h
+%%KDSOAP_INCDIR%%/KDSoapClient/KDSoapSslHandler
+%%KDSOAP_INCDIR%%/KDSoapClient/KDSoapSslHandler.h
+%%KDSOAP_INCDIR%%/KDSoapClient/KDSoapUdpClient
+%%KDSOAP_INCDIR%%/KDSoapClient/KDSoapUdpClient.h
+%%KDSOAP_INCDIR%%/KDSoapClient/KDSoapValue
+%%KDSOAP_INCDIR%%/KDSoapClient/KDSoapValue.h
+%%KDSOAP_INCDIR%%/KDSoapClient/KDSoapValueList
+%%KDSOAP_INCDIR%%/KDSoapClient/kdsoap_version.h
+%%KDSOAP_INCDIR%%/KDSoapServer/KDSoapDelayedResponseHandle
+%%KDSOAP_INCDIR%%/KDSoapServer/KDSoapDelayedResponseHandle.h
+%%KDSOAP_INCDIR%%/KDSoapServer/KDSoapServer
+%%KDSOAP_INCDIR%%/KDSoapServer/KDSoapServer.h
+%%KDSOAP_INCDIR%%/KDSoapServer/KDSoapServerAuthInterface
+%%KDSOAP_INCDIR%%/KDSoapServer/KDSoapServerAuthInterface.h
+%%KDSOAP_INCDIR%%/KDSoapServer/KDSoapServerCustomVerbRequestInterface
+%%KDSOAP_INCDIR%%/KDSoapServer/KDSoapServerCustomVerbRequestInterface.h
+%%KDSOAP_INCDIR%%/KDSoapServer/KDSoapServerGlobal
+%%KDSOAP_INCDIR%%/KDSoapServer/KDSoapServerGlobal.h
+%%KDSOAP_INCDIR%%/KDSoapServer/KDSoapServerObjectInterface
+%%KDSOAP_INCDIR%%/KDSoapServer/KDSoapServerObjectInterface.h
+%%KDSOAP_INCDIR%%/KDSoapServer/KDSoapServerRawXMLInterface
+%%KDSOAP_INCDIR%%/KDSoapServer/KDSoapServerRawXMLInterface.h
+%%KDSOAP_INCDIR%%/KDSoapServer/KDSoapThreadPool
+%%KDSOAP_INCDIR%%/KDSoapServer/KDSoapThreadPool.h
+lib/cmake/KDSoap%%KDSOAP_SUFFIX%%/KDSoap%%KDSOAP_SUFFIX%%Config.cmake
+lib/cmake/KDSoap%%KDSOAP_SUFFIX%%/KDSoap%%KDSOAP_SUFFIX%%ConfigVersion.cmake
+lib/cmake/KDSoap%%KDSOAP_SUFFIX%%/KDSoapMacros.cmake
+lib/cmake/KDSoap%%KDSOAP_SUFFIX%%/KDSoapTargets-%%CMAKE_BUILD_TYPE%%.cmake
+lib/cmake/KDSoap%%KDSOAP_SUFFIX%%/KDSoapTargets.cmake
+lib/libkdsoap%%KDSOAP_SUFFIX%%.so
+lib/libkdsoap%%KDSOAP_SUFFIX%%.so.2
+lib/libkdsoap%%KDSOAP_SUFFIX%%.so.%%SOVER%%
+lib/libkdsoap-server%%KDSOAP_SUFFIX%%.so
+lib/libkdsoap-server%%KDSOAP_SUFFIX%%.so.2
+lib/libkdsoap-server%%KDSOAP_SUFFIX%%.so.%%SOVER%%
 %%QT_MKSPECDIR%%/modules/qt_KDSoapClient.pri
 %%QT_MKSPECDIR%%/modules/qt_KDSoapServer.pri
-share/doc/KDSoap/LICENSES/BSD-3-Clause.txt
-share/doc/KDSoap/LICENSES/GPL-2.0-only.txt
-share/doc/KDSoap/LICENSES/LicenseRef-Microsoft.txt
-share/doc/KDSoap/LICENSES/LicenseRef-Novell.txt
-share/doc/KDSoap/LICENSES/LicenseRef-OASIS.txt
-share/doc/KDSoap/LICENSES/LicenseRef-SportingExchange.txt
-share/doc/KDSoap/LICENSES/MIT.txt
-share/doc/KDSoap/LICENSES/W3C.txt
-share/doc/KDSoap/README.md
-share/doc/KDSoap/kdsoap.pri
-share/doc/KDSoap/kdwsdl2cpp.pri
-share/mkspecs/features/kdsoap.prf
+share/doc/KDSoap%%KDSOAP_SUFFIX%%/LICENSES/BSD-3-Clause.txt
+share/doc/KDSoap%%KDSOAP_SUFFIX%%/LICENSES/GPL-2.0-only.txt
+share/doc/KDSoap%%KDSOAP_SUFFIX%%/LICENSES/LicenseRef-Microsoft.txt
+share/doc/KDSoap%%KDSOAP_SUFFIX%%/LICENSES/LicenseRef-Novell.txt
+share/doc/KDSoap%%KDSOAP_SUFFIX%%/LICENSES/LicenseRef-OASIS.txt
+share/doc/KDSoap%%KDSOAP_SUFFIX%%/LICENSES/LicenseRef-SportingExchange.txt
+share/doc/KDSoap%%KDSOAP_SUFFIX%%/LICENSES/MIT.txt
+share/doc/KDSoap%%KDSOAP_SUFFIX%%/LICENSES/W3C.txt
+share/doc/KDSoap%%KDSOAP_SUFFIX%%/README.md
+%%KDSOAP_QT5_ONLY%%share/doc/KDSoap/kdsoap.pri
+%%KDSOAP_QT5_ONLY%%share/doc/KDSoap/kdwsdl2cpp.pri
+%%KDSOAP_QT5_ONLY%%share/mkspecs/features/kdsoap.prf