mirror of
https://git.savannah.gnu.org/git/guix.git
synced 2025-01-18 13:36:36 +01:00
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
This commit is contained in:
parent
dac115935f
commit
4ced25f0ca
2 changed files with 21 additions and 12 deletions
|
@ -203,6 +203,7 @@ (define* (go-build name inputs
|
|||
(import-path "")
|
||||
(unpack-path "")
|
||||
(build-flags ''())
|
||||
(skip-build? #f)
|
||||
(tests? #t)
|
||||
(test-flags ''())
|
||||
(test-subdirs ''("..."))
|
||||
|
@ -238,6 +239,7 @@ (define builder
|
|||
#: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 @@ (define* (go-cross-build name
|
|||
(import-path "")
|
||||
(unpack-path "")
|
||||
(build-flags ''())
|
||||
(skip-build? #f)
|
||||
(tests? #f) ; nothing can be done
|
||||
(test-flags ''())
|
||||
(test-subdirs ''("..."))
|
||||
|
@ -317,6 +320,7 @@ (define %outputs
|
|||
#: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
|
||||
|
|
|
@ -289,6 +289,7 @@ (define (go-inputs inputs)
|
|||
|
||||
(define* (build #:key
|
||||
build-flags
|
||||
skip-build?
|
||||
import-path
|
||||
(parallel-build? #t)
|
||||
(verbosity 1)
|
||||
|
@ -311,19 +312,23 @@ (define* (build #:key
|
|||
(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"
|
||||
|
|
Loading…
Reference in a new issue