During g2k22 I looked at cmake.port.mk. The following change includes 3
main parts:
- Use cmake(1) and ctest(1)
cmake(1) controls the build and install task/jobs. This is the way
CMake prefers and it works very well for us. Full bulk build passed!
Victims already fixed.
- USE_NINJA
Is no longer necessary but still optional (requested by sthen@). This diff
removes all usage. Expect www/h2o (see at ports@) This is possible because of
the use of cmake(1).
- verbose
IMHO It helps use to see easier what's going wrong and show up if other
languages are calling. Example below.
Before:
===> Regression tests for cmark-0.30.2p0
Test project /usr/ports/pobj/cmark-0.30.2/build-amd64
Start 1: api_test
1/9 Test #1: api_test ......................... Passed 0.01 sec
Start 2: html_normalization
2/9 Test #2: html_normalization ............... Passed 0.16 sec
Start 3: spectest_library
With the new option:
===> Regression tests for cmark-0.30.2p0
UpdateCTestConfiguration from :/usr/ports/pobj/cmark-0.30.2/build-amd64/DartConfiguration.tcl 21:09:28 [17/151]
Test project /usr/ports/pobj/cmark-0.30.2/build-amd64
Constructing a list of tests
Done constructing a list of tests
Updating test list for fixtures
Added 0 tests to meet fixture requirements
Checking test dependency graph...
Checking test dependency graph end
test 1
Start 1: api_test
1: Test command: /usr/ports/pobj/cmark-0.30.2/build-amd64/api_test/api_test
1: Working Directory: /usr/ports/pobj/cmark-0.30.2/build-amd64/testdir
1: Test timeout computed to be: 10000000
1: 539 tests passed, 0 failed, 0 skipped
1: PASS
1/9 Test #1: api_test ......................... Passed 0.01 sec
test 2
Start 2: html_normalization
2: Test command: /usr/local/bin/python3.9 "-m" "doctest" "/usr/ports/pobj/cmark-0.30.2/cmark-0.30.2/test/normalize.py"
2: Working Directory: /usr/ports/pobj/cmark-0.30.2/build-amd64/testdir
2: Test timeout computed to be: 10000000
2/9 Test #2: html_normalization ............... Passed 0.16 sec
This diff has survived a full bulk build. (THANKS tb@) Victims already fixed
and I got an OK from tb@
Thoughts, other OKs?
Rafael
Index: devel/cmake/cmake.port.mk
===================================================================
RCS file: /cvs/ports/devel/cmake/cmake.port.mk,v
retrieving revision 1.75
diff -u -p -r1.75 cmake.port.mk
--- devel/cmake/cmake.port.mk 6 Jun 2022 09:31:51 -0000 1.75
+++ devel/cmake/cmake.port.mk 1 Sep 2022 18:56:54 -0000
@@ -16,26 +16,22 @@ MAKE_ENV += MODCMAKE_USE_SHARED_LIBS=yes
USE_NINJA ?= Yes
.if ${USE_NINJA:L} == "yes"
-BUILD_DEPENDS += devel/ninja>=1.5.1
-NINJA ?= ninja
-NINJA_FLAGS ?= -v -j ${MAKE_JOBS}
+BUILD_DEPENDS += devel/ninja
.elif ${USE_NINJA:L} == "samurai"
BUILD_DEPENDS += devel/samurai
-NINJA ?= samu
-NINJA_FLAGS ?= -v -j ${MAKE_JOBS}
-CONFIGURE_ARGS += -DCMAKE_MAKE_PROGRAM=${NINJA}
+CONFIGURE_ARGS += -DCMAKE_MAKE_PROGRAM=samu
.endif
.if ${USE_NINJA:L} == "yes" || ${USE_NINJA:L} == "samurai"
_MODCMAKE_GEN = Ninja
MODCMAKE_BUILD_TARGET = cd ${WRKBUILD} && exec ${SETENV} ${MAKE_ENV} \
- ${NINJA} ${NINJA_FLAGS} ${ALL_TARGET}
+ cmake --build ${WRKBUILD} ${_MAKE_VERBOSE} -j ${MAKE_JOBS}
MODCMAKE_INSTALL_TARGET = cd ${WRKBUILD} && exec ${SETENV} ${MAKE_ENV} \
- ${FAKE_SETUP} ${NINJA} ${NINJA_FLAGS} ${FAKE_TARGET}
+ ${FAKE_SETUP} cmake --install ${WRKBUILD}
MODCMAKE_TEST_TARGET = cd ${WRKBUILD} && exec ${SETENV} ${ALL_TEST_ENV} \
- ${NINJA} ${NINJA_FLAGS} ${TEST_FLAGS} ${TEST_TARGET}
+ ctest ${_MAKE_VERBOSE} -j ${MAKE_JOBS}
.if !target(do-build)
do-build:
@@ -99,7 +95,6 @@ CONFIGURE_ENV += MODTK_VERSION=${MODTK_V
MODTK_LIB=${MODTK_LIB}
.endif
-
.if ! empty(MODCMAKE_LDFLAGS)
# https://cmake.org/cmake/help/latest/envvar/LDFLAGS.html
# Will only be used by CMake on the first configuration to determine the
@@ -120,9 +115,12 @@ MODCMAKE_configure = cd ${WRKBUILD} && $
CC="${CC}" CFLAGS="${CFLAGS}" \
CXX="${CXX}" CXXFLAGS="${CXXFLAGS}" \
${CONFIGURE_ENV} ${LOCALBASE}/bin/cmake \
+ -B ${WRKBUILD} \
+ -S ${WRKSRC} \
+ -G ${_MODCMAKE_GEN} \
-DCMAKE_SKIP_INSTALL_ALL_DEPENDENCY=ON \
-DCMAKE_SUPPRESS_REGENERATION=ON \
- -G ${_MODCMAKE_GEN} ${CONFIGURE_ARGS} ${WRKSRC}
+ ${CONFIGURE_ARGS}
.if !defined(CONFIGURE_ARGS) || ! ${CONFIGURE_ARGS:M*CMAKE_BUILD_TYPE*}
. if ${MODCMAKE_DEBUG:L} == "yes"
@@ -137,11 +135,6 @@ SUBST_VARS += MODCMAKE_BUILD_SUFFIX
SEPARATE_BUILD ?= Yes
-TEST_TARGET ?= test
-
-MODCMAKE_WANTCOLOR ?= No
-MODCMAKE_VERBOSE ?= Yes
-
# https://cmake.org/cmake/help/latest/command/enable_language.html
# 3.23: Swift OBJCXX OBJC ISPC HIP Fortran CXX CUDA C
_CMAKE_PROCESSING_LANGUAGE = ASM OBJCXX OBJC Fortran CXX C
@@ -163,10 +156,14 @@ CONFIGURE_ARGS := -DCMAKE_ADDR2LINE:FILE
CONFIGURE_ENV += MODCMAKE_PORT_BUILD=yes
MAKE_ENV += MODCMAKE_PORT_BUILD=yes
+MODCMAKE_WANTCOLOR ?= No
+
.if ${MODCMAKE_WANTCOLOR:L} == "yes" && defined(TERM)
MAKE_ENV += TERM=${TERM}
.endif
+MODCMAKE_VERBOSE ?= Yes
+
.if ${MODCMAKE_VERBOSE:L} == "yes"
-MAKE_ENV += VERBOSE=1
+_MAKE_VERBOSE = --verbose
.endif
Index: games/openclonk/Makefile
===================================================================
RCS file: /cvs/ports/games/openclonk/Makefile,v
retrieving revision 1.13
diff -u -p -r1.13 Makefile
--- games/openclonk/Makefile 28 May 2022 06:20:00 -0000 1.13
+++ games/openclonk/Makefile 1 Sep 2022 18:56:54 -0000
@@ -49,9 +49,6 @@ CONFIGURE_ARGS += -DFREETYPE_INCLUDE_DIR
CXXFLAGS += -I${LOCALBASE}/include -I${X11BASE}/include
MODCMAKE_LDFLAGS = -L${LOCALBASE}/lib
-# Random, intermittent failures with Ninja during fake.
-USE_NINJA = No
-
NO_TEST = Yes
WRKDIST = ${WRKDIR}/openclonk-release-${V}-src
Index: math/mlpack/Makefile
===================================================================
RCS file: /cvs/ports/math/mlpack/Makefile,v
retrieving revision 1.22
diff -u -p -r1.22 Makefile
--- math/mlpack/Makefile 31 Mar 2022 17:16:30 -0000 1.22
+++ math/mlpack/Makefile 1 Sep 2022 18:56:54 -0000
@@ -89,9 +89,6 @@ CONFIGURE_ARGS += -DCMAKE_DISABLE_FIND_
-DBUILD_PYTHON_BINDINGS=ON \
-DCMAKE_INSTALL_MANDIR=${PREFIX}/man/man1
-# naddy reported a burp
-USE_NINJA = No
-
# XXX note that some of the tests WILL fail. You've got to love probabilistic
# software...
TEST_ENV = CTEST_OUTPUT_ON_FAILURE=1
Index: math/plplot/Makefile
===================================================================
RCS file: /cvs/ports/math/plplot/Makefile,v
retrieving revision 1.71
diff -u -p -r1.71 Makefile
--- math/plplot/Makefile 26 Apr 2022 14:48:53 -0000 1.71
+++ math/plplot/Makefile 1 Sep 2022 18:56:54 -0000
@@ -38,9 +38,6 @@ myRUN_DEPENDS = print/ghostscript/gnu-fo
MODULES += devel/cmake
-# Until the cmake ninja generator supports fortran
-USE_NINJA = No
-
CONFIGURE_ARGS = -D ENABLE_ada=OFF \
-D ENABLE_cxx=ON \
-D ENABLE_d=OFF \
No comments:
Post a Comment