# Copyright 1999-2018 Gentoo Foundation # 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