diff options
author | Sharlatan Hellseher <sharlatanus@gmail.com> | 2024-12-20 18:13:35 +0000 |
---|---|---|
committer | Sharlatan Hellseher <sharlatanus@gmail.com> | 2025-01-21 23:41:52 +0000 |
commit | c149fc769c65fce67d46a6c77fdfd6e269824cb0 (patch) | |
tree | 3d0de074dd90c4a5472fe055dbdfa4c4dd3d8584 | |
parent | 1e4a22c4d7a03ec8614b02f0878bc38b6ba54580 (diff) |
build-system/go: Add skip-build? option key.
Golang project's root may miss any .go files which makes build phase to
fail with error similar to:
no Go files in /tmp/<...>/src/golang.org/x/mod
This change implements a SKIP-BUILD? key parameter which is, by default,
set to #f to invoke build procedure. It is taken from cargo-build-system
* guix/build-system/go.scm (go-build, go-cross-build): Add "skip-build?"
key parameter.
* guix/build/go-build-system.scm (build): Add "skip-build?" key
parameter and implement logic.
Change-Id: I3f41414868a7329cbe99324106427cdae4884d94
-rw-r--r-- | guix/build-system/go.scm | 4 | ||||
-rw-r--r-- | guix/build/go-build-system.scm | 29 |
2 files changed, 21 insertions, 12 deletions
diff --git a/guix/build-system/go.scm b/guix/build-system/go.scm index 66cb5e8b05..1a4d090fa9 100644 --- a/guix/build-system/go.scm +++ b/guix/build-system/go.scm @@ -203,6 +203,7 @@ commit hash and its date rather than a proper release tag." (import-path "") (unpack-path "") (build-flags ''()) + (skip-build? #f) (tests? #t) (test-flags ''()) (test-subdirs ''("...")) @@ -238,6 +239,7 @@ commit hash and its date rather than a proper release tag." #:import-path #$import-path #:unpack-path #$unpack-path #:build-flags #$build-flags + #:skip-build? #$skip-build? #:tests? #$tests? #:test-flags #$test-flags #:test-subdirs #$test-subdirs @@ -264,6 +266,7 @@ commit hash and its date rather than a proper release tag." (import-path "") (unpack-path "") (build-flags ''()) + (skip-build? #f) (tests? #f) ; nothing can be done (test-flags ''()) (test-subdirs ''("...")) @@ -317,6 +320,7 @@ commit hash and its date rather than a proper release tag." #:import-path #$import-path #:unpack-path #$unpack-path #:build-flags #$build-flags + #:skip-build? #$skip-build? #:tests? #$tests? #:test-flags #$test-flags #:test-subdirs #$test-subdirs diff --git a/guix/build/go-build-system.scm b/guix/build/go-build-system.scm index fd90335710..70ff880db8 100644 --- a/guix/build/go-build-system.scm +++ b/guix/build/go-build-system.scm @@ -289,6 +289,7 @@ unpacking." (define* (build #:key build-flags + skip-build? import-path (parallel-build? #t) (verbosity 1) @@ -311,19 +312,23 @@ unpacking." (setenv "GOMAXPROCS" (number->string njobs))) (with-throw-handler - #t + #t (lambda _ - (apply invoke "go" "install" - ;; Respectively, strip the symbol table and debug information, - ;; and the DWARF symbol table. - "-ldflags=-s -w" - ;; Remove all file system paths from the resulting executable. - ;; Instead of absolute file system paths, the recorded file names - ;; will begin either a module path@version (when using modules), - ;; or a plain import path (when using the standard library, or - ;; GOPATH). - "-trimpath" - `(,@build-flags ,import-path))) + (if skip-build? + (begin + (format #t "Build is skipped, no go files in project's root.~%") + #t) + (apply invoke "go" "install" + ;; Respectively, strip the symbol table and debug + ;; information, and the DWARF symbol table. + "-ldflags=-s -w" + ;; Remove all file system paths from the resulting + ;; executable. Instead of absolute file system paths, the + ;; recorded file names will begin either a module + ;; path@version (when using modules), or a plain import path + ;; (when using the standard library, or GOPATH). + "-trimpath" + `(,@build-flags ,import-path)))) (lambda (key . args) (display (string-append "Building '" import-path "' failed.\n" |