89 lines
2.0 KiB
Bash
89 lines
2.0 KiB
Bash
|
# Copyright 1999-2019 Gentoo Authors
|
||
|
# Distributed under the terms of the GNU General Public License v2
|
||
|
|
||
|
# @ECLASS: golang-base.eclass
|
||
|
# @MAINTAINER:
|
||
|
# William Hubbs <williamh@gentoo.org>
|
||
|
# @SUPPORTED_EAPIS: 5 6 7
|
||
|
# @BLURB: Eclass that provides base functions for Go packages.
|
||
|
# @DESCRIPTION:
|
||
|
# This eclass provides base functions for software written in the Go
|
||
|
# programming language; it also provides the build-time dependency on
|
||
|
# dev-lang/go.
|
||
|
|
||
|
case "${EAPI:-0}" in
|
||
|
5|6|7)
|
||
|
;;
|
||
|
*)
|
||
|
die "${ECLASS}: Unsupported eapi (EAPI=${EAPI})"
|
||
|
;;
|
||
|
esac
|
||
|
|
||
|
if [[ -z ${_GOLANG_BASE} ]]; then
|
||
|
|
||
|
_GOLANG_BASE=1
|
||
|
|
||
|
GO_DEPEND=">=dev-lang/go-1.10"
|
||
|
if [[ ${EAPI:-0} == [56] ]]; then
|
||
|
DEPEND="${GO_DEPEND}"
|
||
|
else
|
||
|
BDEPEND="${GO_DEPEND}"
|
||
|
fi
|
||
|
|
||
|
# Do not complain about CFLAGS etc since go projects do not use them.
|
||
|
QA_FLAGS_IGNORED='.*'
|
||
|
|
||
|
# Upstream does not support stripping go packages
|
||
|
RESTRICT="strip"
|
||
|
|
||
|
# @ECLASS-VARIABLE: EGO_PN
|
||
|
# @REQUIRED
|
||
|
# @DESCRIPTION:
|
||
|
# This is the import path for the go package to build. Please emerge
|
||
|
# dev-lang/go and read "go help importpath" for syntax.
|
||
|
#
|
||
|
# Example:
|
||
|
# @CODE
|
||
|
# EGO_PN=github.com/user/package
|
||
|
# @CODE
|
||
|
|
||
|
# @FUNCTION: ego_pn_check
|
||
|
# @DESCRIPTION:
|
||
|
# Make sure EGO_PN has a value.
|
||
|
ego_pn_check() {
|
||
|
[[ -z "${EGO_PN}" ]] &&
|
||
|
die "${ECLASS}.eclass: EGO_PN is not set"
|
||
|
return 0
|
||
|
}
|
||
|
|
||
|
# @FUNCTION: get_golibdir
|
||
|
# @DESCRIPTION:
|
||
|
# Return the non-prefixed library directory where Go packages
|
||
|
# should be installed
|
||
|
get_golibdir() {
|
||
|
echo /usr/lib/go-gentoo
|
||
|
}
|
||
|
|
||
|
# @FUNCTION: get_golibdir_gopath
|
||
|
# @DESCRIPTION:
|
||
|
# Return the library directory where Go packages should be installed
|
||
|
# This is the prefixed version which should be included in GOPATH
|
||
|
get_golibdir_gopath() {
|
||
|
echo "${EPREFIX}$(get_golibdir)"
|
||
|
}
|
||
|
|
||
|
# @FUNCTION: golang_install_pkgs
|
||
|
# @DESCRIPTION:
|
||
|
# Install Go packages.
|
||
|
# This function assumes that $cwd is a Go workspace.
|
||
|
golang_install_pkgs() {
|
||
|
debug-print-function ${FUNCNAME} "$@"
|
||
|
|
||
|
ego_pn_check
|
||
|
insinto "$(get_golibdir)"
|
||
|
insopts -m0644 -p # preserve timestamps for bug 551486
|
||
|
doins -r pkg src
|
||
|
}
|
||
|
|
||
|
fi
|