git: 7b8357c02dce - main - devel/thrift*: fix double installation of cmake files

From: Matthias Fechner <mfechner_at_FreeBSD.org>
Date: Sat, 29 Mar 2025 04:44:03 UTC
The branch main has been updated by mfechner:

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

commit 7b8357c02dce9e3c1aa6b4f1ce380b3c98f6abc2
Author:     Matthias Fechner <mfechner@FreeBSD.org>
AuthorDate: 2025-03-24 16:15:42 +0000
Commit:     Matthias Fechner <mfechner@FreeBSD.org>
CommitDate: 2025-03-29 04:43:46 +0000

    devel/thrift*: fix double installation of cmake files
    
    This will resolve the issue that you cannot install the
    compile (devel/thrift) with the c-binding (devel/thrift-c_glib.
    
    Reported by:    marklmi@yahoo.com
---
 devel/thrift-c_glib/Makefile  |  7 ++++---
 devel/thrift-c_glib/pkg-plist |  2 --
 devel/thrift-cpp/Makefile     |  9 +++++----
 devel/thrift-cpp/pkg-plist    |  2 --
 devel/thrift/Makefile         |  3 ++-
 devel/thrift/bsd.thrift.mk    | 20 ++++++++++++++++++++
 devel/thrift/pkg-plist        |  1 +
 7 files changed, 32 insertions(+), 12 deletions(-)

diff --git a/devel/thrift-c_glib/Makefile b/devel/thrift-c_glib/Makefile
index cc7cd7027178..88e1f46e2639 100644
--- a/devel/thrift-c_glib/Makefile
+++ b/devel/thrift-c_glib/Makefile
@@ -4,21 +4,22 @@ PORTEPOCH=	1
 CATEGORIES=	devel
 MASTER_SITES=	APACHE/thrift/${PORTVERSION}
 DISTNAME=	thrift-${PORTVERSION}
+PKGNAMESUFFIX=	-c_glib
 
 MAINTAINER=	ports@FreeBSD.org
 COMMENT=	C glib interface to Thrift
 WWW=		https://thrift.apache.org/
 
-PKGNAMESUFFIX=	-c_glib
-
 BUILDIR=	${WRKDIR}/${DISTNAME}/lib/c_glib
 
 DISTINFO_FILE=	${.CURDIR}/../thrift/distinfo
 
+LIB_DEPENDS=	libevent.so:devel/libevent
+
 USES=		bison cmake compiler:c++11-lang cpe gnome pathfix \
 		pkgconfig ssl
 CPE_VENDOR=	apache
-CMAKE_ON=	BUILD_C_GLIB BUILD_SHARED_LIBS
+CMAKE_ON=	BUILD_C_GLIB
 CMAKE_OFF=	BUILD_CPP BUILD_HASKELL BUILD_JAVA BUILD_JAVASCRIPT \
 		BUILD_NODEJS BUILD_PYTHON
 USE_GNOME=	glib20
diff --git a/devel/thrift-c_glib/pkg-plist b/devel/thrift-c_glib/pkg-plist
index c9ef9f2c9220..2ba49fd7662d 100644
--- a/devel/thrift-c_glib/pkg-plist
+++ b/devel/thrift-c_glib/pkg-plist
@@ -37,8 +37,6 @@ lib/libthrift_c_glib.so
 lib/libthrift_c_glib.so.%%PORTVERSION%%
 lib/libthrift_c_glib_zlib.so
 lib/libthrift_c_glib_zlib.so.%%PORTVERSION%%
-lib/cmake/thrift/ThriftConfig.cmake
-lib/cmake/thrift/ThriftConfigVersion.cmake
 lib/cmake/thrift/thrift_c_glibTargets-%%CMAKE_BUILD_TYPE%%.cmake
 lib/cmake/thrift/thrift_c_glibTargets.cmake
 lib/cmake/thrift/thrift_c_glib_zlibTargets-%%CMAKE_BUILD_TYPE%%.cmake
diff --git a/devel/thrift-cpp/Makefile b/devel/thrift-cpp/Makefile
index 0ecfb5c497b6..054d468fd78e 100644
--- a/devel/thrift-cpp/Makefile
+++ b/devel/thrift-cpp/Makefile
@@ -16,16 +16,17 @@ BROKEN_i386=	undefined reference to 'boost::atomics::detail::lockpool::scoped_lo
 LIB_DEPENDS=	libboost_system.so:devel/boost-libs \
 		libevent.so:devel/libevent
 
-DISTINFO_FILE=		${.CURDIR}/../thrift/distinfo
-
 USES=			bison cmake pkgconfig compiler:c++11-lang cpe \
 			pathfix ssl
 CPE_VENDOR=		apache
 USE_LDCONFIG=		yes
+
+CMAKE_ON=		BUILD_CPP
+CMAKE_OFF=		BUILD_C_GLIB BUILD_JAVA BUILD_JAVASCRIPT BUILD_NODEJS BUILD_PYTHON BUILD_HASKELL BUILD_TESTING
+
 MAKE_JOBS_UNSAFE=	yes
+DISTINFO_FILE=		${.CURDIR}/../thrift/distinfo
 PLIST_SUB=		PORTVERSION="${THRIFT_PORTVERSION}"
-CMAKE_ON=	BUILD_CPP BUILD_SHARED_LIBS
-CMAKE_OFF=	BUILD_C_GLIB BUILD_JAVA BUILD_JAVASCRIPT BUILD_NODEJS BUILD_PYTHON BUILD_HASKELL
 
 .include <bsd.port.pre.mk>
 
diff --git a/devel/thrift-cpp/pkg-plist b/devel/thrift-cpp/pkg-plist
index d50af49a4d15..2af28761285a 100644
--- a/devel/thrift-cpp/pkg-plist
+++ b/devel/thrift-cpp/pkg-plist
@@ -105,8 +105,6 @@ lib/libthriftnb.so.%%PORTVERSION%%
 lib/libthriftz.so
 lib/libthriftz.so.0
 lib/libthriftz.so.%%PORTVERSION%%
-lib/cmake/thrift/ThriftConfig.cmake
-lib/cmake/thrift/ThriftConfigVersion.cmake
 lib/cmake/thrift/thriftTargets-%%CMAKE_BUILD_TYPE%%.cmake
 lib/cmake/thrift/thriftTargets.cmake
 lib/cmake/thrift/thriftnbTargets-%%CMAKE_BUILD_TYPE%%.cmake
diff --git a/devel/thrift/Makefile b/devel/thrift/Makefile
index 5fe44425b4bf..2022e9fc2c87 100644
--- a/devel/thrift/Makefile
+++ b/devel/thrift/Makefile
@@ -11,6 +11,8 @@ WWW=		https://thrift.apache.org/
 
 LICENSE=	APACHE20
 
+LIB_DEPENDS=	libevent.so:devel/libevent
+
 USES=		bison cmake compiler:c++11-lang cpe pkgconfig
 CPE_VENDOR=	apache
 USE_LDCONFIG=	yes
@@ -20,7 +22,6 @@ USE_LDCONFIG=	yes
 # For Perl support, use devel/p5-Thrift.
 # For Python support, use devel/py-thrift.
 # For Ruby support, use devel/rubygem-thrift.
-# For PHP support, use devel/php5-thrift.
 # For nodejs support, use devel/node-thrift.
 # Other languages are not yet supported, please feel free to contribute
 # using one of the leaf ports as an example.
diff --git a/devel/thrift/bsd.thrift.mk b/devel/thrift/bsd.thrift.mk
index 048e2fd3bd14..b165153013fa 100644
--- a/devel/thrift/bsd.thrift.mk
+++ b/devel/thrift/bsd.thrift.mk
@@ -4,7 +4,27 @@
 # see $PORTSDIR/devel/thrift for examples 
 THRIFT_PORTVERSION=	0.16.0
 
+LICENSE=		APACHE20
+
 MASTER_SITE_APACHE+=	https://archive.apache.org/dist/%SUBDIR%/ 
 CONFIGURE_ARGS+=	\
 		--without-tests
 
+# Make sure we install thrift compiler related files not with child packages
+.if !empty(PKGNAMESUFFIX) || ${PORTNAME} != "thrift"
+_USES_install+= 900:thrift-post-install
+BUILD_DEPENDS+=	thrift>=${PORTVERSION}:devel/thrift
+RUN_DEPENDS+=	thrift>=${PORTVERSION}:devel/thrift
+
+CMAKE_ARGS+=	-DTHRIFT_COMPILER=${PREFIX}/bin/thrift
+CMAKE_ON+=	BUILD_SHARED_LIBS
+CMAKE_OFF+=	BUILD_COMPILER
+
+thrift-post-install:
+	${RM} ${STAGEDIR}${PREFIX}/lib/cmake/thrift/FindLibevent.cmake
+	${RM} ${STAGEDIR}${PREFIX}/lib/cmake/thrift/ThriftConfig.cmake
+	${RM} ${STAGEDIR}${PREFIX}/lib/cmake/thrift/ThriftConfigVersion.cmake
+.else
+MAKE_ON+=	BUILD_COMPILER
+CMAKE_OFF+=	BUILD_SHARED_LIB
+.endif
diff --git a/devel/thrift/pkg-plist b/devel/thrift/pkg-plist
index 2b75cc1521be..c5f2e4117f62 100644
--- a/devel/thrift/pkg-plist
+++ b/devel/thrift/pkg-plist
@@ -1,3 +1,4 @@
 bin/thrift
+lib/cmake/thrift/FindLibevent.cmake
 lib/cmake/thrift/ThriftConfig.cmake
 lib/cmake/thrift/ThriftConfigVersion.cmake