summaryrefslogtreecommitdiff
path: root/gnu
diff options
context:
space:
mode:
authorGábor Boskovits <boskovits@gmail.com>2019-06-14 23:07:56 +0200
committerGábor Boskovits <boskovits@gmail.com>2019-06-14 23:18:12 +0200
commit4c7e8c234d7d1729adf7290a8bb761e3a0cc4b6b (patch)
treea8be91b5aaaa8b9ca79311673f1606891648b61e /gnu
parentbc70516bbae8a6388f3ed19008d3e10efd1577a7 (diff)
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.
Diffstat (limited to 'gnu')
-rw-r--r--gnu/local.mk3
-rw-r--r--gnu/packages/benchmark.scm28
-rw-r--r--gnu/packages/patches/benchmark-unbundle-googletest.patch69
3 files changed, 99 insertions, 1 deletions
diff --git a/gnu/local.mk b/gnu/local.mk
index 75fb24a0c5..9ff668ef8b 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -15,7 +15,7 @@
# Copyright © 2017, 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
# Copyright © 2017, 2018 Clément Lassieur <clement@lassieur.org>
# Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com>
-# Copyright © 2017, 2018 Gábor Boskovits <boskovits@gmail.com>
+# Copyright © 2017, 2018, 2019 Gábor Boskovits <boskovits@gmail.com>
# Copyright © 2018 Amirouche Boubekki <amirouche@hypermove.net>
# Copyright © 2018, 2019 Oleg Pykhalov <go.wigust@gmail.com>
# Copyright © 2018 Stefan Stefanović <stefanx2ovic@gmail.com>
@@ -691,6 +691,7 @@ dist_patch_DATA = \
%D%/packages/patches/bazaar-CVE-2017-14176.patch \
%D%/packages/patches/beets-python-3.7-fix.patch \
%D%/packages/patches/beignet-correct-file-names.patch \
+ %D%/packages/patches/benchmark-unbundle-googletest.patch \
%D%/packages/patches/biber-fix-encoding-write.patch \
%D%/packages/patches/binutils-loongson-workaround.patch \
%D%/packages/patches/blender-2.79-newer-ffmpeg.patch \
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 <me@tobias.gr>
;;; Copyright © 2018, 2019 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2019 Eric Bavier <bavier@member.fsf.org>
+;;; Copyright © 2019 Gábor Boskovits <boskovits@gmail.com>
;;;
;;; 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?= <boskovits@gmail.com>
+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 $<TARGET_PROPERTY:gtest,INTERFACE_INCLUDE_DIRECTORIES>)
+-set_target_properties(gtest_main PROPERTIES INTERFACE_SYSTEM_INCLUDE_DIRECTORIES $<TARGET_PROPERTY:gtest_main,INTERFACE_INCLUDE_DIRECTORIES>)
+-set_target_properties(gmock PROPERTIES INTERFACE_SYSTEM_INCLUDE_DIRECTORIES $<TARGET_PROPERTY:gmock,INTERFACE_INCLUDE_DIRECTORIES>)
+-set_target_properties(gmock_main PROPERTIES INTERFACE_SYSTEM_INCLUDE_DIRECTORIES $<TARGET_PROPERTY:gmock_main,INTERFACE_INCLUDE_DIRECTORIES>)
++#add_subdirectory(${GOOGLETEST_SOURCE_DIR}
++# ${GOOGLETEST_BINARY_DIR}
++# EXCLUDE_FROM_ALL)
++
++#set_target_properties(gtest PROPERTIES INTERFACE_SYSTEM_INCLUDE_DIRECTORIES $<TARGET_PROPERTY:gtest,INTERFACE_INCLUDE_DIRECTORIES>)
++#set_target_properties(gtest_main PROPERTIES INTERFACE_SYSTEM_INCLUDE_DIRECTORIES $<TARGET_PROPERTY:gtest_main,INTERFACE_INCLUDE_DIRECTORIES>)
++#set_target_properties(gmock PROPERTIES INTERFACE_SYSTEM_INCLUDE_DIRECTORIES $<TARGET_PROPERTY:gmock,INTERFACE_INCLUDE_DIRECTORIES>)
++#set_target_properties(gmock_main PROPERTIES INTERFACE_SYSTEM_INCLUDE_DIRECTORIES $<TARGET_PROPERTY:gmock_main,INTERFACE_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
+