2015-02-21 13:38:37 +01:00
|
|
|
#
|
|
|
|
# This helper is for templates for Go packages.
|
|
|
|
#
|
|
|
|
|
2017-11-24 23:05:29 +01:00
|
|
|
do_configure() {
|
2018-09-19 02:29:24 +02:00
|
|
|
# $go_import_path must be set, or we can't link $PWD into $GOSRCPATH
|
2018-12-20 02:01:04 +01:00
|
|
|
# nor build from modules
|
2018-09-19 02:29:24 +02:00
|
|
|
if [ -z "$go_import_path" ]; then
|
|
|
|
msg_error "\"\$go_import_path\" not set on $pkgname template.\n"
|
|
|
|
fi
|
|
|
|
|
2018-09-19 02:41:08 +02:00
|
|
|
# This isn't really configuration, but its needed by packages
|
|
|
|
# that do unusual things with the build where the expect to be
|
|
|
|
# able to cd into the $GOSRCPATH
|
2019-06-19 04:37:27 +02:00
|
|
|
if [ "${go_mod_mode}" != "off" ] && [ -f go.mod ]; then
|
2018-12-20 02:01:04 +01:00
|
|
|
# Skip GOPATH symlink for Go modules
|
|
|
|
msg_normal "Building $pkgname using Go modules.\n"
|
2021-02-19 21:24:28 +01:00
|
|
|
else
|
2019-04-13 22:42:53 +02:00
|
|
|
mkdir -p ${GOSRCPATH%/*}/
|
2019-06-19 04:37:27 +02:00
|
|
|
ln -fs "$PWD" "${GOSRCPATH}"
|
2017-09-15 19:18:31 +02:00
|
|
|
fi
|
2017-11-24 23:05:29 +01:00
|
|
|
}
|
2017-09-15 19:18:31 +02:00
|
|
|
|
2017-11-24 23:05:29 +01:00
|
|
|
do_build() {
|
2022-08-10 09:18:17 +02:00
|
|
|
# remove -s and -w from go_ldflags, we should let xbps-src strip binaries itself
|
|
|
|
for wd in $go_ldflags; do
|
|
|
|
if [ "$wd" == "-s" ] || [ "$wd" == "-w" ]; then
|
|
|
|
msg_error "$pkgname: remove -s and -w from go_ldflags\n"
|
|
|
|
fi
|
|
|
|
done
|
|
|
|
|
2015-04-17 18:18:35 +02:00
|
|
|
go_package=${go_package:-$go_import_path}
|
2018-12-20 02:01:04 +01:00
|
|
|
# Build using Go modules if there's a go.mod file
|
2019-06-19 04:37:27 +02:00
|
|
|
if [ "${go_mod_mode}" != "off" ] && [ -f go.mod ]; then
|
|
|
|
if [ -z "${go_mod_mode}" ] && [ -d vendor ]; then
|
2018-12-20 02:01:04 +01:00
|
|
|
msg_normal "Using vendor dir for $pkgname Go dependencies.\n"
|
|
|
|
go_mod_mode=vendor
|
2019-06-19 04:37:27 +02:00
|
|
|
elif [ "${go_mod_mode}" = "default" ]; then
|
2018-12-20 02:01:04 +01:00
|
|
|
# Allow templates to explicitly opt into the go tool's
|
|
|
|
# default behavior.
|
|
|
|
go_mod_mode=
|
|
|
|
fi
|
2023-04-05 20:33:25 +02:00
|
|
|
go install -p "$XBPS_MAKEJOBS" -mod="${go_mod_mode}" -modcacherw -x -tags "${go_build_tags}" -ldflags "${go_ldflags}" ${go_package}
|
2018-12-20 02:01:04 +01:00
|
|
|
else
|
|
|
|
# Otherwise, build using GOPATH
|
2019-06-19 04:37:27 +02:00
|
|
|
go get -p "$XBPS_MAKEJOBS" -x -tags "${go_build_tags}" -ldflags "${go_ldflags}" ${go_package}
|
2018-12-20 02:01:04 +01:00
|
|
|
fi
|
2015-02-21 13:38:37 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
do_install() {
|
2019-11-11 07:49:02 +01:00
|
|
|
for f in ${GOPATH}/bin/* ${GOPATH}/bin/**/*; do
|
|
|
|
if [ -f "$f" ] && [ -x "$f" ]; then
|
|
|
|
vbin "$f"
|
|
|
|
fi
|
2015-05-04 13:39:15 +02:00
|
|
|
done
|
2015-02-21 13:38:37 +01:00
|
|
|
}
|