guix-commits
[Top][All Lists]
Advanced

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

04/08: gnu: Add cpuinfo.


From: guix-commits
Subject: 04/08: gnu: Add cpuinfo.
Date: Thu, 29 Jul 2021 16:01:10 -0400 (EDT)

civodul pushed a commit to branch master
in repository guix.

commit 4c5ad827808f6c9964c05c9777d02b200fa619bb
Author: Ludovic Courtès <ludovic.courtes@inria.fr>
AuthorDate: Thu Jul 29 14:41:46 2021 +0200

    gnu: Add cpuinfo.
    
    * gnu/packages/parallel.scm (cpuinfo): New variable.
    * gnu/packages/patches/cpuinfo-system-libraries.patch: New file.
    * gnu/local.mk (dist_patch_DATA): Add it.
---
 gnu/local.mk                                       |  1 +
 gnu/packages/parallel.scm                          | 31 ++++++++++++++
 .../patches/cpuinfo-system-libraries.patch         | 50 ++++++++++++++++++++++
 3 files changed, 82 insertions(+)

diff --git a/gnu/local.mk b/gnu/local.mk
index 488ef37..3d07bc2 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -929,6 +929,7 @@ dist_patch_DATA =                                           
\
   %D%/packages/patches/combinatorial-blas-io-fix.patch         \
   %D%/packages/patches/coreutils-ls.patch                      \
   %D%/packages/patches/cpufrequtils-fix-aclocal.patch          \
+  %D%/packages/patches/cpuinfo-system-libraries.patch          \
   %D%/packages/patches/crawl-upgrade-saves.patch               \
   %D%/packages/patches/crda-optional-gcrypt.patch              \
   %D%/packages/patches/clucene-contribs-lib.patch               \
diff --git a/gnu/packages/parallel.scm b/gnu/packages/parallel.scm
index 79387e5..b5914fd 100644
--- a/gnu/packages/parallel.scm
+++ b/gnu/packages/parallel.scm
@@ -31,6 +31,7 @@
 (define-module (gnu packages parallel)
   #:use-module (guix download)
   #:use-module (guix git-download)
+  #:use-module (guix build-system cmake)
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system python)
   #:use-module ((guix licenses) #:prefix license:)
@@ -41,6 +42,7 @@
   #:use-module (gnu packages admin)
   #:use-module (gnu packages autotools)
   #:use-module (gnu packages base)
+  #:use-module (gnu packages check)
   #:use-module (gnu packages flex)
   #:use-module (gnu packages freeipmi)
   #:use-module (gnu packages linux)
@@ -411,3 +413,32 @@ pool, similar to those implemented by OpenMP run-time 
support libraries for
 constructs such as @code{#pragma omp parallel for}, with additional
 features.")
       (license license:bsd-2))))
+
+(define-public cpuinfo
+  ;; There's currently no tag on this repo.
+  (let ((version "0.0")
+        (revision "1")
+        (commit "866ae6e5ffe93a1f63be738078da94cf3005cce2"))
+    (package
+      (name "cpuinfo")
+      (version (git-version version revision commit))
+      (home-page "https://github.com/pytorch/cpuinfo";)
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference (url home-page) (commit commit)))
+                (file-name (git-file-name name version))
+                (sha256
+                 (base32
+                  "1lmsf4bpkm19a31i40qwcjn46qf7prggziv4pbsi695bkx5as71p"))
+                (patches (search-patches "cpuinfo-system-libraries.patch"))))
+      (build-system cmake-build-system)
+      (arguments '(#:configure-flags '("-DBUILD_SHARED_LIBS=ON")))
+      (inputs
+       `(("googletest" ,googletest)
+         ("googlebenchmark" ,googlebenchmark)))
+      (synopsis "C/C++ library to obtain information about the CPU")
+      (description
+       "The cpuinfo library provides a C/C++ and a command-line interface to
+obtain information about the CPU being used: supported instruction set,
+processor name, cache information, and topology information.")
+      (license license:bsd-2))))
diff --git a/gnu/packages/patches/cpuinfo-system-libraries.patch 
b/gnu/packages/patches/cpuinfo-system-libraries.patch
new file mode 100644
index 0000000..e25446e
--- /dev/null
+++ b/gnu/packages/patches/cpuinfo-system-libraries.patch
@@ -0,0 +1,50 @@
+This patch allows the build process to use the provided dependencies instead
+of adding their source as CMake sub-directories (in which case "make install"
+would install googletest's and googlebenchmark's libraries and headers).
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 57abc26..761c612 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -93,7 +93,7 @@ SET(CONFU_DEPENDENCIES_BINARY_DIR ${CMAKE_BINARY_DIR}/deps
+   CACHE PATH "Confu-style dependencies binary directory")
+ 
+ IF(CPUINFO_BUILD_MOCK_TESTS OR CPUINFO_BUILD_UNIT_TESTS)
+-  IF(CPUINFO_SUPPORTED_PLATFORM AND NOT DEFINED GOOGLETEST_SOURCE_DIR)
++  IF(FALSE)
+     MESSAGE(STATUS "Downloading Google Test to 
${CONFU_DEPENDENCIES_SOURCE_DIR}/googletest (define GOOGLETEST_SOURCE_DIR to 
avoid it)")
+     CONFIGURE_FILE(cmake/DownloadGoogleTest.cmake 
"${CONFU_DEPENDENCIES_BINARY_DIR}/googletest-download/CMakeLists.txt")
+     EXECUTE_PROCESS(COMMAND "${CMAKE_COMMAND}" -G "${CMAKE_GENERATOR}" .
+@@ -105,7 +105,7 @@ IF(CPUINFO_BUILD_MOCK_TESTS OR CPUINFO_BUILD_UNIT_TESTS)
+ ENDIF()
+ 
+ IF(CPUINFO_BUILD_BENCHMARKS)
+-  IF(CPUINFO_SUPPORTED_PLATFORM AND NOT DEFINED GOOGLEBENCHMARK_SOURCE_DIR)
++  IF(FALSE)
+     MESSAGE(STATUS "Downloading Google Benchmark to 
${CONFU_DEPENDENCIES_SOURCE_DIR}/googlebenchmark (define 
GOOGLEBENCHMARK_SOURCE_DIR to avoid it)")
+     CONFIGURE_FILE(cmake/DownloadGoogleBenchmark.cmake 
"${CONFU_DEPENDENCIES_BINARY_DIR}/googlebenchmark-download/CMakeLists.txt")
+     EXECUTE_PROCESS(COMMAND "${CMAKE_COMMAND}" -G "${CMAKE_GENERATOR}" .
+@@ -271,14 +271,6 @@ INSTALL(TARGETS cpuinfo
+ 
+ # ---[ cpuinfo micro-benchmarks
+ IF(CPUINFO_SUPPORTED_PLATFORM AND CPUINFO_BUILD_BENCHMARKS)
+-  # ---[ Build google benchmark
+-  IF(NOT TARGET benchmark)
+-    SET(BENCHMARK_ENABLE_TESTING OFF CACHE BOOL "")
+-    ADD_SUBDIRECTORY(
+-      "${GOOGLEBENCHMARK_SOURCE_DIR}"
+-      "${CONFU_DEPENDENCIES_BINARY_DIR}/googlebenchmark")
+-  ENDIF()
+-
+   IF(CMAKE_SYSTEM_NAME MATCHES "^(Linux|Android)$")
+     ADD_EXECUTABLE(get-current-bench bench/get-current.cc)
+     TARGET_LINK_LIBRARIES(get-current-bench cpuinfo benchmark)
+@@ -289,7 +281,7 @@ IF(CPUINFO_SUPPORTED_PLATFORM AND CPUINFO_BUILD_BENCHMARKS)
+ ENDIF()
+ 
+ IF(CPUINFO_SUPPORTED_PLATFORM)
+-  IF(CPUINFO_BUILD_MOCK_TESTS OR CPUINFO_BUILD_UNIT_TESTS)
++  IF(FALSE)
+     # ---[ Build google test
+     IF(NOT TARGET gtest)
+       IF(MSVC AND NOT CPUINFO_RUNTIME_TYPE STREQUAL "static")



reply via email to

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