From c53da8704b64e835d563b1b1ca64a44f0d1d9746 Mon Sep 17 00:00:00 2001 From: Greg Hogan Date: Tue, 22 Apr 2025 19:04:46 +0000 Subject: [PATCH] gnu: spdlog: Include benchmarks. * gnu/packages/logging.scm (spdlog)[outputs]: Add "bin". [arguments]<#:configure-flags>: Enable benchmark builds. <#:phases>: Add 'patch phase to insert install commands. [inputs]: Add googlebenchmark. Change-Id: Ia0494c1efffb13bcb5dcd470372cf5427f003857 --- gnu/packages/logging.scm | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/gnu/packages/logging.scm b/gnu/packages/logging.scm index 7425cd2740b55e361d5b4e268324cf5783e0ac2c..8c5e517f213fbd359276339ffce3bf666b9507d2 100644 --- a/gnu/packages/logging.scm +++ b/gnu/packages/logging.scm @@ -250,16 +250,29 @@ output in multiple windows in a terminal.") (sha256 (base32 "0n6i8d5aycvp9n2zz2rz67s1y19cw9m5j3pk4719d3a5czh4267m")))) (build-system cmake-build-system) - ;; TODO run benchmark. Currently not possible, as adding - ;; (gnu packages benchmark) forms a dependency cycle + (outputs '("out" "bin")) (arguments (list #:configure-flags - #~(list "-DSPDLOG_BUILD_BENCH=OFF" + #~(list "-DSPDLOG_BUILD_BENCH=ON" "-DSPDLOG_BUILD_SHARED=ON" #$@(if (%current-target-system) '() - '("-DSPDLOG_BUILD_TESTS=ON"))))) + '("-DSPDLOG_BUILD_TESTS=ON"))) + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'patch + (lambda _ + (substitute* "bench/CMakeLists.txt" + ;; Add install command for each benchmark program. + (("add_executable\\(([^ ]+) .*$" all target) + (string-append all + "install(TARGETS " + target + " DESTINATION " + #$output:bin "/bin" + ")\n")))))))) (native-inputs (list catch2-3)) + (inputs (list googlebenchmark)) (home-page "https://github.com/gabime/spdlog") (synopsis "Fast C++ logging library") (description "Spdlog is a very fast header-only/compiled C++ logging