guix-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

01/01: gnu: Add benchmark.


From: guix-commits
Subject: 01/01: gnu: Add benchmark.
Date: Fri, 14 Jun 2019 17:19:43 -0400 (EDT)

boskovits pushed a commit to branch master
in repository guix.

commit 4c7e8c234d7d1729adf7290a8bb761e3a0cc4b6b
Author: Gábor Boskovits <address@hidden>
Date:   Fri Jun 14 23:07:56 2019 +0200

    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/local.mk                                       |  3 +-
 gnu/packages/benchmark.scm                         | 28 +++++++++
 .../patches/benchmark-unbundle-googletest.patch    | 69 ++++++++++++++++++++++
 3 files changed, 99 insertions(+), 1 deletion(-)

diff --git a/gnu/local.mk b/gnu/local.mk
index 75fb24a..9ff668e 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -15,7 +15,7 @@
 # Copyright © 2017, 2018, 2019 Tobias Geerinckx-Rice <address@hidden>
 # Copyright © 2017, 2018 Clément Lassieur <address@hidden>
 # Copyright © 2017 Mathieu Othacehe <address@hidden>
-# Copyright © 2017, 2018 Gábor Boskovits <address@hidden>
+# Copyright © 2017, 2018, 2019 Gábor Boskovits <address@hidden>
 # Copyright © 2018 Amirouche Boubekki <address@hidden>
 # Copyright © 2018, 2019 Oleg Pykhalov <address@hidden>
 # Copyright © 2018 Stefan Stefanović <address@hidden>
@@ -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 970df73..c513370 100644
--- a/gnu/packages/benchmark.scm
+++ b/gnu/packages/benchmark.scm
@@ -4,6 +4,7 @@
 ;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <address@hidden>
 ;;; Copyright © 2018, 2019 Ricardo Wurmus <address@hidden>
 ;;; Copyright © 2019 Eric Bavier <address@hidden>
+;;; Copyright © 2019 Gábor Boskovits <address@hidden>
 ;;;
 ;;; 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 0000000..4dce8f5
--- /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?= <address@hidden>
+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
+



reply via email to

[Prev in Thread] Current Thread [Next in Thread]