[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[bug#70031] [PATCH v2 00/65] Use CMake in build-system/cmake.
From: |
Greg Hogan |
Subject: |
[bug#70031] [PATCH v2 00/65] Use CMake in build-system/cmake. |
Date: |
Tue, 22 Oct 2024 18:08:50 +0000 |
This update follows the original submission in March based on a mailing
list discussion from 3+ years ago regarding cmake-build-system tests not
running in parallel.
https://lists.gnu.org/archive/html/guix-devel/2021-10/msg00055.html
Additional improvements have made, allowing packages to use CMake
features by default or by configuration rather than rewriting phases:
1) Tests can run in parallel. Make (from the gnu-build-system) treats
ctest as a single target so cannot parallelize tests. By directly
running ctest the tests are run with optional parallelism.
2) Alternative generators, namely Ninja. When configured with an
alternative generator the CMake build, check, and install commands will
use that generator and the package need not replace each phase. This is
now simply accomplished with a #:generator argument.
3) Adds a #:test-exclude parameter to cmake-build-system, updates
several packages to use this, and forces CMake to disable parallelism
when :#test-parallelism is #false. Both changes were recommended by
Zheng Junjie.
4) The CMake variable BUILD_TESTING is now set to the value of the build
system's 'tests?' field which allows packages to optionally skip
building tests. Furthermore, the CMake variables are stored into and
loaded via a 'cache' file to prevent warnings about unused variables.
5) Updates CMake and pins packages with CMake as a native-input to use
cmake-minimal.
Greg Hogan (65):
build-system/cmake: Parallelize tests using ctest.
build-system/cmake: Add generator fields.
build-system/qt: Add generator fields.
build-system/cmake: Add generator.
build-system/cmake: Add build.
build-system/cmake: Add install.
build-system/cmake: Add test-exclude fields.
build-system/qt: Add test-exclude fields.
build-system/cmake: Add test exclusion.
build-system/cmake: Optionally build tests.
build-system/cmake: Include ninja.
build-system/qt: Include ninja.
gnu: astroid: Remove custom phases.
gnu: rdma-core: Remove custom phases.
gnu: fish: Fix tests.
gnu: igraph: Fix tests.
gnu: inkscape: Fix tests.
gnu: inkscape/stable: Fix tests.
gnu: kirigami: Fix tests.
gnu: kirigami-5: Disable tests.
gnu: vigra: Fix tests.
gnu: cpp-httplib: Disable parallel tests.
gnu: evolution-data-server: Disable parallel tests.
gnu: kservice: Disable parallel tests.
gnu: libical: Disable parallel tests.
gnu: libmedfile: Disable parallel tests.
gnu: mbedtls-lts: Disable parallel tests.
gnu: scotch: Disable parallel tests.
gnu: srt: Disable parallel tests.
gnu: vulkan-loader: Disable parallel tests.
gnu: websocketpp: Disable parallel tests.
gnu: dbus-cxx: Use #:test-exclude.
gnu: hotspot: Use #:test-exclude.
gnu: kconfig-5: Use #:test-exclude.
gnu: nextcloud-client: Use #:test-exclude.
gnu: pdal: Use :#test-exclude and disable parallel tests.
gnu: qxmpp: Use #:test-exclude.
gnu: simgear: Use #:test-exclude.
gnu: cmake: Update to 3.30.5.
gnu: asymptote: Pin CMake dependency.
gnu: conan: Pin CMake dependency.
gnu: entangle: Pin CMake dependency.
gnu: go-mvdan-cc-editorconfig: Pin CMake dependency.
gnu: libdecor: Pin CMake dependency.
gnu: liblxi: Pin CMake dependency.
gnu: lxi-tools: Pin CMake dependency.
gnu: pantheon-calculator: Pin CMake dependency.
gnu: pantheon-calendar: Pin CMake dependency.
gnu: python-awkward-cpp: Pin CMake dependency.
gnu: python-contourpy: Pin CMake dependency.
gnu: python-keystone-engine: Pin CMake dependency.
gnu: python-lief: Pin CMake dependency.
gnu: python-optree: Pin CMake dependency.
gnu: python-pivy: Pin CMake dependency.
gnu: python-pytorch: Pin CMake dependency.
gnu: python-symengine: Pin CMake dependency.
gnu: raider: Pin CMake dependency.
gnu: siril: Pin CMake dependency.
gnu: soqt: Pin CMake dependency.
gnu: syndication-domination: Pin CMake dependency.
gnu: tigervnc-server: Pin CMake dependency.
gnu: trinityrnaseq: Pin CMake dependency.
gnu: unicorn: Pin CMake dependency.
gnu: wavbreaker: Pin CMake dependency.
gnu: xffm+: Pin CMake dependency.
doc/guix.texi | 33 +++++---
gnu/packages/astronomy.scm | 2 +-
gnu/packages/bioinformatics.scm | 4 +-
gnu/packages/calendar.scm | 1 +
gnu/packages/cmake.scm | 40 +++++-----
gnu/packages/cpp.scm | 3 +-
gnu/packages/emulators.scm | 4 +-
gnu/packages/engineering.scm | 3 +-
gnu/packages/freedesktop.scm | 2 +-
gnu/packages/games.scm | 8 +-
gnu/packages/geo.scm | 9 +--
gnu/packages/glib.scm | 10 +--
gnu/packages/gnome.scm | 5 +-
gnu/packages/golang-xyz.scm | 2 +-
gnu/packages/graph.scm | 10 ++-
gnu/packages/hardware.scm | 4 +-
gnu/packages/image.scm | 14 +++-
gnu/packages/inkscape.scm | 12 ++-
gnu/packages/kde-frameworks.scm | 21 +++--
gnu/packages/linux.scm | 59 ++++++--------
gnu/packages/machine-learning.scm | 2 +-
gnu/packages/mail.scm | 38 +++------
gnu/packages/maths.scm | 3 +-
gnu/packages/messaging.scm | 17 ++--
gnu/packages/mp3.scm | 2 +-
gnu/packages/networking.scm | 3 +-
gnu/packages/package-management.scm | 2 +-
gnu/packages/pantheon.scm | 4 +-
gnu/packages/photo.scm | 2 +-
gnu/packages/plotutils.scm | 2 +-
gnu/packages/python-xyz.scm | 12 +--
gnu/packages/qt.scm | 2 +-
gnu/packages/shells.scm | 9 +++
gnu/packages/sync.scm | 7 +-
gnu/packages/syndication.scm | 2 +-
gnu/packages/tls.scm | 3 +-
gnu/packages/vnc.scm | 2 +-
gnu/packages/vulkan.scm | 1 +
gnu/packages/web.scm | 3 +-
guix/build-system/cmake.scm | 12 +++
guix/build-system/qt.scm | 12 +++
guix/build/cmake-build-system.scm | 120 +++++++++++++++++++---------
42 files changed, 293 insertions(+), 213 deletions(-)
base-commit: 5b0afaca8a67402667ae620cc26eef06fbe144cb
--
2.46.1
- [bug#70031] [PATCH v2 00/65] Use CMake in build-system/cmake.,
Greg Hogan <=
- [bug#70031] [PATCH v2 01/65] build-system/cmake: Parallelize tests using ctest., Greg Hogan, 2024/10/22
- [bug#70031] [PATCH v2 02/65] build-system/cmake: Add generator fields., Greg Hogan, 2024/10/22
- [bug#70031] [PATCH v2 03/65] build-system/qt: Add generator fields., Greg Hogan, 2024/10/22
- [bug#70031] [PATCH v2 08/65] build-system/qt: Add test-exclude fields., Greg Hogan, 2024/10/22
- [bug#70031] [PATCH v2 09/65] build-system/cmake: Add test exclusion., Greg Hogan, 2024/10/22
- [bug#70031] [PATCH v2 05/65] build-system/cmake: Add build., Greg Hogan, 2024/10/22
- [bug#70031] [PATCH v2 07/65] build-system/cmake: Add test-exclude fields., Greg Hogan, 2024/10/22
- [bug#70031] [PATCH v2 06/65] build-system/cmake: Add install., Greg Hogan, 2024/10/22
- [bug#70031] [PATCH v2 11/65] build-system/cmake: Include ninja., Greg Hogan, 2024/10/22
- [bug#70031] [PATCH v2 12/65] build-system/qt: Include ninja., Greg Hogan, 2024/10/22