summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSharlatan Hellseher <sharlatanus@gmail.com>2024-12-20 18:13:35 +0000
committerSharlatan Hellseher <sharlatanus@gmail.com>2025-01-21 23:41:52 +0000
commitc149fc769c65fce67d46a6c77fdfd6e269824cb0 (patch)
tree3d0de074dd90c4a5472fe055dbdfa4c4dd3d8584
parent1e4a22c4d7a03ec8614b02f0878bc38b6ba54580 (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.scm4
-rw-r--r--guix/build/go-build-system.scm29
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"