build-style: use XBPS_MAKEJOBS to set go processes

Clean up some minor unnecessary bashisms, and an unquoted variable.
This commit is contained in:
Cameron Nemo 2019-06-18 19:37:27 -07:00 committed by Enno Boland
parent a32236ab19
commit 5e35764d3f
2 changed files with 14 additions and 9 deletions

View file

@ -1472,7 +1472,7 @@ Go packages should be built with the `go` build style, if possible.
The `go` build style takes care of downloading Go dependencies and The `go` build style takes care of downloading Go dependencies and
setting up cross compilation. setting up cross compilation.
The following variables influence how Go packages are built: The following template variables influence how Go packages are built:
- `go_import_path`: The import path of the package included in the - `go_import_path`: The import path of the package included in the
distfile, as it would be used with `go get`. For example, GitHub's distfile, as it would be used with `go get`. For example, GitHub's
@ -1491,6 +1491,11 @@ The following variables influence how Go packages are built:
accepted by `go build -mod MODE`. Defaults to `vendor` if there's accepted by `go build -mod MODE`. Defaults to `vendor` if there's
a vendor directory, otherwise `default`. a vendor directory, otherwise `default`.
The following environment variables influence how Go packages are built:
- `XBPS_MAKEJOBS`: Value passed to the `-p` flag of `go install`, to
control the parallelism of the Go compiler.
Occasionally it is necessary to perform operations from within the Go Occasionally it is necessary to perform operations from within the Go
source tree. This is usually needed by programs using go-bindata or source tree. This is usually needed by programs using go-bindata or
otherwise preping some assets. If possible do this in pre_build(). otherwise preping some assets. If possible do this in pre_build().

View file

@ -12,31 +12,31 @@ do_configure() {
# This isn't really configuration, but its needed by packages # This isn't really configuration, but its needed by packages
# that do unusual things with the build where the expect to be # that do unusual things with the build where the expect to be
# able to cd into the $GOSRCPATH # able to cd into the $GOSRCPATH
if [[ "${go_mod_mode}" != "off" ]] && [[ -f go.mod ]]; then if [ "${go_mod_mode}" != "off" ] && [ -f go.mod ]; then
# Skip GOPATH symlink for Go modules # Skip GOPATH symlink for Go modules
msg_normal "Building $pkgname using Go modules.\n" msg_normal "Building $pkgname using Go modules.\n"
elif [[ "${go_get}" != "yes" ]]; then elif [ "${go_get}" != "yes" ]; then
mkdir -p ${GOSRCPATH%/*}/ mkdir -p ${GOSRCPATH%/*}/
ln -fs $PWD "${GOSRCPATH}" ln -fs "$PWD" "${GOSRCPATH}"
fi fi
} }
do_build() { do_build() {
go_package=${go_package:-$go_import_path} go_package=${go_package:-$go_import_path}
# Build using Go modules if there's a go.mod file # Build using Go modules if there's a go.mod file
if [[ "${go_mod_mode}" != "off" ]] && [[ -f go.mod ]]; then if [ "${go_mod_mode}" != "off" ] && [ -f go.mod ]; then
if [[ -z "${go_mod_mode}" ]] && [[ -d vendor ]]; then if [ -z "${go_mod_mode}" ] && [ -d vendor ]; then
msg_normal "Using vendor dir for $pkgname Go dependencies.\n" msg_normal "Using vendor dir for $pkgname Go dependencies.\n"
go_mod_mode=vendor go_mod_mode=vendor
elif [[ "${go_mod_mode}" = "default" ]]; then elif [ "${go_mod_mode}" = "default" ]; then
# Allow templates to explicitly opt into the go tool's # Allow templates to explicitly opt into the go tool's
# default behavior. # default behavior.
go_mod_mode= go_mod_mode=
fi fi
go install -mod="${go_mod_mode}" -x -tags "${go_build_tags}" -ldflags "${go_ldflags}" ${go_package} go install -p "$XBPS_MAKEJOBS" -mod="${go_mod_mode}" -x -tags "${go_build_tags}" -ldflags "${go_ldflags}" ${go_package}
else else
# Otherwise, build using GOPATH # Otherwise, build using GOPATH
go get -x -tags "${go_build_tags}" -ldflags "${go_ldflags}" ${go_package} go get -p "$XBPS_MAKEJOBS" -x -tags "${go_build_tags}" -ldflags "${go_ldflags}" ${go_package}
fi fi
} }