summaryrefslogtreecommitdiff
path: root/gnu
diff options
context:
space:
mode:
Diffstat (limited to 'gnu')
-rw-r--r--gnu/packages/ncdu.scm3
-rw-r--r--gnu/packages/zig-xyz.scm7
-rw-r--r--gnu/packages/zig.scm63
3 files changed, 59 insertions, 14 deletions
diff --git a/gnu/packages/ncdu.scm b/gnu/packages/ncdu.scm
index ab88f41dad..c49fefc077 100644
--- a/gnu/packages/ncdu.scm
+++ b/gnu/packages/ncdu.scm
@@ -72,7 +72,8 @@ ncurses installed.")
"01g5mpvsm78lkd0yin82gyancrl23npy69qcp3d60vmm72yiwirz"))))
(build-system zig-build-system)
(arguments
- (list #:zig zig-0.12))
+ (list #:zig zig-0.12
+ #:install-source? #f))
(inputs (list ncurses `(,zstd "lib")))
(native-inputs (list pkg-config))
(properties `((tunable? . #t)))))
diff --git a/gnu/packages/zig-xyz.scm b/gnu/packages/zig-xyz.scm
index 0cd08b6ac6..9c86dde556 100644
--- a/gnu/packages/zig-xyz.scm
+++ b/gnu/packages/zig-xyz.scm
@@ -53,6 +53,7 @@
(build-system zig-build-system)
(arguments
(list
+ #:install-source? #f
#:phases
#~(modify-phases %standard-phases
(add-after 'install 'install-wayland-session
@@ -98,6 +99,7 @@ directly from a tty using KMS/DRM.")
(arguments
(list
#:zig zig-0.9
+ #:install-source? #f
#:zig-release-type "safe"))
(synopsis "Distributed financial accounting database")
(description "TigerBeetle is a financial accounting database designed for
@@ -122,8 +124,9 @@ mission-critical safety and performance for financial services.")
(build-system zig-build-system)
(inputs (list zig-0.10 python))
(arguments
- ;; The tests fail with memory leaks.
- (list #:tests? #f))
+ (list #:install-source? #f
+ ;; The tests fail with memory leaks.
+ #:tests? #f))
(synopsis "Zig language server")
(description
"Zig Language Server is a language server implementing the @acronym{LSP,
diff --git a/gnu/packages/zig.scm b/gnu/packages/zig.scm
index 99335c5404..2644516e69 100644
--- a/gnu/packages/zig.scm
+++ b/gnu/packages/zig.scm
@@ -24,6 +24,7 @@
#:use-module (guix gexp)
#:use-module (guix packages)
#:use-module (guix platform)
+ #:use-module (guix search-paths)
#:use-module (guix utils)
#:use-module (guix download)
#:use-module (guix git-download)
@@ -33,7 +34,51 @@
#:use-module (gnu packages compression)
#:use-module (gnu packages llvm)
#:use-module (gnu packages llvm-meta)
- #:use-module (gnu packages web))
+ #:use-module (gnu packages web)
+ #:export (add-build.zig.zon
+ rename-zig-dependencies))
+
+(define* (add-build.zig.zon name version dependencies #:optional (paths '("")))
+ "Snippet to generate build.zig.zon of DEPENDENCIES for package NAME@VERSION."
+ `(let ((port (open-file "build.zig.zon" "w" #:encoding "utf8")))
+ (format port "\
+.{
+ .name = \"~a\",
+ .version = \"~a\",
+ .paths = .{
+~{\
+ \"~a\",
+~}\
+ },
+ .dependencies = .{
+~{\
+ .@\"~a\" = .{
+ .url = \"\",
+ },
+~}\
+ },
+}~%" ,name ,version (quote ,paths) (quote ,dependencies))
+ (close-port port)))
+
+(define* (rename-zig-dependencies mapping #:optional (directories '(".")))
+ "Snippet to rename Zig dependencies in build.zig and build.zig.zon."
+ `(begin
+ (use-modules (ice-9 match)
+ (guix build utils))
+ (for-each
+ (lambda (directory)
+ (for-each
+ (match-lambda
+ ((old-name . new-name)
+ (with-directory-excursion directory
+ (substitute* "build.zig"
+ (((string-append "([Dd]ependency.\")" old-name) _ prefix)
+ (string-append prefix new-name)))
+ (substitute* "build.zig.zon"
+ (((format #f "\\.(@\")?~a\"?" old-name))
+ (format #f ".@\"~a\"" new-name))))))
+ (quote ,mapping)))
+ (quote ,directories))))
(define (zig-source version commit hash)
(origin
@@ -169,16 +214,12 @@
(list llvm-13
zig-0.9-glibc-abi-tool))
(native-search-paths
- (list
- (search-path-specification
- (variable "C_INCLUDE_PATH")
- (files '("include")))
- (search-path-specification
- (variable "CPLUS_INCLUDE_PATH")
- (files '("include/c++" "include")))
- (search-path-specification
- (variable "LIBRARY_PATH")
- (files '("lib" "lib64")))))
+ (list $C_INCLUDE_PATH
+ $CPLUS_INCLUDE_PATH
+ $LIBRARY_PATH
+ (search-path-specification
+ (variable "GUIX_ZIG_PACKAGE_PATH")
+ (files '("src/zig")))))
(synopsis "General purpose programming language and toolchain")
(description "Zig is a general-purpose programming language and
toolchain. Among other features it provides