We have moved to Git. This repository is only provided for compatibility with old installations. Learn how to migrate your installation here.

annotate eclass/x-mgcf-golang-common.eclass @ 255:3c90d8644fec

[sync] imported 5fd794d..e0462cd from upstream commit e0462cd710b265e96775b0c1b2a595338010243e Author: Daniel Neugebauer <dneuge@energiequant.de> Date: Tue Jun 20 23:36:12 2023 +0200 app-office/softmaker-office[-nx]: added (2024.)1200 revision; subscription product NX is now a separate installation
author Migration Sync <gentoo-overlay@megacoffee.net>
date Tue, 20 Jun 2023 21:45:02 +0000
parents 0685ed0fb913
children 32efd9258ce5
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
249
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
1 # Copyright 1999-2017 Gentoo Foundation
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
2 # Distributed under the terms of the GNU General Public License v2
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
3 # $Id$
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
4
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
5 # @ECLASS: x-mgcf-golang-common.eclass
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
6 # @MAINTAINER:
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
7 # MegaCoffee Overlay <gentoo-overlay@megacoffee.net>
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
8 # @AUTHOR:
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
9 # Mauro Toffanin <toffanin.mauro@gmail.com>
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
10 # @BLURB: Base eclass for GoLang packages
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
11 # @SUPPORTED_EAPIS: 7
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
12 # @DESCRIPTION:
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
13 # This eclass provides functionalities which are used by golang-single.eclass,
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
14 # golang-live.eclass, and as well as from ebuilds.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
15 #
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
16 # This eclass should not be inherited directly from an ebuild.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
17 # Instead, you should inherit golang-single or golang-live for GoLang packages.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
18
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
19 inherit eutils multiprocessing
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
20
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
21 # !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
22 # !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
23 # !!! !!!
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
24 # !!! L E G A C Y E C L A S S !!!
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
25 # !!! !!!
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
26 # !!! DO NOT USE OUTSIDE OF MEGACOFFEE OVERLAY !!!
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
27 # !!! !!!
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
28 # !!! DO NOT USE FOR NEW EBUILDS !!!
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
29 # !!! !!!
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
30 # !!! This eclass has only been copied to megacoffee overlay from !!!
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
31 # !!! go-overlay: https://github.com/Dr-Terrible/go-overlay !!!
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
32 # !!! !!!
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
33 # !!! The only purpose is to keep currently depending ebuilds !!!
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
34 # !!! until they could be migrated to standard eclasses for Go, !!!
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
35 # !!! if suitable. !!!
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
36 # !!! !!!
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
37 # !!! go-overlay was previously imported by megacoffee until it !!!
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
38 # !!! got removed from Gentoo overlay index in March 2023, !!!
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
39 # !!! rendering megacoffee overlay unreachable as a result. !!!
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
40 # !!! !!!
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
41 # !!! Related bugs: https://bugs.gentoo.org/864653 !!!
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
42 # !!! https://bugs.gentoo.org/903167 !!!
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
43 # !!! !!!
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
44 # !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
45 # !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
46
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
47
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
48 if [[ -z ${_GOLANG_BASE_ECLASS} ]]; then
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
49 _GOLANG_BASE_ECLASS=1
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
50
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
51 # Silences repoman warnings.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
52 case "${EAPI:-0}" in
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
53 7)
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
54 case "${GOLANG_PKG_DEPEND_ON_GO_SUBSLOT:-yes}" in
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
55 yes)
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
56 GO_DEPEND="dev-lang/go:0="
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
57 ;;
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
58 *)
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
59 GO_DEPEND="dev-lang/go:*"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
60 ;;
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
61 esac
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
62 ;;
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
63 *)
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
64 die "${ECLASS}: EAPI=${EAPI:-0} is not supported" ;;
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
65 esac
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
66
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
67 DEPEND+=" ${GO_DEPEND}"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
68
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
69 RESTRICT+=" mirror strip"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
70
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
71 QA_FLAGS_IGNORED="usr/bin/.*
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
72 usr/sbin/.*"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
73
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
74 # @ECLASS-VARIABLE: GOLANG_PKG_NAME
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
75 # @DESCRIPTION:
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
76 # Sets the GoLang name for the generated package.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
77 # GOLANG_PKG_NAME="${PN}"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
78 GOLANG_PKG_NAME="${GOLANG_PKG_NAME:-${PN}}"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
79
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
80 # @ECLASS-VARIABLE: GOLANG_PKG_VERSION
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
81 # @DESCRIPTION:
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
82 # Sets the GoLang version for the generated package.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
83 # GOLANG_PKG_VERSION="${PV}"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
84 GOLANG_PKG_VERSION="${GOLANG_PKG_VERSION:-${PV/_pre/.pre}}"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
85
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
86 # @ECLASS-VARIABLE: GOLANG_PKG_IMPORTPATH
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
87 # @DESCRIPTION:
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
88 # Sets the remote import path for the generated package.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
89 # GOLANG_PKG_IMPORTPATH="github.com/captObvious/"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
90 GOLANG_PKG_IMPORTPATH="${GOLANG_PKG_IMPORTPATH:-}"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
91
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
92 # @ECLASS-VARIABLE: GOLANG_PKG_IMPORTPATH_ALIAS
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
93 # @DESCRIPTION:
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
94 # Sets an alias of the remote import path for the generated package.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
95 # GOLANG_PKG_IMPORTPATH_ALIAS="privaterepo.com/captObvious/"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
96 GOLANG_PKG_IMPORTPATH_ALIAS="${GOLANG_PKG_IMPORTPATH_ALIAS:=${GOLANG_PKG_IMPORTPATH}}"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
97
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
98 # @ECLASS-VARIABLE: GOLANG_PKG_ARCHIVEPREFIX
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
99 # @DESCRIPTION:
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
100 # Sets the archive prefix for the file URI of the package.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
101 # Most projects hosted on GitHub's mirrors provide archives with prefix as
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
102 # 'v' or 'source-', other hosted services offer different archive formats.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
103 # This eclass defaults to an empty prefix.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
104 GOLANG_PKG_ARCHIVEPREFIX="${GOLANG_PKG_ARCHIVEPREFIX:-}"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
105
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
106 # @ECLASS-VARIABLE: GOLANG_PKG_ARCHIVESUFFIX
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
107 # @DESCRIPTION:
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
108 # Sets the archive suffix for the file URI of the package.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
109 # Most projects hosted on GitHub's mirrors provide archives with suffix as
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
110 # '.tar.gz' or '.zip', other hosted services offer different archive formats.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
111 # This eclass defaults to '.tar.gz'.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
112 GOLANG_PKG_ARCHIVESUFFIX="${GOLANG_PKG_ARCHIVESUFFIX:=".tar.gz"}"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
113
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
114 # @ECLASS-VARIABLE: GOLANG_PKG_OUTPUT_NAME
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
115 # @DESCRIPTION:
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
116 # Specifies the output file name of the package.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
117 # If not set, it derives from the name of the package, such as $GOLANG_PKG_NAME.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
118 # This eclass defaults to $PN.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
119 GOLANG_PKG_OUTPUT_NAME="${GOLANG_PKG_OUTPUT_NAME:=${PN}}"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
120
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
121 # @ECLASS-VARIABLE: GOLANG_PKG_BUILDPATH
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
122 # @DESCRIPTION:
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
123 # Specifies a go source file to be compiled as a single main package.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
124 # This eclass defaults to an empty value.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
125 # This eclass defaults to "/..." when the user declares GOLANG_PKG_IS_MULTIPLE=1
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
126 GOLANG_PKG_BUILDPATH="${GOLANG_PKG_BUILDPATH:-}"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
127
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
128 # @ECLASS-VARIABLE: GOLANG_PKG_INSTALLPATH
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
129 # @DESCRIPTION:
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
130 # Sets the root path into which a binary, or a list of binaries, will be
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
131 # installed (e.x.: ${GOLANG_PKG_INSTALLPATH}/bin).
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
132 # This eclass defaults to "/usr"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
133 GOLANG_PKG_INSTALLPATH="${GOLANG_PKG_INSTALLPATH:="/usr"}"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
134
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
135 # @ECLASS-VARIABLE: GOLANG_PKG_INSTALLSUFFIX
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
136 # @DESCRIPTION:
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
137 # Sets a suffix to use in the name of the package installation directory.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
138 # This eclass defaults to an empty install suffix.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
139 GOLANG_PKG_INSTALLSUFFIX="${GOLANG_PKG_INSTALLSUFFIX:-}"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
140
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
141 # @ECLASS-VARIABLE: GOLANG_PKG_IS_MULTIPLE
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
142 # @DESCRIPTION:
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
143 # Set to enable the building of multiple packages from a single import path.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
144
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
145 # @ECLASS-VARIABLE: GOLANG_PKG_HAVE_TEST
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
146 # @DEFAULT_UNSET
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
147 # @DESCRIPTION:
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
148 # Set to enable the execution of automated testing.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
149
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
150 # @ECLASS-VARIABLE: GOLANG_PKG_HAVE_TEST_RACE
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
151 # @DEFAULT_UNSET
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
152 # @DESCRIPTION:
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
153 # Set to enable the execution of automated testing with support for
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
154 # data race detection.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
155
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
156 # @ECLASS-VARIABLE: GOLANG_PKG_USE_CGO
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
157 # @DEFAULT_UNSET
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
158 # @DESCRIPTION:
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
159 # Set to enable the compilation of the package with CGO.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
160
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
161 # @ECLASS-VARIABLE: GOLANG_PKG_USE_GENERATE
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
162 # @DEFAULT_UNSET
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
163 # @DESCRIPTION:
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
164 # Set to run commands described by directives within existing golang files.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
165
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
166 # @ECLASS-VARIABLE: GOLANG_PKG_DEPEND_ON_GO_SUBSLOT
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
167 # @DESCRIPTION:
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
168 # Set to ensure the package does depend on the dev-lang/go subslot value.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
169 # Possible values: {yes,no}
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
170 # This eclass defaults to "no"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
171 GOLANG_PKG_DEPEND_ON_GO_SUBSLOT=${GOLANG_PKG_DEPEND_ON_GO_SUBSLOT:="no"}
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
172
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
173 # @ECLASS-VARIABLE: GOLANG_PKG_LDFLAGS
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
174 # @DESCRIPTION:
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
175 # Sets the linker arguments to pass to 5l, 6l, or 8l.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
176 # This eclass defaults to an empty list.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
177 GOLANG_PKG_LDFLAGS="${GOLANG_PKG_LDFLAGS:-}"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
178
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
179 # @ECLASS-VARIABLE: GOLANG_PKG_TAGS
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
180 # @DESCRIPTION:
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
181 # Sets the list of build tags during the build.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
182 # This eclass defaults to an empty list.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
183 GOLANG_PKG_TAGS="${GOLANG_PKG_TAGS:-}"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
184
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
185 # @ECLASS-VARIABLE: GOLANG_PKG_VENDOR
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
186 # @DESCRIPTION:
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
187 # Sets additional standard Go workspaces to be appended to the environment
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
188 # variable GOPATH, as described in http://golang.org/doc/code.html.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
189 # This eclass defaults to an empty list.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
190 GOLANG_PKG_VENDOR=()
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
191
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
192 # @ECLASS-VARIABLE: GOLANG_PKG_STATIK
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
193 # @DESCRIPTION:
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
194 # Sets the arguments to pass to dev-go/statik.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
195 # This eclass defaults to an empty list.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
196 GOLANG_PKG_STATIK="${GOLANG_PKG_STATIK:-}"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
197
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
198 # @ECLASS-VARIABLE: GOLANG_PKG_USE_MODULES
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
199 # @DESCRIPTION:
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
200 # Set to enable the compilation of the package with Go modules support.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
201
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
202
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
203 # @ECLASS-VARIABLE: GO
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
204 # @DEFAULT_UNSET
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
205 # @DESCRIPTION:
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
206 # The absolute path to the current GoLang interpreter.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
207 #
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
208 # This variable is set automatically after calling golang_setup().
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
209 #
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
210 # Default value:
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
211 # @CODE
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
212 # /usr/bin/go
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
213 # @CODE
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
214
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
215 # @ECLASS-VARIABLE: EGO
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
216 # @DEFAULT_UNSET
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
217 # @DESCRIPTION:
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
218 # The executable name of the current GoLang interpreter.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
219 #
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
220 # This variable is set automatically after calling golang_setup().
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
221 #
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
222 # Default value:
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
223 # @CODE
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
224 # go
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
225 # @CODE
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
226
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
227 # @ECLASS-VARIABLE: PATCHES
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
228 # @DEFAULT_UNSET
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
229 # @DESCRIPTION:
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
230 # Array variable containing all the patches to be applied. This variable
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
231 # is expected to be defined in the global scope of ebuilds. Make sure to
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
232 # specify the full path. This variable is used in src_prepare phase.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
233 #
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
234 # Example:
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
235 # @CODE
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
236 # PATCHES=(
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
237 # "${FILESDIR}/mypatch.patch"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
238 # "${FILESDIR}/mypatch2.patch"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
239 # )
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
240 # @CODE
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
241
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
242
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
243
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
244 # Adds gccgo as a compile-time dependency when GOLANG_PKG_USE_CGO is set.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
245 #[[ -n ${GOLANG_PKG_USE_CGO} ]] && DEPEND+=" >=sys-devel/gcc-4.8.4[go]"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
246
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
247 # Adds dev-go/statik as a compile-time dependency when GOLANG_PKG_STATIK is set.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
248 [[ -n ${GOLANG_PKG_STATIK} ]] && DEPEND+=" dev-go/statik"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
249
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
250 # Validates GOLANG_PKG_IMPORTPATH.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
251 if [[ -z ${GOLANG_PKG_IMPORTPATH} ]]; then
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
252 eerror "The remote import path for this package has not been declared"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
253 die "Mandatory variable GOLANG_PKG_IMPORTPATH is unset"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
254 fi
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
255
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
256 # Forces a multiple package build when user specifies GOLANG_PKG_IS_MULTIPLE=1.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
257 if [[ -n ${GOLANG_PKG_IS_MULTIPLE} && -z ${GOLANG_PKG_BUILDPATH} ]]; then
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
258 GOLANG_PKG_BUILDPATH="/..."
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
259 fi
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
260
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
261 # Validates use of GOLANG_PKG_BUILDPATH combined with GOLANG_PKG_IS_MULTIPLE
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
262 # FIX: makes sure user isn't overriding GOLANG_PKG_BUILDPATH with inane values.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
263 if [[ -n ${GOLANG_PKG_IS_MULTIPLE} && ${GOLANG_PKG_BUILDPATH##*/} != "..." ]]; then
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
264 ewarn "Ebuild ${CATEGORY}/${PF} specifies GOLANG_PKG_IS_MULTIPLE=1,"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
265 ewarn "but then GOLANG_PKG_BUILDPATH is overridden with \"${GOLANG_PKG_BUILDPATH}\"."
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
266 ewarn "Please, fix it by appending \"/...\" to your GOLANG_PKG_BUILDPATH."
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
267 ewarn "If in doubt, remove GOLANG_PKG_BUILDPATH entirely."
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
268 fi
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
269
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
270 # Even though xz-utils are in @system, they must still be added to DEPEND; see
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
271 # http://archives.gentoo.org/gentoo-dev/msg_a0d4833eb314d1be5d5802a3b710e0a4.xml
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
272 if [[ ${GOLANG_PKG_ARCHIVESUFFIX/.*} == "xz" ]]; then
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
273 DEPEND+=" app-arch/xz-utils"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
274 fi
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
275
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
276 # Defines common USE flags
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
277 IUSE="${IUSE} debug pie"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
278 # Enables USE 'test' when required by GOLANG_PKG_HAVE_TEST.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
279 if [[ -n ${GOLANG_PKG_HAVE_TEST} ]]; then
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
280 IUSE+=" test"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
281 fi
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
282
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
283 # Defines HOMEPAGE.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
284 [ -z "$HOMEPAGE" ] && HOMEPAGE="https://${GOLANG_PKG_IMPORTPATH}/${PN}"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
285
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
286 # Defines SOURCE directory.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
287 S="${WORKDIR}/gopath/src/${GOLANG_PKG_IMPORTPATH_ALIAS}/${GOLANG_PKG_NAME}"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
288
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
289
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
290 # @FUNCTION: _factorize_dependency_entities
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
291 # @INTERNAL
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
292 # @DESCRIPTION:
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
293 # Factorizes the dependency declaration in specific tokens such as the import
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
294 # path, the import path alias, the host name, the author name, the project name,
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
295 # and the revision tag.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
296 _factorize_dependency_entities() {
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
297 debug-print-function ${FUNCNAME} "${@}"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
298
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
299 local -A dependency=()
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
300 local key_list=(importpathalias importpath host project_name author_name revision)
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
301
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
302 # Strips all the white spaces from the supplied argument.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
303 local raw_dependency="${1//\ /}"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
304
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
305 # Determines the alias of the import path (if present).
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
306 dependency[importpathalias]="${raw_dependency##*->}"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
307
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
308 # Strips the import path alias from the supplied argument.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
309 raw_dependency="${raw_dependency%%->*}"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
310
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
311 # Determines the import path.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
312 dependency[importpath]="${raw_dependency%:*}"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
313
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
314 # When the importpath alias is not specified, then this eclass sets the
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
315 # alias as equal to the import path minus the project name.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
316 if [[ "${raw_dependency}" == "${dependency[importpathalias]}" ]]; then
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
317 dependency[importpathalias]="${dependency[importpath]%/*}"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
318 fi
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
319
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
320 # Determines the host.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
321 dependency[host]="${dependency[importpath]%%/*}"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
322
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
323 # Determines the project name.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
324 dependency[project_name]="${dependency[importpath]##*/}"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
325
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
326 # Determines the author name.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
327 dependency[author_name]="${dependency[importpath]#*/}"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
328 dependency[author_name]="${dependency[author_name]%/*}"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
329
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
330 # Determines the revision.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
331 dependency[revision]="${raw_dependency#*:}"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
332
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
333 # Exports all the dependency tokens as an associated list.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
334 for key in ${key_list[@]}; do
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
335 echo "${key} ${dependency[${key}]}"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
336 done
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
337 }
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
338
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
339
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
340 # @FUNCTION: x-mgcf-golang_setup
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
341 # @DESCRIPTION:
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
342 # Determines where is the GoLang implementation and then set-up the
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
343 # GoLang build environment.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
344 x-mgcf-golang_setup() {
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
345 debug-print-function ${FUNCNAME} "${@}"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
346
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
347 # NOTE: Keep /usr/bin/go as index [0] and never overwrite it,
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
348 # always append other binary paths after the index [0]
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
349 local GOLANG_BINS=(
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
350 /usr/bin/go
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
351 /usr/bin/gofmt
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
352 )
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
353
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
354 [[ -n ${GOLANG_PKG_STATIK} ]] && GOLANG_BINS+=(/usr/bin/statik)
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
355
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
356 # Reset GoLang environment variables
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
357 unset EGO
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
358 unset EGOFMT
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
359 unset ESTATIK
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
360 unset GO
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
361 unset GOPATH
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
362 unset GOBIN
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
363
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
364 # Determine is the GoLang interpreter is working
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
365 local IS_EXECUTABLE=1
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
366 for binary in "${GOLANG_BINS[@]}"; do
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
367 debug-print "${FUNCNAME}: Checking ... ${binary}"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
368
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
369 [[ -x "${EPREFIX}/${binary}" ]] && continue
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
370 IS_EXECUTABLE=0
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
371 ewarn "It seems that the binary '${binary}' is not executable."
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
372 done
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
373
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
374 # dev-lang/go isn't installed or one of its binaries aren't executable.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
375 # Either way, the Gentoo box is screwed; no need to set up the GoLang environment
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
376 [[ ${IS_EXECUTABLE} == 0 ]] && exit
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
377
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
378 # dev-lang/go is available and working.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
379 # Exports GO/EGO/EGOFMT global variables.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
380 export GO="${GOLANG_BINS[0]}"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
381 export EGO="${GOLANG_BINS[0]##*/}"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
382 export EGOFMT="${GOLANG_BINS[1]}"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
383
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
384 # dev-go/statik is available and working.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
385 # Exports ESTATIK global variable.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
386 [[ -n ${GOLANG_PKG_STATIK} ]] && export ESTATIK="${GOLANG_BINS[2]##*/}"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
387
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
388 debug-print "${FUNCNAME}: GO = ${GO}"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
389 debug-print "${FUNCNAME}: EGO = ${EGO}"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
390 debug-print "${FUNCNAME}: EGOFMT = ${EGOFMT}"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
391 debug-print "${FUNCNAME}: ESTATIK = ${ESTATIK}"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
392
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
393 # Determines go interpreter version.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
394 GOLANG_VERSION="$( ${GO} version )"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
395 GOLANG_VERSION="${GOLANG_VERSION/go\ version\ go}"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
396 export GOLANG_VERSION="${GOLANG_VERSION%\ *}"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
397 einfo "Found GoLang version: ${GOLANG_VERSION}"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
398
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
399 # Determines statik interpreter version.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
400 # TODO: add version detection when statik will provide a -version option.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
401 if [[ -n ${GOLANG_PKG_STATIK} ]]; then
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
402 local STATIK_VERSION=""
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
403 einfo "Found statik version: ${STATIK_VERSION}"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
404 fi
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
405
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
406 # Enable/Disable frame pointers
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
407 local GOEXPERIMENT="noframepointer"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
408 use debug && GOEXPERIMENT="framepointer"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
409
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
410 # Sets the build environment inside Portage's WORKDIR.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
411 ebegin "Setting up GoLang build environment"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
412
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
413 # Prepares CGO_ENABLED.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
414 CGO_ENABLED=0
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
415 [[ -z ${GOLANG_PKG_USE_CGO} ]] || CGO_ENABLED=1
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
416 use pie && CGO_ENABLED=1 # PIE requires CGO
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
417
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
418 # Prepares gopath / gobin directories inside WORKDIR.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
419 local _GOPATH="${WORKDIR}/gopath"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
420 local _GOBIN="${WORKDIR}/gobin"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
421 mkdir -p "${_GOBIN}" || die
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
422 mkdir -p "${_GOPATH}"/src || die
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
423
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
424 # Exports special env variable EGO_SRC.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
425 export EGO_SRC="${_GOPATH}/src"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
426
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
427 # Exports GoLang env variables.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
428 export GOPATH="$_GOPATH"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
429 export GOBIN="$_GOBIN"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
430 export CGO_ENABLED
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
431 #export GOEXPERIMENT
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
432 #export GO15VENDOREXPERIMENT=0
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
433
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
434 GO111MODULE="off"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
435 [[ -z ${GOLANG_PKG_USE_MODULES} ]] || GO111MODULE="on"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
436 export GO111MODULE
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
437
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
438 debug-print "${FUNCNAME}: GOPATH = ${GOPATH}"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
439 debug-print "${FUNCNAME}: GOBIN = ${GOBIN}"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
440 debug-print "${FUNCNAME}: EGO_SRC = ${EGO_SRC}"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
441 debug-print "${FUNCNAME}: CGO_ENABLED = ${CGO_ENABLED}"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
442 eend
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
443 }
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
444
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
445
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
446 # @FUNCTION: x-mgcf-golang-common_src_prepare
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
447 # @DESCRIPTION:
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
448 # Prepare source code.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
449 x-mgcf-golang-common_src_prepare() {
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
450 debug-print-function ${FUNCNAME} "${@}"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
451
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
452 pushd "${WORKDIR}" > /dev/null || die
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
453 einfo "Preparing GoLang build environment in ${GOPATH}/src"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
454
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
455 # If the ebuild declares an importpath alias, then its path was
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
456 # already created during the src_unpack phase. That means the eclass
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
457 # needs to create the missing original import path (GOLANG_PKG_IMPORTPATH)
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
458 # as a simbolic link pointing to the alias.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
459 if [[ "${GOLANG_PKG_IMPORTPATH}" != "${GOLANG_PKG_IMPORTPATH_ALIAS}" ]]; then
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
460
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
461 # If the ebuild declares a GOLANG_PKG_NAME different from PN, then
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
462 # the latter will be used as the simbolic link target.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
463 local TARGET="${GOLANG_PKG_NAME}"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
464 [[ "${PN}" != "${GOLANG_PKG_NAME}" ]] && TARGET="${PN}"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
465
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
466 x-mgcf-golang_fix_importpath_alias \
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
467 "${GOLANG_PKG_IMPORTPATH_ALIAS}/${TARGET}" \
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
468 "${GOLANG_PKG_IMPORTPATH}/${GOLANG_PKG_NAME}"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
469 fi
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
470
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
471 # If the ebuild declares some GoLang dependencies, then they need to be
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
472 # correctly installed into the sand-boxed GoLang build environment which
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
473 # was set up automatically during src_unpack) phase.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
474 if [[ ${#GOLANG_PKG_DEPENDENCIES[@]} -gt 0 ]]; then
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
475
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
476 for i in ${!GOLANG_PKG_DEPENDENCIES[@]} ; do
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
477
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
478 # Collects all the tokens of the dependency.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
479 local -A DEPENDENCY=()
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
480 while read -r -d $'\n' key value; do
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
481 [[ -z ${key} ]] && continue
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
482 DEPENDENCY[$key]="${value}"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
483 done <<-EOF
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
484 $( _factorize_dependency_entities "${GOLANG_PKG_DEPENDENCIES[$i]}" )
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
485 EOF
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
486
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
487 # Debug
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
488 debug-print "${FUNCNAME}: DEPENDENCY = ${GOLANG_PKG_DEPENDENCIES[$i]}"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
489 debug-print "${FUNCNAME}: importpath = ${DEPENDENCY[importpath]}"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
490 debug-print "${FUNCNAME}: importpathalias = ${DEPENDENCY[importpathalias]}"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
491 debug-print "${FUNCNAME}: host = ${DEPENDENCY[host]}"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
492 debug-print "${FUNCNAME}: author = ${DEPENDENCY[author_name]}"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
493 debug-print "${FUNCNAME}: project = ${DEPENDENCY[project_name]}"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
494 debug-print "${FUNCNAME}: revision = ${DEPENDENCY[revision]}"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
495
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
496 local message="Importing ${DEPENDENCY[importpath]}"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
497 local destdir
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
498
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
499 # Prepares GOPATH structure.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
500 case ${DEPENDENCY[importpathalias]} in
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
501 gopkg.in*)
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
502 message+=" as ${DEPENDENCY[importpathalias]}"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
503 destdir="${DEPENDENCY[importpathalias]}"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
504
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
505 # Creates the import path in GOPATH.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
506 mkdir -p "${GOPATH}/src/${DEPENDENCY[importpathalias]%/*}" || die
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
507 #einfo "\n${GOPATH}/src/${DEPENDENCY[importpathalias]%/*}"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
508 ;;
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
509 *)
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
510 [[ "${DEPENDENCY[importpath]}" != "${DEPENDENCY[importpathalias]}/${DEPENDENCY[project_name]}" ]] && message+=" as ${DEPENDENCY[importpathalias]}/${DEPENDENCY[project_name]}"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
511 destdir="${DEPENDENCY[importpathalias]}/${DEPENDENCY[project_name]}"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
512
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
513 # Creates the import path in GOPATH.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
514 mkdir -p "${GOPATH}/src/${DEPENDENCY[importpathalias]}" || die
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
515 #einfo "\n${GOPATH}/src/${DEPENDENCY[importpathalias]}"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
516 ;;
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
517 esac
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
518
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
519 # Moves sources from WORKDIR into GOPATH.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
520 case ${DEPENDENCY[host]} in
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
521 github*)
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
522 ebegin "${message}"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
523 mv ${DEPENDENCY[project_name]}-${DEPENDENCY[revision]}* "${GOPATH}"/src/${destdir} || die
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
524 eend
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
525
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
526 # FIX: sometimes the source code inside an importpath alias
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
527 # (such as gopkg.in/mylib.v1) invokes imports from
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
528 # the original import path instead of using the alias,
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
529 # thus we need a symbolic link between the alias and
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
530 # the original import path to avoid compilation issues.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
531 # Example: gopkg.in/Shopify/sarama.v1 erroneously
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
532 # invokes imports from github.com/shopify/sarama
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
533 if [[ ${destdir} != ${DEPENDENCY[importpath]} ]]; then
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
534 x-mgcf-golang_fix_importpath_alias ${destdir} ${DEPENDENCY[importpath]}
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
535 fi
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
536 ;;
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
537 bitbucket*)
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
538 #einfo "path: ${DEPENDENCY[author_name]}-${DEPENDENCY[project_name]}-${DEPENDENCY[revision]}"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
539 ebegin "${message}"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
540 mv ${DEPENDENCY[author_name]}-${DEPENDENCY[project_name]}-${DEPENDENCY[revision]}* "${GOPATH}"/src/${destdir} || die
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
541 eend
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
542 ;;
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
543 code.google*)
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
544 ebegin "${message}"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
545 mv ${DEPENDENCY[project_name]}-${DEPENDENCY[revision]}* "${GOPATH}"/src/${destdir} || die
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
546 eend
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
547 ;;
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
548 *) die "Function 'x-mgcf-golang-common_src_prepare' doesn't support '${DEPENDENCY[importpath]}'" ;;
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
549 esac
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
550 done
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
551
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
552 fi
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
553
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
554 popd > /dev/null || die
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
555
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
556
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
557 # Auto-detects the presence of Go's vendored
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
558 # dependencies inside $S/vendor.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
559 local VENDOR="${S}/vendor"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
560 if [[ -d "${VENDOR}" ]]; then
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
561 x-mgcf-golang_add_vendor "${VENDOR}"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
562 export GO15VENDOREXPERIMENT=1
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
563 fi
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
564
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
565 # Auto-detects the presence of Go's vendored
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
566 # dependencies inside $S/*/vendor
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
567 if [[ -n ${GOLANG_PKG_BUILDPATH} && ${GOLANG_PKG_BUILDPATH##*/} != "..." ]]; then
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
568 while read -r -d $' ' path; do
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
569 # Trims leading slash (if any).
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
570 path="${path/\//}"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
571
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
572 # Extracts the root path.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
573 path="${path%%/*}"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
574
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
575 # Ignores $path when it's empty or a string of white spaces.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
576 [[ -n $path ]] || continue
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
577
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
578 local vendor="${S}/${path}/vendor"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
579 if [[ -d "${vendor}" ]]; then
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
580 x-mgcf-golang_add_vendor "${vendor}"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
581 fi
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
582 done <<< "$( echo ${GOLANG_PKG_BUILDPATH}) "
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
583 fi
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
584
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
585
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
586 # Auto-detects the presence of Godep's workspace
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
587 # (see github.com/tools/godep for more infos).
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
588 VENDOR="${S}/Godeps/_workspace"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
589 if [[ -d "${VENDOR}" ]]; then
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
590 x-mgcf-golang_add_vendor "${VENDOR}"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
591 fi
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
592
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
593 # Evaluates PATCHES array.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
594 default_src_prepare
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
595 }
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
596
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
597
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
598 # @FUNCTION: x-mgcf-golang-common_src_configure
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
599 # @DESCRIPTION:
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
600 # Configure the package.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
601 x-mgcf-golang-common_src_configure() {
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
602 debug-print-function ${FUNCNAME} "${@}"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
603
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
604 [[ ${EGO} ]] || die "No GoLang implementation set (x-mgcf-golang_setup not called?)."
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
605
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
606 # Defines the level of verbosity.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
607 local EGO_VERBOSE="-v"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
608 [[ -z ${PORTAGE_VERBOSE} ]] || EGO_VERBOSE+=" -x"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
609
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
610 # GoLang doesn't have a configure phase,
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
611 # so instead this eclass prints the output of 'go env'.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
612 local -a GOLANG_ENV=()
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
613 while read -r line; do
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
614 GOLANG_ENV+=("${line}")
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
615 done <<-EOF
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
616 $( ${GO} env )
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
617 EOF
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
618
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
619 # Prints an error when 'go env' output is missing.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
620 if [[ ${#GOLANG_ENV[@]} -eq 1 ]]; then
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
621 eerror "Your GoLang environment should be more verbose"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
622 fi
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
623
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
624 # Prints GoLang environment summary.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
625 einfo " ${EGO} env"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
626 for env in "${GOLANG_ENV[@]}"; do
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
627 einfo " - ${env}"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
628 done
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
629
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
630
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
631 # Removes GoLang object files from package source directories (pkg/)
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
632 # and temporary directories (_obj/ _test*/).
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
633 local EGO_SUBPACKAGES="${GOLANG_PKG_IMPORTPATH_ALIAS}/${GOLANG_PKG_NAME}"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
634 case $( ver_cut 1-2 ${GOLANG_VERSION} ) in
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
635 1.4*) ;;
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
636 *)
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
637 EGO_SUBPACKAGES+="/..."
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
638 ;;
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
639 esac
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
640 # einfo "${EGO} clean -i ${EGO_VERBOSE} ${EGO_SUBPACKAGES}"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
641 # ${EGO} clean -i \
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
642 # ${EGO_VERBOSE} \
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
643 # "${EGO_SUBPACKAGES}" \
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
644 # || die
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
645
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
646 # Removes GoLang objects files from all the dependencies too.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
647 # if [[ ${#GOLANG_PKG_DEPENDENCIES[@]} -gt 0 ]]; then
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
648 #
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
649 # for i in ${!GOLANG_PKG_DEPENDENCIES[@]} ; do
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
650 #
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
651 # # Collects all the tokens of the dependency.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
652 # local -A DEPENDENCY=()
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
653 # while read -r -d $'\n' key value; do
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
654 # [[ -z ${key} ]] && continue
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
655 # DEPENDENCY[$key]="${value}"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
656 # done <<-EOF
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
657 # $( _factorize_dependency_entities "${GOLANG_PKG_DEPENDENCIES[$i]}" )
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
658 # EOF
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
659 #
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
660 # [[ ! -d ${DEPENDENCY[importpath]} ]] && continue
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
661 #
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
662 # # Debug
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
663 # debug-print "${FUNCNAME}: DEPENDENCY = ${GOLANG_PKG_DEPENDENCIES[$i]}"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
664 # debug-print "${FUNCNAME}: importpath = ${DEPENDENCY[importpath]}"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
665 #
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
666 # # Cleans object files of the dependency.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
667 # einfo "${EGO} clean -i ${EGO_VERBOSE} ${DEPENDENCY[importpath]}"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
668 # ${EGO} clean \
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
669 # -i ${EGO_VERBOSE} \
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
670 # "${DEPENDENCY[importpath]}" \
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
671 # || die
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
672 # done
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
673 # fi
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
674
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
675 # Before to compile Godep's dependencies it's wise to wipe out
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
676 # all pre-built object files from Godep's package source directories.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
677 if [[ -d "${S}"/Godeps/_workspace/pkg ]]; then
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
678 ebegin "Cleaning up pre-built object files in Godep workspace"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
679 rm -r "${S}"/Godeps/_workspace/pkg || die
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
680 eend
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
681 fi
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
682 if [[ -d "${S}"/Godeps/_workspace/bin ]]; then
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
683 ebegin "Cleaning up executables in Godep workspace"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
684 rm -r "${S}"/Godeps/_workspace/bin || die
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
685 eend
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
686 fi
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
687
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
688
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
689 # Executes 'go generate'.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
690 # NOTE: generate should never run automatically. It must be run explicitly.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
691 if [[ -n ${GOLANG_PKG_USE_GENERATE} ]]; then
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
692 pushd "${GOPATH}/src/${GOLANG_PKG_IMPORTPATH_ALIAS}/${GOLANG_PKG_NAME}" > /dev/null || die
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
693 einfo "${EGO} generate ${EGO_VERBOSE} ${GOLANG_PKG_IMPORTPATH_ALIAS}/${GOLANG_PKG_NAME}/..."
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
694 ${EGO} generate \
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
695 ${EGO_VERBOSE} \
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
696 ./... \
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
697 || die
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
698 popd > /dev/null || die
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
699 fi
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
700
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
701
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
702 # Executes 'statik' when explicitly asked.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
703 if [[ -n ${GOLANG_PKG_STATIK} ]]; then
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
704 ebegin "${ESTATIK} $GOLANG_PKG_STATIK"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
705 ${ESTATIK} $GOLANG_PKG_STATIK || die
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
706 eend
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
707 fi
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
708 }
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
709
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
710
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
711 # @FUNCTION: x-mgcf-golang-common_src_compile
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
712 # @DESCRIPTION:
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
713 # Compiles the package.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
714 x-mgcf-golang-common_src_compile() {
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
715 debug-print-function ${FUNCNAME} "${@}"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
716
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
717 [[ ${EGO} ]] || die "No GoLang implementation set (x-mgcf-golang_setup not called?)."
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
718
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
719 # Populates env variable GOPATH with vendored workspaces (if present).
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
720 if [[ -n ${GOLANG_PKG_VENDOR} ]]; then
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
721 einfo "Using vendored dependencies from:"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
722
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
723 for path in "${GOLANG_PKG_VENDOR[@]}"; do
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
724 [ -d ${path} ] || continue
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
725
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
726 if [[ ${path//${S}\//} == "vendor" ]]; then
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
727 einfo "- vendor/ (native vendoring support)"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
728 continue
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
729 fi
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
730
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
731 debug-print "$FUNCNAME: GOPATH: Adding vendor path ${path}"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
732 ebegin "- ${path//${S}\//}"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
733 GOPATH="${GOPATH}:$( echo ${path} )"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
734 eend
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
735 done
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
736
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
737 export GOPATH
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
738 fi
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
739
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
740 # Enables position-independent executables (PIE)
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
741 local EGO_PIE
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
742 use pie && EGO_PIE="-buildmode=pie"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
743
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
744 # Defines the install suffix.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
745 local EGO_INSTALLSUFFIX
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
746 [[ -z ${GOLANG_PKG_INSTALLSUFFIX} ]] || EGO_INSTALLSUFFIX="-installsuffix=${GOLANG_PKG_INSTALLSUFFIX}"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
747
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
748 # Defines the level of verbosity.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
749 local EGO_VERBOSE="-v"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
750 [[ -z ${PORTAGE_VERBOSE} ]] || EGO_VERBOSE+=" -x"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
751
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
752 # Defines the number of builds that can be run in parallel.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
753 local EGO_PARALLEL="-p $(makeopts_jobs)"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
754
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
755 # Defines extra options.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
756 local EGO_EXTRA_OPTIONS="-a"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
757
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
758 # Prepares build flags for the go toolchain.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
759 local EGO_BUILD_FLAGS="$( echo ${EGO_VERBOSE} ) $( echo ${EGO_PARALLEL} ) $( echo ${EGO_EXTRA_OPTIONS} ) $( echo ${EGO_PIE} )"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
760 [[ -n ${EGO_INSTALLSUFFIX} ]] && EGO_BUILD_FLAGS+=" $( echo ${EGO_INSTALLSUFFIX} )"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
761
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
762 # Detects the total number of packages.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
763 local pkgs=0 ifs_save=${IFS} IFS=$' '
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
764 for path in ${GOLANG_PKG_BUILDPATH[@]} ; do
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
765 pkgs=$(( $pkgs + 1 ))
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
766 done
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
767 [[ ${pkgs} -eq 0 ]] && pkgs=1 # there is always at least 1 package
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
768 IFS=${ifs_save}
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
769
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
770 # Builds the package
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
771 einfo "Compiling ${pkgs} package(s):"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
772 if [[ -n ${GOLANG_PKG_BUILDPATH} && ${GOLANG_PKG_BUILDPATH##*/} != "..." && ${pkgs} -gt 1 ]]; then
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
773
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
774 # NOTE: This eclass trims all leading and trailing white spaces from the
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
775 # input of the following 'while read' loop, then appends an extra
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
776 # trailing space; this is necessary to avoid undefined behaviours
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
777 # within the loop when GOLANG_PKG_BUILDPATH is populated with only
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
778 # a single element.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
779 while read -r -d $' ' cmd; do
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
780 # Ignores $cmd when it's empty or a string of white spaces
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
781 #einfo "cmd: |$cmd| cmd: |${cmd##*/}|"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
782 [[ -n $cmd ]] || continue
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
783
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
784 x-mgcf-golang_do_build \
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
785 ${EGO_BUILD_FLAGS} \
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
786 -o "${GOBIN}/${cmd##*/}" \
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
787 "${GOLANG_PKG_IMPORTPATH_ALIAS}/${GOLANG_PKG_NAME}${cmd}"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
788 done <<< "$( echo ${GOLANG_PKG_BUILDPATH}) "
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
789 else
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
790 # If the package is a multiple package (/...)
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
791 # then this eclass doesn't specify the output name.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
792 [[ ${GOLANG_PKG_BUILDPATH##*/} != "..." ]] && EGO_BUILD_FLAGS+=" -o ${GOBIN}/${GOLANG_PKG_OUTPUT_NAME}"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
793
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
794 x-mgcf-golang_do_build \
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
795 ${EGO_BUILD_FLAGS} \
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
796 "${GOLANG_PKG_IMPORTPATH_ALIAS}/${GOLANG_PKG_NAME}${GOLANG_PKG_BUILDPATH}"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
797 fi
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
798 }
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
799
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
800
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
801 # @FUNCTION: x-mgcf-golang-common_src_install
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
802 # @DESCRIPTION:
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
803 # Installs binaries and documents from DOCS or HTML_DOCS arrays.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
804 x-mgcf-golang-common_src_install() {
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
805 debug-print-function ${FUNCNAME} "${@}"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
806
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
807 [[ ${EGO} ]] || die "No GoLang implementation set (x-mgcf-golang_setup not called?)."
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
808
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
809 # Enables position-independent executables (PIE)
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
810 local EGO_PIE
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
811 use pie && EGO_PIE="-buildmode=pie"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
812
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
813 # Defines the install suffix.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
814 local EGO_INSTALLSUFFIX
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
815 [[ -z ${GOLANG_PKG_INSTALLSUFFIX} ]] || EGO_INSTALLSUFFIX="-installsuffix=${GOLANG_PKG_INSTALLSUFFIX}"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
816
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
817 # Defines the level of verbosity.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
818 local EGO_VERBOSE="-v"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
819 [[ -z ${PORTAGE_VERBOSE} ]] || EGO_VERBOSE+=" -x"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
820
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
821 # Defines the number of builds that can be run in parallel.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
822 local EGO_PARALLEL="-p $(makeopts_jobs)"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
823
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
824 # Defines extra options.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
825 local EGO_EXTRA_OPTIONS
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
826
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
827 # Prepares build flags for the go toolchain.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
828 local EGO_BUILD_FLAGS="$( echo ${EGO_VERBOSE} ) $( echo ${EGO_PARALLEL} ) $( echo ${EGO_EXTRA_OPTIONS} ) $( echo ${EGO_PIE} )"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
829 [[ -n ${EGO_INSTALLSUFFIX} ]] && EGO_BUILD_FLAGS+=" $( echo ${EGO_INSTALLSUFFIX} )"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
830
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
831 # Defines sub-packages.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
832 local EGO_SUBPACKAGES="${GOLANG_PKG_IMPORTPATH_ALIAS}/${GOLANG_PKG_NAME}${GOLANG_PKG_BUILDPATH}"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
833
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
834 # Executes the pre-install phase (go install).
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
835 if [[ -n ${GOLANG_PKG_IS_MULTIPLE} ]]; then
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
836 einfo "${EGO} install -ldflags '$GOLANG_PKG_LDFLAGS' -tags '$GOLANG_PKG_TAGS' ${EGO_BUILD_FLAGS} ${EGO_SUBPACKAGES}"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
837 ${EGO} install \
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
838 -ldflags "${GOLANG_PKG_LDFLAGS}" \
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
839 -tags "${GOLANG_PKG_TAGS}" \
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
840 ${EGO_BUILD_FLAGS} \
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
841 "${EGO_SUBPACKAGES}" \
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
842 || die
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
843 fi
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
844
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
845 # Installs binaries.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
846 into ${GOLANG_PKG_INSTALLPATH}
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
847 for bin in "${GOBIN}"/* ; do
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
848 dobin ${bin}
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
849 done
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
850
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
851 # Installs documentation.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
852 einstalldocs
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
853 }
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
854
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
855 # @FUNCTION: x-mgcf-golang-common_src_test
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
856 # @DESCRIPTION:
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
857 # Runs the unit tests for the main package.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
858 x-mgcf-golang-common_src_test() {
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
859 debug-print-function ${FUNCNAME} "${@}"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
860
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
861 [[ ${EGO} ]] || die "No GoLang implementation set (x-mgcf-golang_setup not called?)."
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
862
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
863 # Appends S and GOBIN to exported main paths.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
864 # FIX: this is necessary for unit tests that need to invoke bins from
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
865 # $GOBIN or from within $S/bin.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
866 export PATH="${S}/bin:${GOBIN}:${PATH}"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
867
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
868 # Defines the level of verbosity.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
869 local EGO_VERBOSE="-v"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
870 [[ -z ${PORTAGE_VERBOSE} ]] || EGO_VERBOSE+=" -x"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
871
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
872 # Defines the number of builds that can be run in parallel.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
873 local EGO_PARALLEL="-p $(makeopts_jobs)"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
874
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
875 # Defines extra options.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
876 #local EGO_EXTRA_OPTIONS="-a"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
877
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
878 # Enables data race detection.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
879 local EGO_RACE
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
880 [[ -n ${GOLANG_PKG_HAVE_TEST_RACE} ]] && EGO_RACE=" -race"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
881
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
882 # Prepares build flags for the go toolchain.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
883 local EGO_BUILD_FLAGS="$( echo ${EGO_VERBOSE} ) $( echo ${EGO_PARALLEL} ) $( echo ${EGO_EXTRA_OPTIONS} )"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
884 [[ -n ${EGO_RACE} ]] && EGO_BUILD_FLAGS+=" $( echo ${EGO_RACE} )"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
885
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
886 # Sanitizes vars from entra white spaces.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
887 GOLANG_PKG_LDFLAGS="$( echo ${GOLANG_PKG_LDFLAGS} )"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
888 GOLANG_PKG_TAGS="$( echo ${GOLANG_PKG_TAGS} )"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
889
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
890 # Defines sub-packages.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
891 local EGO_SUBPACKAGES="${GOLANG_PKG_IMPORTPATH_ALIAS}/${GOLANG_PKG_NAME}${GOLANG_PKG_BUILDPATH}"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
892 [[ -z ${GOLANG_PKG_IS_MULTIPLE} ]] || EGO_SUBPACKAGES="./..."
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
893
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
894 # Detects the total number of packages.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
895 local pkgs=0 ifs_save=${IFS} IFS=$' '
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
896 for path in ${GOLANG_PKG_BUILDPATH[@]} ; do
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
897 pkgs=$(( $pkgs + 1 ))
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
898 done
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
899 [[ ${pkgs} -eq 0 ]] && pkgs=1 # there is always at least 1 package
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
900 IFS=${ifs_save}
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
901
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
902 # Runs the Unit Tests
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
903 einfo "Testing ${pkgs} package(s):"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
904 if [[ -n ${GOLANG_PKG_BUILDPATH} && ${GOLANG_PKG_BUILDPATH##*/} != "..." && ${pkgs} -gt 1 ]]; then
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
905
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
906 # NOTE: This eclass trims all leading and trailing white spaces from the
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
907 # input of the following 'while read' loop, then appends an extra
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
908 # trailing space; this is necessary to avoid undefined behaviours
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
909 # within the loop when GOLANG_PKG_BUILDPATH is populated with only
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
910 # a single element.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
911 while read -r -d $' ' cmd; do
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
912 # Ignores $cmd when it's empty or a string of white spaces
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
913 #einfo "cmd: |$cmd| cmd: |${cmd##*/}|"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
914 [[ -n $cmd ]] || continue
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
915
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
916 einfo "${EGO} test -ldflags '$GOLANG_PKG_LDFLAGS' -tags '$GOLANG_PKG_TAGS' ${EGO_BUILD_FLAGS} ${GOLANG_PKG_IMPORTPATH_ALIAS}/${GOLANG_PKG_NAME}${cmd}/..."
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
917 ${EGO} test \
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
918 -ldflags "${GOLANG_PKG_LDFLAGS}" \
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
919 -tags "${GOLANG_PKG_TAGS}" \
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
920 ${EGO_BUILD_FLAGS} \
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
921 "${GOLANG_PKG_IMPORTPATH_ALIAS}/${GOLANG_PKG_NAME}${cmd}/..." \
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
922 || die
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
923 done <<< "$( echo ${GOLANG_PKG_BUILDPATH}) "
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
924 else
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
925 # It's a single package
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
926 einfo "${EGO} test -ldflags '$GOLANG_PKG_LDFLAGS' -tags '$GOLANG_PKG_TAGS' ${EGO_BUILD_FLAGS} ${EGO_SUBPACKAGES}"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
927 ${EGO} test \
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
928 -ldflags "${GOLANG_PKG_LDFLAGS}" \
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
929 -tags "${GOLANG_PKG_TAGS}" \
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
930 ${EGO_BUILD_FLAGS} \
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
931 "${EGO_SUBPACKAGES}" \
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
932 || die
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
933 fi
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
934 }
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
935
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
936
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
937 # @FUNCTION: x-mgcf-golang_do_build
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
938 # @INTERNAL
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
939 # @USAGE: <flags> <buildpath>
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
940 # @DESCRIPTION:
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
941 #
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
942 # @CODE
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
943 # Example:
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
944 # GOLANG_PKG_LDFLAGS="-extldflags=-static"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
945 # GOLANG_PKG_TAGS="netgo"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
946 #
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
947 # x-mgcf-golang_do_build ${EGO_BUILD_FLAGS} ${GOLANG_PKG_IMPORTPATH}/${GOLANG_PKG_NAME}${GOLANG_PKG_BUILDPATH}
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
948 # @CODE
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
949 x-mgcf-golang_do_build() {
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
950 debug-print-function ${FUNCNAME} $*
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
951
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
952 [[ ${GOLANG_VERSION} ]] || die "No GoLang implementation set (x-mgcf-golang_setup not called?)."
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
953
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
954 # Filters "=" chars from ldflags declaration.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
955 # NOTE: from go1.5+ linker syntax is no more compatible with <go1.4;
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
956 # this hack ensures that the old behaviour is honoured.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
957 if [[ $( ver_cut 1-2 ${GOLANG_VERSION} ) == "1.4" ]]; then
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
958 GOLANG_PKG_LDFLAGS="${GOLANG_PKG_LDFLAGS//=/ }"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
959 fi
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
960
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
961 # Disables debug symbols (DWARF) when not required.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
962 if ! use debug; then
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
963 case "${GOLANG_PKG_LDFLAGS}" in
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
964 *-s*|*-w*)
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
965 # Do nothing
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
966 ;;
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
967 *)
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
968 GOLANG_PKG_LDFLAGS+=" -s -w"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
969 esac
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
970 fi
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
971
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
972 # Sanitizes vars from entra white spaces.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
973 GOLANG_PKG_LDFLAGS="$( echo ${GOLANG_PKG_LDFLAGS} )"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
974 GOLANG_PKG_TAGS="$( echo ${GOLANG_PKG_TAGS} )"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
975
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
976 einfo "${EGO} build -ldflags '$GOLANG_PKG_LDFLAGS' -tags '$GOLANG_PKG_TAGS' $*"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
977 ${EGO} build \
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
978 -ldflags "${GOLANG_PKG_LDFLAGS}" \
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
979 -tags "${GOLANG_PKG_TAGS}" \
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
980 $( echo $* ) \
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
981 || die
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
982 }
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
983
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
984
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
985 # @FUNCTION: x-mgcf-golang_add_vendor
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
986 # @INTERNAL
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
987 # @USAGE: <path>
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
988 # @DESCRIPTION:
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
989 #
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
990 # @CODE
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
991 # Example
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
992 #
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
993 # x-mgcf-golang_add_vendor "${S}"/vendor
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
994 # x-mgcf-golang_add_vendor "${S}"/${PN}/vendor
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
995 # @CODE
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
996 x-mgcf-golang_add_vendor() {
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
997 debug-print-function ${FUNCNAME} $*
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
998
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
999 [[ ${1} ]] || die "${FUNCNAME}: no paths given"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
1000
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
1001 [[ ${GOLANG_VERSION} ]] || die "No Golang implementation set (x-mgcf-golang_setup not called?)."
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
1002
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
1003 [[ ! -d "${1}" ]] && return
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
1004
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
1005 # NOTE: this hack is required by Go v1.4 and older versions.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
1006 #if [[ ! -d "${1}"/src ]]; then
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
1007 # ebegin "Fixing $1"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
1008 # ln -s "${1}" "${1}"/src || die
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
1009 # eend
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
1010 #fi
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
1011
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
1012 GOLANG_PKG_VENDOR+=(${1})
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
1013 }
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
1014
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
1015
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
1016 # @FUNCTION: x-mgcf-golang_fix_importpath_alias
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
1017 # @USAGE: <target> <alias>
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
1018 # @DESCRIPTION:
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
1019 # Helper functions for generating a symbolic link for import path <target> as
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
1020 # <alias>.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
1021 #
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
1022 # WARNING: Use this function only if GOLANG_PKG_DEPENDENCIES declaration of
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
1023 # import path aliases doesn't work (e.g.: the package name differs from both the
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
1024 # import path and the alias, or if the package name is case sensitive but the
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
1025 # import path is not).
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
1026 #
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
1027 # @CODE
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
1028 # Example:
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
1029 #
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
1030 # src_prepare() {
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
1031 # x-mgcf-golang-single_src_prepare
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
1032 #
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
1033 # x-mgcf-golang_fix_importpath_alias \
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
1034 # "github.com/GoogleCloudPlatform/gcloud-golang" \
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
1035 # "google.golang.org/cloud"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
1036 # }
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
1037 # @CODE
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
1038 x-mgcf-golang_fix_importpath_alias() {
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
1039 debug-print-function ${FUNCNAME} "${@}"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
1040
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
1041 [[ ${1} ]] || die "${FUNCNAME}: no target specified"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
1042 [[ ${2} ]] || die "${FUNCNAME}: no alias specified"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
1043
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
1044 [[ ${EGO} ]] || die "No GoLang implementation set (x-mgcf-golang_setup not called?)."
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
1045
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
1046
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
1047 local TARGET="${1}"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
1048 local ALIAS="${2}"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
1049
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
1050 if [[ ${ALIAS%/*} != ${ALIAS} ]]; then
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
1051 mkdir -p "${GOPATH}/src/${ALIAS%/*}" || die
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
1052 fi
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
1053 ebegin "Linking ${TARGET} as ${ALIAS}"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
1054 ln -s "${GOPATH}/src/${TARGET}" \
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
1055 "${GOPATH}/src/${ALIAS}" \
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
1056 || die
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
1057 eend
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
1058 }
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
1059
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
1060
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
1061 fi