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.
This commit is contained in:
		
							parent
							
								
									bc70516bba
								
							
						
					
					
						commit
						4c7e8c234d
					
				
					 3 changed files with 99 additions and 1 deletions
				
			
		| 
						 | 
					@ -15,7 +15,7 @@
 | 
				
			||||||
# Copyright © 2017, 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
 | 
					# Copyright © 2017, 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
 | 
				
			||||||
# Copyright © 2017, 2018 Clément Lassieur <clement@lassieur.org>
 | 
					# Copyright © 2017, 2018 Clément Lassieur <clement@lassieur.org>
 | 
				
			||||||
# Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com>
 | 
					# 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 Amirouche Boubekki <amirouche@hypermove.net>
 | 
				
			||||||
# Copyright © 2018, 2019 Oleg Pykhalov <go.wigust@gmail.com>
 | 
					# Copyright © 2018, 2019 Oleg Pykhalov <go.wigust@gmail.com>
 | 
				
			||||||
# Copyright © 2018 Stefan Stefanović <stefanx2ovic@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/bazaar-CVE-2017-14176.patch		\
 | 
				
			||||||
  %D%/packages/patches/beets-python-3.7-fix.patch		\
 | 
					  %D%/packages/patches/beets-python-3.7-fix.patch		\
 | 
				
			||||||
  %D%/packages/patches/beignet-correct-file-names.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/biber-fix-encoding-write.patch		\
 | 
				
			||||||
  %D%/packages/patches/binutils-loongson-workaround.patch	\
 | 
					  %D%/packages/patches/binutils-loongson-workaround.patch	\
 | 
				
			||||||
  %D%/packages/patches/blender-2.79-newer-ffmpeg.patch		\
 | 
					  %D%/packages/patches/blender-2.79-newer-ffmpeg.patch		\
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -4,6 +4,7 @@
 | 
				
			||||||
;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
 | 
					;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
 | 
				
			||||||
;;; Copyright © 2018, 2019 Ricardo Wurmus <rekado@elephly.net>
 | 
					;;; Copyright © 2018, 2019 Ricardo Wurmus <rekado@elephly.net>
 | 
				
			||||||
;;; Copyright © 2019 Eric Bavier <bavier@member.fsf.org>
 | 
					;;; Copyright © 2019 Eric Bavier <bavier@member.fsf.org>
 | 
				
			||||||
 | 
					;;; Copyright © 2019 Gábor Boskovits <boskovits@gmail.com>
 | 
				
			||||||
;;;
 | 
					;;;
 | 
				
			||||||
;;; This file is part of GNU Guix.
 | 
					;;; This file is part of GNU Guix.
 | 
				
			||||||
;;;
 | 
					;;;
 | 
				
			||||||
| 
						 | 
					@ -25,7 +26,10 @@
 | 
				
			||||||
  #:use-module (guix packages)
 | 
					  #:use-module (guix packages)
 | 
				
			||||||
  #:use-module (guix download)
 | 
					  #:use-module (guix download)
 | 
				
			||||||
  #:use-module (guix git-download)
 | 
					  #:use-module (guix git-download)
 | 
				
			||||||
 | 
					  #:use-module (guix build-system cmake)
 | 
				
			||||||
  #:use-module (guix build-system gnu)
 | 
					  #:use-module (guix build-system gnu)
 | 
				
			||||||
 | 
					  #:use-module (gnu packages)
 | 
				
			||||||
 | 
					  #:use-module (gnu packages check)
 | 
				
			||||||
  #:use-module (gnu packages compression)
 | 
					  #:use-module (gnu packages compression)
 | 
				
			||||||
  #:use-module (gnu packages linux)
 | 
					  #:use-module (gnu packages linux)
 | 
				
			||||||
  #:use-module (gnu packages maths)
 | 
					  #: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.
 | 
					timing means, standard deviations, mins, medians, and maxes having done so.
 | 
				
			||||||
This can give a much better understanding of the command's performance.")
 | 
					This can give a much better understanding of the command's performance.")
 | 
				
			||||||
    (license license:expat)))
 | 
					    (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)))
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										69
									
								
								gnu/packages/patches/benchmark-unbundle-googletest.patch
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										69
									
								
								gnu/packages/patches/benchmark-unbundle-googletest.patch
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -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
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		Reference in a new issue