From c59d3d67fd1c26a19ecc27bc5ed9d15d77575525 Mon Sep 17 00:00:00 2001 From: Hilton Chain Date: Mon, 26 Sep 2022 21:32:49 +0800 Subject: gnu: Add libdispatch. * gnu/packages/c.scm (libdispatch): New variable. Signed-off-by: Liliana Marie Prikler --- gnu/packages/c.scm | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) (limited to 'gnu/packages') diff --git a/gnu/packages/c.scm b/gnu/packages/c.scm index 10275970b1..84b537022d 100644 --- a/gnu/packages/c.scm +++ b/gnu/packages/c.scm @@ -55,6 +55,7 @@ #:use-module (gnu packages perl) #:use-module (gnu packages texinfo) #:use-module (gnu packages guile) + #:use-module (gnu packages llvm) #:use-module (gnu packages lua) #:use-module (gnu packages multiprecision) #:use-module (gnu packages pcre) @@ -1182,6 +1183,41 @@ performance concurrent systems developed in C99+.") (license (list license:bsd-2 ;everything except... license:asl2.0)))) ;src/ck_hp.c +(define-public libdispatch + (package + (name "libdispatch") + (version "5.7") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/apple/swift-corelibs-libdispatch") + (commit (string-append "swift-" version "-RELEASE")))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0skg1azbhbg7y0ql2a5sx6lmfip8l1rajqm95zzf9xv45n4dg9nn")))) + (build-system cmake-build-system) + (arguments + (list #:phases + #~(modify-phases %standard-phases + ;; Use Clang instead of GCC. + (add-before 'configure 'prepare-build-environment + (lambda _ + (setenv "AR" "llvm-ar") + (setenv "NM" "llvm-nm") + (setenv "CC" "clang") + (setenv "CXX" "clang++")))))) + (native-inputs (list clang llvm)) + (home-page "https://apple.github.io/swift-corelibs-libdispatch/") + (synopsis "Concurrent code execution on multicore hardware") + (description + "Grand Central Dispatch (GCD or libdispatch) implements a concurrency model +wherein program tasks are divided into work items. These can be run +sequentially or in parallel, with optional synchronization in between, and GCD +will take care of dispatching tasks to available cores.") + (license license:asl2.0))) + (define-public utf8-h ;; The latest tag is used as there is no release. (let ((commit "500d4ea9f4c3449e5243c088d8af8700f7189734") -- cgit 1.4.1