git: 7bdeb4414c22 - main - */cmake*: hoist cmake version to cmake.mk (+)

From: Dima Panov <fluffy_at_FreeBSD.org>
Date: Tue, 08 Nov 2022 19:51:26 UTC
The branch main has been updated by fluffy:

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

commit 7bdeb4414c222cc7cd3f1e50cc9429ef3b35b19c
Author:     Dima Panov <fluffy@FreeBSD.org>
AuthorDate: 2022-11-08 19:46:42 +0000
Commit:     Dima Panov <fluffy@FreeBSD.org>
CommitDate: 2022-11-08 19:50:59 +0000

    */cmake*: hoist cmake version to cmake.mk (+)
    
    Differential Revision:  D31894 (revisited)
---
 Mk/Uses/cmake.mk               | 76 ++++++++++++++++++++++++------------------
 devel/cmake-core/Makefile      |  4 +--
 devel/cmake-doc/Makefile       |  3 +-
 devel/cmake-gui/Makefile       |  3 +-
 devel/cmake-man/Makefile       |  6 ++--
 devel/cmake/Makefile           |  2 +-
 devel/kms-cmake-utils/Makefile |  2 +-
 7 files changed, 53 insertions(+), 43 deletions(-)

diff --git a/Mk/Uses/cmake.mk b/Mk/Uses/cmake.mk
index bba26ba1c816..8c02a6475155 100644
--- a/Mk/Uses/cmake.mk
+++ b/Mk/Uses/cmake.mk
@@ -17,6 +17,7 @@
 # testing		add the test target based on ctest
 #			Additionally, CMAKE_TESTING_ON, CMAKE_TESTING_OFF, CMAKE_TESTING_ARGS, CMAKE_TESTING_TARGET
 #			can be defined to override the default values.
+# _internal		Not to be used by any other ports than the ones created from the release-tarball of cmake
 #
 #
 # Additional variables that affect cmake behaviour:
@@ -47,7 +48,9 @@
 .if !defined(_INCLUDE_USES_CMAKE_MK)
 _INCLUDE_USES_CMAKE_MK=	yes
 
-_valid_ARGS=		insource run noninja testing
+_valid_ARGS=		insource run noninja testing _internal
+
+_CMAKE_VERSION=		3.24.3
 
 # Sanity check
 .  for arg in ${cmake_ARGS}
@@ -56,24 +59,26 @@ IGNORE=	Incorrect 'USES+= cmake:${cmake_ARGS}' usage: argument [${arg}] is not r
 .    endif
 .  endfor
 
+# Check whehter other flags than only '_internal' are passed (this should be equivalent to PORT = devel/cmake-core
+.  if ${cmake_ARGS} != _internal
 CMAKE_BIN=		${LOCALBASE}/bin/cmake
 BUILD_DEPENDS+=		${CMAKE_BIN}:devel/cmake-core
 
-.  if ${cmake_ARGS:Mrun}
+.    if ${cmake_ARGS:Mrun}
 RUN_DEPENDS+=		${CMAKE_BIN}:devel/cmake-core
-.  endif
+.    endif
 
-.  if defined(WITH_DEBUG)
+.    if defined(WITH_DEBUG)
 CMAKE_BUILD_TYPE?=	Debug
-.  else
+.    else
 CMAKE_BUILD_TYPE?=	Release
-.  endif #defined(WITH_DEBUG)
+.    endif #defined(WITH_DEBUG)
 
 PLIST_SUB+=		CMAKE_BUILD_TYPE="${CMAKE_BUILD_TYPE:tl}"
 
-.  if defined(STRIP) && ${STRIP} != "" && !defined(WITH_DEBUG)
+.    if defined(STRIP) && ${STRIP} != "" && !defined(WITH_DEBUG)
 INSTALL_TARGET?=	install/strip
-.  endif
+.    endif
 
 CMAKE_ARGS+=		-DCMAKE_C_COMPILER:STRING="${CC}" \
 			-DCMAKE_CXX_COMPILER:STRING="${CXX}" \
@@ -94,77 +99,84 @@ CMAKE_ARGS+=		-DCMAKE_C_COMPILER:STRING="${CC}" \
 			-DFETCHCONTENT_FULLY_DISCONNECTED:BOOL=ON
 
 # Handle the option-like CMAKE_ON and CMAKE_OFF lists.
-.  for _bool_kind in ON OFF
-.    if defined(CMAKE_${_bool_kind})
+.    for _bool_kind in ON OFF
+.      if defined(CMAKE_${_bool_kind})
 CMAKE_ARGS+=		${CMAKE_${_bool_kind}:C/.*/-D&:BOOL=${_bool_kind}/}
-.    endif
-.  endfor
+.      endif
+.    endfor
 
 CMAKE_INSTALL_PREFIX?=	${PREFIX}
 
-.  if defined(BATCH) || defined(PACKAGE_BUILDING)
+.    if defined(BATCH) || defined(PACKAGE_BUILDING)
 CMAKE_NOCOLOR=		yes
-.  endif
+.    endif
 
-.  if defined(CMAKE_NOCOLOR)
+.    if defined(CMAKE_NOCOLOR)
 CMAKE_ARGS+=		-DCMAKE_COLOR_MAKEFILE:BOOL=OFF
-.  endif
+.    endif
 
 _CMAKE_MSG=		"===>  Performing in-source build"
 CMAKE_SOURCE_PATH?=	${WRKSRC}
 
-.  if empty(cmake_ARGS:Minsource)
+.    if empty(cmake_ARGS:Minsource)
 _CMAKE_MSG=		"===>  Performing out-of-source build"
 CONFIGURE_WRKSRC=	${WRKDIR}/.build
 BUILD_WRKSRC?=		${CONFIGURE_WRKSRC}
 INSTALL_WRKSRC?=	${CONFIGURE_WRKSRC}
 TEST_WRKSRC?=		${CONFIGURE_WRKSRC}
-.  endif
+.    endif
 
 # By default we use the ninja generator.
 #  Except, if cmake:run is set (cmake not wanted as generator)
 #             fortran is used, as the ninja-generator does not handle it.
 #             or if CONFIGURE_WRKSRC does not match  BUILD_WRKSRC or INSTALL_WRKSRC
 #             as the build.ninja file won't be where ninja expects it.
-.  if empty(cmake_ARGS:Mnoninja) && empty(cmake_ARGS:Mrun) && empty(USES:Mfortran)
-.    if "${CONFIGURE_WRKSRC}" == "${BUILD_WRKSRC}" && "${CONFIGURE_WRKSRC}" == "${INSTALL_WRKSRC}"
+.    if empty(cmake_ARGS:Mnoninja) && empty(cmake_ARGS:Mrun) && empty(USES:Mfortran)
+.      if "${CONFIGURE_WRKSRC}" == "${BUILD_WRKSRC}" && "${CONFIGURE_WRKSRC}" == "${INSTALL_WRKSRC}"
 # USES=gmake sets MAKE_CMD and ninja.mk does too (it also messes with MAKEFILE and MAKE_CMD).
-.      if ! empty(USES:Mgmake)
+.        if ! empty(USES:Mgmake)
 BROKEN=		USES=gmake is incompatible with cmake's ninja-generator (try cmake:noninja)
-.      endif
+.        endif
 # USES=emacs appends EMACS=<path> to MAKE_ARGS, which then get passed to ninja.
 # Since ninja doesn't support that kind of variable-setting on the command-line,
 # it errors out.
-.      if ! empty(USES:Memacs)
+.        if ! empty(USES:Memacs)
 BROKEN=		USES=emacs is incompatible with cmake's ninja-generator (try cmake:noninja)
-.      endif
+.        endif
 .      include "${USESDIR}/ninja.mk"
+.      endif
 .    endif
-.  endif
 
-.  if !target(do-configure)
+.    if !target(do-configure)
 do-configure:
 	@${ECHO_MSG} ${_CMAKE_MSG}
 	${MKDIR} ${CONFIGURE_WRKSRC}
 	@cd ${CONFIGURE_WRKSRC}; ${SETENV} ${CONFIGURE_ENV} ${CMAKE_BIN} ${CMAKE_ARGS} ${CMAKE_SOURCE_PATH}
-.  endif
+.    endif
 
-.  if !target(do-test) && ${cmake_ARGS:Mtesting}
+.    if !target(do-test) && ${cmake_ARGS:Mtesting}
 CMAKE_TESTING_ON?=		BUILD_TESTING
 CMAKE_TESTING_TARGET?=		test
 
 # Handle the option-like CMAKE_TESTING_ON and CMAKE_TESTING_OFF lists.
-.    for _bool_kind in ON OFF
-.      if defined(CMAKE_TESTING_${_bool_kind})
+.      for _bool_kind in ON OFF
+.        if defined(CMAKE_TESTING_${_bool_kind})
 CMAKE_TESTING_ARGS+=		${CMAKE_TESTING_${_bool_kind}:C/.*/-D&:BOOL=${_bool_kind}/}
-.      endif
-.    endfor
+.        endif
+.      endfor
 
 do-test:
 	@cd ${BUILD_WRKSRC} && \
 		${SETENV} ${CONFIGURE_ENV} ${CMAKE_BIN} ${CMAKE_ARGS} ${CMAKE_TESTING_ARGS} ${CMAKE_SOURCE_PATH} && \
 		${SETENV} ${MAKE_ENV} ${MAKE_CMD} ${_MAKE_JOBS} ${MAKE_ARGS} ${ALL_TARGET} && \
 		${SETENV} ${MAKE_ENV} ${MAKE_CMD} ${MAKE_ARGS} ${CMAKE_TESTING_TARGET}
+.    endif
+.  endif
+
+.  if !empty(cmake_ARGS:M_internal)
+MASTER_SITES?=	https://github.com/Kitware/CMake/releases/download/v${DISTVERSION}/ \
+		https://www.cmake.org/files/v${DISTVERSION}/
+
 .  endif
 
 .endif #!defined(_INCLUDE_USES_CMAKE_MK)
diff --git a/devel/cmake-core/Makefile b/devel/cmake-core/Makefile
index e26de76210d9..4561410066f5 100644
--- a/devel/cmake-core/Makefile
+++ b/devel/cmake-core/Makefile
@@ -1,6 +1,6 @@
 PORTNAME=	cmake
 # Remember to update devel/cmake-doc and devel/cmake-gui as well.
-DISTVERSION=	3.24.3
+DISTVERSION=	${_CMAKE_VERSION}
 CATEGORIES=	devel
 MASTER_SITES=	https://github.com/Kitware/CMake/releases/download/v${DISTVERSION}/ \
 		https://www.cmake.org/files/v${PORTVERSION}/
@@ -19,7 +19,7 @@ LIB_DEPENDS=	libcurl.so:ftp/curl \
 		libuv.so:devel/libuv \
 		librhash.so:security/rhash
 
-USES=		compiler:c++11-lang cpe ncurses
+USES=		cmake:_internal compiler:c++11-lang cpe ncurses
 
 CPE_VENDOR=	cmake_project
 HAS_CONFIGURE=	yes
diff --git a/devel/cmake-doc/Makefile b/devel/cmake-doc/Makefile
index c7c2f79f4a1e..4da5ba04af7d 100644
--- a/devel/cmake-doc/Makefile
+++ b/devel/cmake-doc/Makefile
@@ -1,7 +1,6 @@
 PORTNAME=	cmake
-DISTVERSION=	3.24.3
+DISTVERSION=	${_CMAKE_VERSION}
 CATEGORIES=	devel
-MASTER_SITES=	https://www.cmake.org/files/v${PORTVERSION:R}/
 PKGNAMESUFFIX=	-doc
 
 MAINTAINER=	kde@FreeBSD.org
diff --git a/devel/cmake-gui/Makefile b/devel/cmake-gui/Makefile
index f3c21bf90e82..8fc18a76114a 100644
--- a/devel/cmake-gui/Makefile
+++ b/devel/cmake-gui/Makefile
@@ -1,7 +1,6 @@
 PORTNAME=	cmake
-DISTVERSION=	3.24.3
+DISTVERSION=	${_CMAKE_VERSION}
 CATEGORIES=	devel
-MASTER_SITES=	https://www.cmake.org/files/v${PORTVERSION:R}/
 PKGNAMESUFFIX=	-gui-${FLAVOR}
 
 MAINTAINER=	kde@FreeBSD.org
diff --git a/devel/cmake-man/Makefile b/devel/cmake-man/Makefile
index f20282e33ad1..52cc7adfd9f1 100644
--- a/devel/cmake-man/Makefile
+++ b/devel/cmake-man/Makefile
@@ -1,8 +1,6 @@
 PORTNAME=	cmake
-DISTVERSION=	3.24.3
+DISTVERSION=	${_CMAKE_VERSION}
 CATEGORIES=	devel
-MASTER_SITES=	https://github.com/Kitware/CMake/releases/download/v${DISTVERSION}/ \
-		https://www.cmake.org/files/v${DISTVERSION}/
 PKGNAMESUFFIX=	-man
 
 MAINTAINER=	kde@FreeBSD.org
@@ -11,6 +9,8 @@ WWW=		https://www.cmake.org/
 
 LICENSE=	BSD3CLAUSE
 
+DISTINFO_FILE=	${.CURDIR}/../cmake-core/distinfo
+
 BUILD_DEPENDS=	sphinx-build:textproc/py-sphinx
 
 USES=		cmake
diff --git a/devel/cmake/Makefile b/devel/cmake/Makefile
index 61c8814a97e2..fe3cc2a9ae1a 100644
--- a/devel/cmake/Makefile
+++ b/devel/cmake/Makefile
@@ -1,5 +1,5 @@
 PORTNAME=	cmake
-DISTVERSION=	3.24.3
+DISTVERSION=	${_CMAKE_VERSION}
 CATEGORIES=	devel
 
 MAINTAINER=	kde@FreeBSD.org
diff --git a/devel/kms-cmake-utils/Makefile b/devel/kms-cmake-utils/Makefile
index 5bb55a8231e7..05010bb4dc08 100644
--- a/devel/kms-cmake-utils/Makefile
+++ b/devel/kms-cmake-utils/Makefile
@@ -16,6 +16,6 @@ GH_ACCOUNT=	Kurento
 
 NO_ARCH=	yes
 
-PLIST_SUB=	CMAKE_VERSION=3.24
+PLIST_SUB=	CMAKE_VERSION=${_CMAKE_VERSION:R}
 
 .include <bsd.port.mk>