On Thu, Sep 01, 2022 at 09:25:56PM +0200, Rafael Sadowski wrote:
> 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.

OK kn

> 
> 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 \
> 

Reply via email to