From 4c7e8c234d7d1729adf7290a8bb761e3a0cc4b6b Mon Sep 17 00:00:00 2001 From: Gábor Boskovits Date: Fri, 14 Jun 2019 23:07:56 +0200 Subject: gnu: Add benchmark. * gnu/packages/benchmark.scm(benchmark): New variable. * gnu/packages/patches/benchmark-unbundle-googletest.patch: New file. * gnu/local.mk(dist_patch_DATA): Add it. --- gnu/packages/benchmark.scm | 28 +++++++++ .../patches/benchmark-unbundle-googletest.patch | 69 ++++++++++++++++++++++ 2 files changed, 97 insertions(+) create mode 100644 gnu/packages/patches/benchmark-unbundle-googletest.patch (limited to 'gnu/packages') diff --git a/gnu/packages/benchmark.scm b/gnu/packages/benchmark.scm index 970df735aa..c513370e74 100644 --- a/gnu/packages/benchmark.scm +++ b/gnu/packages/benchmark.scm @@ -4,6 +4,7 @@ ;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice ;;; Copyright © 2018, 2019 Ricardo Wurmus ;;; Copyright © 2019 Eric Bavier +;;; Copyright © 2019 Gábor Boskovits ;;; ;;; This file is part of GNU Guix. ;;; @@ -25,7 +26,10 @@ #:use-module (guix packages) #:use-module (guix download) #:use-module (guix git-download) + #:use-module (guix build-system cmake) #:use-module (guix build-system gnu) + #:use-module (gnu packages) + #:use-module (gnu packages check) #:use-module (gnu packages compression) #:use-module (gnu packages linux) #:use-module (gnu packages maths) @@ -193,3 +197,27 @@ extension to @code{time} which runs a command multiple times and prints the timing means, standard deviations, mins, medians, and maxes having done so. This can give a much better understanding of the command's performance.") (license license:expat))) + +(define-public benchmark + (package + (name "benchmark") + (version "1.5.0") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/google/benchmark.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0r9dbg4cbk47gwmayys31a83m3y67k0kh1f6pl8i869rbd609ndh")) + (patches (search-patches "benchmark-unbundle-googletest.patch")))) + (build-system cmake-build-system) + (native-inputs + `(("googletest" ,googletest))) + (home-page "https://github.com/google/benchmark") + (synopsis "Microbenchmark support library") + (description + "Benchmark is a library to benchmark code snippets, +similar to unit tests.") + (license license:asl2.0))) diff --git a/gnu/packages/patches/benchmark-unbundle-googletest.patch b/gnu/packages/patches/benchmark-unbundle-googletest.patch new file mode 100644 index 0000000000..4dce8f59f1 --- /dev/null +++ b/gnu/packages/patches/benchmark-unbundle-googletest.patch @@ -0,0 +1,69 @@ +From 5eb306618196ea78b8c9390e22ea2edce20760fe Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?G=C3=A1bor=20Boskovits?= +Date: Fri, 14 Jun 2019 22:15:49 +0200 +Subject: [PATCH] Remove googletest lookup from build system. + +--- + cmake/GoogleTest.cmake | 18 +++++++++--------- + cmake/GoogleTest.cmake.in | 12 ++++++------ + 2 files changed, 15 insertions(+), 15 deletions(-) + +diff --git a/cmake/GoogleTest.cmake b/cmake/GoogleTest.cmake +index fb7c6be..a6c473b 100644 +--- a/cmake/GoogleTest.cmake ++++ b/cmake/GoogleTest.cmake +@@ -27,15 +27,15 @@ endif() + # settings on Windows + set(gtest_force_shared_crt ON CACHE BOOL "" FORCE) + +-include(${GOOGLETEST_PREFIX}/googletest-paths.cmake) ++#include(${GOOGLETEST_PREFIX}/googletest-paths.cmake) + + # Add googletest directly to our build. This defines + # the gtest and gtest_main targets. +-add_subdirectory(${GOOGLETEST_SOURCE_DIR} +- ${GOOGLETEST_BINARY_DIR} +- EXCLUDE_FROM_ALL) +- +-set_target_properties(gtest PROPERTIES INTERFACE_SYSTEM_INCLUDE_DIRECTORIES $) +-set_target_properties(gtest_main PROPERTIES INTERFACE_SYSTEM_INCLUDE_DIRECTORIES $) +-set_target_properties(gmock PROPERTIES INTERFACE_SYSTEM_INCLUDE_DIRECTORIES $) +-set_target_properties(gmock_main PROPERTIES INTERFACE_SYSTEM_INCLUDE_DIRECTORIES $) ++#add_subdirectory(${GOOGLETEST_SOURCE_DIR} ++# ${GOOGLETEST_BINARY_DIR} ++# EXCLUDE_FROM_ALL) ++ ++#set_target_properties(gtest PROPERTIES INTERFACE_SYSTEM_INCLUDE_DIRECTORIES $) ++#set_target_properties(gtest_main PROPERTIES INTERFACE_SYSTEM_INCLUDE_DIRECTORIES $) ++#set_target_properties(gmock PROPERTIES INTERFACE_SYSTEM_INCLUDE_DIRECTORIES $) ++#set_target_properties(gmock_main PROPERTIES INTERFACE_SYSTEM_INCLUDE_DIRECTORIES $) +diff --git a/cmake/GoogleTest.cmake.in b/cmake/GoogleTest.cmake.in +index 28818ee..13b0888 100644 +--- a/cmake/GoogleTest.cmake.in ++++ b/cmake/GoogleTest.cmake.in +@@ -31,7 +31,7 @@ if(EXISTS "${GOOGLETEST_PATH}" AND IS_DIRECTORY "${GOOGLETEST_PATH}" + ) + else() + if(NOT ALLOW_DOWNLOADING_GOOGLETEST) +- message(SEND_ERROR "Did not find Google Test sources! Either pass correct path in GOOGLETEST_PATH, or enable ALLOW_DOWNLOADING_GOOGLETEST, or disable BENCHMARK_ENABLE_GTEST_TESTS / BENCHMARK_ENABLE_TESTING.") ++ message(WARNING "Did not find Google Test sources! Either pass correct path in GOOGLETEST_PATH, or enable ALLOW_DOWNLOADING_GOOGLETEST, or disable BENCHMARK_ENABLE_GTEST_TESTS / BENCHMARK_ENABLE_TESTING.") + else() + message(WARNING "Did not find Google Test sources! Fetching from web...") + ExternalProject_Add( +@@ -51,8 +51,8 @@ else() + endif() + endif() + +-ExternalProject_Get_Property(googletest SOURCE_DIR BINARY_DIR) +-file(WRITE googletest-paths.cmake +-"set(GOOGLETEST_SOURCE_DIR \"${SOURCE_DIR}\") +-set(GOOGLETEST_BINARY_DIR \"${BINARY_DIR}\") +-") ++#ExternalProject_Get_Property(googletest SOURCE_DIR BINARY_DIR) ++#file(WRITE googletest-paths.cmake ++#"set(GOOGLETEST_SOURCE_DIR \"${SOURCE_DIR}\") ++#set(GOOGLETEST_BINARY_DIR \"${BINARY_DIR}\") ++#") +-- +2.22.0 + -- cgit v1.2.3