build-system/go: Add pre-built standard library as implicit input.

* gnu/packages/golang.scm (make-go-std): New procedure.
* guix/build-system/go.scm (make-go-std): New procedure.
(lower): Use it.  Add pre-built standard library to inputs.

Signed-off-by: Leo Famulari <leo@famulari.name>
This commit is contained in:
Sarah Morgensen 2021-09-19 22:20:50 -07:00 committed by Leo Famulari
parent c90f73f816
commit d6121d7dd6
No known key found for this signature in database
GPG key ID: 2646FA30BACA7F08
2 changed files with 44 additions and 2 deletions

View file

@ -831,6 +831,36 @@ in the style of communicating sequential processes (@dfn{CSP}).")
(define-public go go-1.14)
(define-public (make-go-std go)
"Return a package which builds the standard library for Go compiler GO."
(package
(name (string-append (package-name go) "-std"))
(version (package-version go))
(source #f)
(build-system go-build-system)
(arguments
`(#:import-path "std"
#:build-flags `("-pkgdir" "pkg") ; "Install" to build directory.
#:allow-go-reference? #t
#:substitutable? #f ; Faster to build than download.
#:tests? #f ; Already tested in the main Go build.
#:go ,go
#:phases
(modify-phases %standard-phases
(delete 'unpack)
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(out-cache (string-append out "/var/cache/go/build")))
(copy-recursively (getenv "GOCACHE") out-cache)
(delete-file (string-append out-cache "/trim.txt"))
(delete-file (string-append out-cache "/README")))))
(delete 'install-license-files))))
(home-page (package-home-page go))
(synopsis "Cached standard library build for Go")
(description (package-description go))
(license (package-license go))))
(define-public go-0xacab-org-leap-shapeshifter
(let ((commit "0aa6226582efb8e563540ec1d3c5cfcd19200474")
(revision "12"))