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 @ 259:32efd9258ce5

[sync] imported 04d1b06..9f7fbcb from upstream commit 9f7fbcb8451c6c4f26ff0e7989d2ccd92ad27f1c Author: Daniel Neugebauer <dneuge@energiequant.de> Date: Thu Sep 7 23:01:52 2023 +0200 net-misc/asterisk-softmodem: bump to EAPI 8 commit 96dadefa000fde6e61bd2a01c668a9cda4fa30b8 Author: Daniel Neugebauer <dneuge@energiequant.de> Date: Thu Sep 7 23:00:56 2023 +0200 app-crypt/acmetool: delete old patch for 0.0.58 commit 349d4168444f2b28345a010ce3ec5952fe51a845 Author: Daniel Neugebauer <dneuge@energiequant.de> Date: Thu Sep 7 22:58:09 2023 +0200 app-crypt/acmetool: stitch up old eclass still used to run on EAPI 8 commit 6be702bd1f6723fd4e724de5a1aaa0274d53f1a3 Author: Daniel Neugebauer <dneuge@energiequant.de> Date: Thu Sep 7 22:57:29 2023 +0200 app-crypt/acmetool: removed 0.0.58 and 0.2.1 due to EAPI deprecation commit ae0227d3d8fe72eacbd3b1099cf8514131d553a9 Author: Daniel Neugebauer <dneuge@energiequant.de> Date: Thu Sep 7 22:45:39 2023 +0200 app-admin/boinctui-extended: bump to EAPI 8 commit 861f2d6873a4cde9c30138d1f7d7739801596ae7 Author: Daniel Neugebauer <dneuge@energiequant.de> Date: Thu Sep 7 22:38:38 2023 +0200 app-admin/boinctui-extended: removed 9999 development ebuild, fork has been terminated commit cecf3a2a466ce707b2538ba82cfdbf9575474991 Author: Daniel Neugebauer <dneuge@energiequant.de> Date: Thu Sep 7 22:35:25 2023 +0200 app-admin/boinc-status: bump to EAPI 8
author Migration Sync <gentoo-overlay@megacoffee.net>
date Thu, 07 Sep 2023 21:15:02 +0000
parents 0685ed0fb913
children 0ad22bd2bcb5
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
259
32efd9258ce5 [sync] imported 04d1b06..9f7fbcb from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents: 249
diff changeset
11 # @SUPPORTED_EAPIS: 8
249
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
259
32efd9258ce5 [sync] imported 04d1b06..9f7fbcb from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents: 249
diff changeset
19 inherit desktop edos2unix estack multilib \
32efd9258ce5 [sync] imported 04d1b06..9f7fbcb from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents: 249
diff changeset
20 preserve-libs strip-linguas toolchain-funcs vcs-clean wrapper multiprocessing
249
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 # !!! !!!
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
25 # !!! 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
26 # !!! !!!
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
27 # !!! DO NOT USE OUTSIDE OF MEGACOFFEE OVERLAY !!!
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
28 # !!! !!!
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
29 # !!! DO NOT USE FOR NEW EBUILDS !!!
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
30 # !!! !!!
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
31 # !!! 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
32 # !!! 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
33 # !!! !!!
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
34 # !!! 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
35 # !!! 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
36 # !!! if suitable. !!!
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
37 # !!! !!!
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
38 # !!! 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
39 # !!! 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
40 # !!! rendering megacoffee overlay unreachable as a result. !!!
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
41 # !!! !!!
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
42 # !!! Related bugs: https://bugs.gentoo.org/864653 !!!
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
43 # !!! https://bugs.gentoo.org/903167 !!!
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
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
49 if [[ -z ${_GOLANG_BASE_ECLASS} ]]; then
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
50 _GOLANG_BASE_ECLASS=1
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
51
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
52 # Silences repoman warnings.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
53 case "${EAPI:-0}" in
259
32efd9258ce5 [sync] imported 04d1b06..9f7fbcb from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents: 249
diff changeset
54 8)
249
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
55 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
56 yes)
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
57 GO_DEPEND="dev-lang/go:0="
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 *)
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
60 GO_DEPEND="dev-lang/go:*"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
61 ;;
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
62 esac
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 *)
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
65 die "${ECLASS}: EAPI=${EAPI:-0} is not supported" ;;
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
66 esac
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
67
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
68 DEPEND+=" ${GO_DEPEND}"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
69
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
70 RESTRICT+=" mirror strip"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
71
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
72 QA_FLAGS_IGNORED="usr/bin/.*
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
73 usr/sbin/.*"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
74
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
75 # @ECLASS-VARIABLE: GOLANG_PKG_NAME
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
76 # @DESCRIPTION:
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
77 # Sets the GoLang name for the generated package.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
78 # GOLANG_PKG_NAME="${PN}"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
79 GOLANG_PKG_NAME="${GOLANG_PKG_NAME:-${PN}}"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
80
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
81 # @ECLASS-VARIABLE: GOLANG_PKG_VERSION
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
82 # @DESCRIPTION:
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
83 # Sets the GoLang version for the generated package.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
84 # GOLANG_PKG_VERSION="${PV}"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
85 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
86
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
87 # @ECLASS-VARIABLE: GOLANG_PKG_IMPORTPATH
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
88 # @DESCRIPTION:
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
89 # 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
90 # GOLANG_PKG_IMPORTPATH="github.com/captObvious/"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
91 GOLANG_PKG_IMPORTPATH="${GOLANG_PKG_IMPORTPATH:-}"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
92
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
93 # @ECLASS-VARIABLE: GOLANG_PKG_IMPORTPATH_ALIAS
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
94 # @DESCRIPTION:
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
95 # 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
96 # GOLANG_PKG_IMPORTPATH_ALIAS="privaterepo.com/captObvious/"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
97 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
98
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
99 # @ECLASS-VARIABLE: GOLANG_PKG_ARCHIVEPREFIX
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
100 # @DESCRIPTION:
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
101 # 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
102 # 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
103 # '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
104 # This eclass defaults to an empty prefix.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
105 GOLANG_PKG_ARCHIVEPREFIX="${GOLANG_PKG_ARCHIVEPREFIX:-}"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
106
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
107 # @ECLASS-VARIABLE: GOLANG_PKG_ARCHIVESUFFIX
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
108 # @DESCRIPTION:
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
109 # 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
110 # 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
111 # '.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
112 # This eclass defaults to '.tar.gz'.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
113 GOLANG_PKG_ARCHIVESUFFIX="${GOLANG_PKG_ARCHIVESUFFIX:=".tar.gz"}"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
114
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
115 # @ECLASS-VARIABLE: GOLANG_PKG_OUTPUT_NAME
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
116 # @DESCRIPTION:
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
117 # Specifies the output file name of the package.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
118 # 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
119 # This eclass defaults to $PN.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
120 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
121
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
122 # @ECLASS-VARIABLE: GOLANG_PKG_BUILDPATH
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
123 # @DESCRIPTION:
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
124 # 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
125 # This eclass defaults to an empty value.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
126 # 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
127 GOLANG_PKG_BUILDPATH="${GOLANG_PKG_BUILDPATH:-}"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
128
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
129 # @ECLASS-VARIABLE: GOLANG_PKG_INSTALLPATH
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
130 # @DESCRIPTION:
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
131 # 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
132 # installed (e.x.: ${GOLANG_PKG_INSTALLPATH}/bin).
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
133 # This eclass defaults to "/usr"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
134 GOLANG_PKG_INSTALLPATH="${GOLANG_PKG_INSTALLPATH:="/usr"}"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
135
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
136 # @ECLASS-VARIABLE: GOLANG_PKG_INSTALLSUFFIX
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
137 # @DESCRIPTION:
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
138 # 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
139 # This eclass defaults to an empty install suffix.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
140 GOLANG_PKG_INSTALLSUFFIX="${GOLANG_PKG_INSTALLSUFFIX:-}"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
141
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
142 # @ECLASS-VARIABLE: GOLANG_PKG_IS_MULTIPLE
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
143 # @DESCRIPTION:
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
144 # 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
145
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
146 # @ECLASS-VARIABLE: GOLANG_PKG_HAVE_TEST
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
147 # @DEFAULT_UNSET
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
148 # @DESCRIPTION:
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
149 # Set to enable the execution of automated testing.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
150
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
151 # @ECLASS-VARIABLE: GOLANG_PKG_HAVE_TEST_RACE
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
152 # @DEFAULT_UNSET
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
153 # @DESCRIPTION:
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
154 # 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
155 # data race detection.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
156
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
157 # @ECLASS-VARIABLE: GOLANG_PKG_USE_CGO
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
158 # @DEFAULT_UNSET
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
159 # @DESCRIPTION:
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
160 # 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
161
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
162 # @ECLASS-VARIABLE: GOLANG_PKG_USE_GENERATE
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
163 # @DEFAULT_UNSET
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
164 # @DESCRIPTION:
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
165 # 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
166
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
167 # @ECLASS-VARIABLE: GOLANG_PKG_DEPEND_ON_GO_SUBSLOT
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
168 # @DESCRIPTION:
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
169 # 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
170 # Possible values: {yes,no}
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
171 # This eclass defaults to "no"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
172 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
173
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
174 # @ECLASS-VARIABLE: GOLANG_PKG_LDFLAGS
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
175 # @DESCRIPTION:
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
176 # 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
177 # This eclass defaults to an empty list.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
178 GOLANG_PKG_LDFLAGS="${GOLANG_PKG_LDFLAGS:-}"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
179
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
180 # @ECLASS-VARIABLE: GOLANG_PKG_TAGS
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
181 # @DESCRIPTION:
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
182 # 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
183 # This eclass defaults to an empty list.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
184 GOLANG_PKG_TAGS="${GOLANG_PKG_TAGS:-}"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
185
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
186 # @ECLASS-VARIABLE: GOLANG_PKG_VENDOR
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
187 # @DESCRIPTION:
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
188 # 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
189 # 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
190 # This eclass defaults to an empty list.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
191 GOLANG_PKG_VENDOR=()
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
192
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
193 # @ECLASS-VARIABLE: GOLANG_PKG_STATIK
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
194 # @DESCRIPTION:
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
195 # 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
196 # This eclass defaults to an empty list.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
197 GOLANG_PKG_STATIK="${GOLANG_PKG_STATIK:-}"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
198
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
199 # @ECLASS-VARIABLE: GOLANG_PKG_USE_MODULES
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
200 # @DESCRIPTION:
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
201 # 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
202
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
203
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
204 # @ECLASS-VARIABLE: GO
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
205 # @DEFAULT_UNSET
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
206 # @DESCRIPTION:
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
207 # The absolute path to the current GoLang interpreter.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
208 #
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
209 # 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
210 #
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
211 # Default value:
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
212 # @CODE
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
213 # /usr/bin/go
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
214 # @CODE
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
215
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
216 # @ECLASS-VARIABLE: EGO
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
217 # @DEFAULT_UNSET
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
218 # @DESCRIPTION:
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
219 # The executable name of the current GoLang interpreter.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
220 #
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
221 # 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
222 #
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
223 # Default value:
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
224 # @CODE
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
225 # go
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
226 # @CODE
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
227
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
228 # @ECLASS-VARIABLE: PATCHES
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
229 # @DEFAULT_UNSET
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
230 # @DESCRIPTION:
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
231 # 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
232 # 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
233 # 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
234 #
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
235 # Example:
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
236 # @CODE
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
237 # PATCHES=(
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
238 # "${FILESDIR}/mypatch.patch"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
239 # "${FILESDIR}/mypatch2.patch"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
240 # )
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
241 # @CODE
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
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
245 # 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
246 #[[ -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
247
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
248 # 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
249 [[ -n ${GOLANG_PKG_STATIK} ]] && DEPEND+=" dev-go/statik"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
250
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
251 # Validates GOLANG_PKG_IMPORTPATH.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
252 if [[ -z ${GOLANG_PKG_IMPORTPATH} ]]; then
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
253 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
254 die "Mandatory variable GOLANG_PKG_IMPORTPATH is unset"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
255 fi
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
256
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
257 # 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
258 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
259 GOLANG_PKG_BUILDPATH="/..."
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
260 fi
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
261
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
262 # 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
263 # 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
264 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
265 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
266 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
267 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
268 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
269 fi
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
270
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
271 # 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
272 # 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
273 if [[ ${GOLANG_PKG_ARCHIVESUFFIX/.*} == "xz" ]]; then
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
274 DEPEND+=" app-arch/xz-utils"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
275 fi
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
276
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
277 # Defines common USE flags
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
278 IUSE="${IUSE} debug pie"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
279 # 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
280 if [[ -n ${GOLANG_PKG_HAVE_TEST} ]]; then
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
281 IUSE+=" test"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
282 fi
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
283
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
284 # Defines HOMEPAGE.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
285 [ -z "$HOMEPAGE" ] && HOMEPAGE="https://${GOLANG_PKG_IMPORTPATH}/${PN}"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
286
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
287 # Defines SOURCE directory.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
288 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
289
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
290
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
291 # @FUNCTION: _factorize_dependency_entities
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
292 # @INTERNAL
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
293 # @DESCRIPTION:
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
294 # 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
295 # 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
296 # and the revision tag.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
297 _factorize_dependency_entities() {
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
298 debug-print-function ${FUNCNAME} "${@}"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
299
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
300 local -A dependency=()
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
301 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
302
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
303 # 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
304 local raw_dependency="${1//\ /}"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
305
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
306 # 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
307 dependency[importpathalias]="${raw_dependency##*->}"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
308
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
309 # 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
310 raw_dependency="${raw_dependency%%->*}"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
311
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
312 # Determines the import path.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
313 dependency[importpath]="${raw_dependency%:*}"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
314
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
315 # 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
316 # 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
317 if [[ "${raw_dependency}" == "${dependency[importpathalias]}" ]]; then
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
318 dependency[importpathalias]="${dependency[importpath]%/*}"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
319 fi
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
320
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
321 # Determines the host.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
322 dependency[host]="${dependency[importpath]%%/*}"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
323
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
324 # Determines the project name.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
325 dependency[project_name]="${dependency[importpath]##*/}"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
326
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
327 # Determines the author name.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
328 dependency[author_name]="${dependency[importpath]#*/}"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
329 dependency[author_name]="${dependency[author_name]%/*}"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
330
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
331 # Determines the revision.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
332 dependency[revision]="${raw_dependency#*:}"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
333
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
334 # 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
335 for key in ${key_list[@]}; do
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
336 echo "${key} ${dependency[${key}]}"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
337 done
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
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
341 # @FUNCTION: x-mgcf-golang_setup
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
342 # @DESCRIPTION:
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
343 # 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
344 # GoLang build environment.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
345 x-mgcf-golang_setup() {
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
346 debug-print-function ${FUNCNAME} "${@}"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
347
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
348 # 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
349 # 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
350 local GOLANG_BINS=(
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
351 /usr/bin/go
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
352 /usr/bin/gofmt
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
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
355 [[ -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
356
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
357 # Reset GoLang environment variables
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
358 unset EGO
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
359 unset EGOFMT
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
360 unset ESTATIK
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
361 unset GO
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
362 unset GOPATH
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
363 unset GOBIN
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
364
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
365 # Determine is the GoLang interpreter is working
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
366 local IS_EXECUTABLE=1
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
367 for binary in "${GOLANG_BINS[@]}"; do
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
368 debug-print "${FUNCNAME}: Checking ... ${binary}"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
369
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
370 [[ -x "${EPREFIX}/${binary}" ]] && continue
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
371 IS_EXECUTABLE=0
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
372 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
373 done
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
374
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
375 # 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
376 # 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
377 [[ ${IS_EXECUTABLE} == 0 ]] && exit
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
378
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
379 # dev-lang/go is available and working.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
380 # Exports GO/EGO/EGOFMT global variables.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
381 export GO="${GOLANG_BINS[0]}"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
382 export EGO="${GOLANG_BINS[0]##*/}"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
383 export EGOFMT="${GOLANG_BINS[1]}"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
384
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
385 # dev-go/statik is available and working.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
386 # Exports ESTATIK global variable.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
387 [[ -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
388
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
389 debug-print "${FUNCNAME}: GO = ${GO}"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
390 debug-print "${FUNCNAME}: EGO = ${EGO}"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
391 debug-print "${FUNCNAME}: EGOFMT = ${EGOFMT}"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
392 debug-print "${FUNCNAME}: ESTATIK = ${ESTATIK}"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
393
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
394 # Determines go interpreter version.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
395 GOLANG_VERSION="$( ${GO} version )"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
396 GOLANG_VERSION="${GOLANG_VERSION/go\ version\ go}"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
397 export GOLANG_VERSION="${GOLANG_VERSION%\ *}"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
398 einfo "Found GoLang version: ${GOLANG_VERSION}"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
399
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
400 # Determines statik interpreter version.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
401 # 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
402 if [[ -n ${GOLANG_PKG_STATIK} ]]; then
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
403 local STATIK_VERSION=""
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
404 einfo "Found statik version: ${STATIK_VERSION}"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
405 fi
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
406
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
407 # Enable/Disable frame pointers
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
408 local GOEXPERIMENT="noframepointer"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
409 use debug && GOEXPERIMENT="framepointer"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
410
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
411 # Sets the build environment inside Portage's WORKDIR.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
412 ebegin "Setting up GoLang build environment"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
413
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
414 # Prepares CGO_ENABLED.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
415 CGO_ENABLED=0
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
416 [[ -z ${GOLANG_PKG_USE_CGO} ]] || CGO_ENABLED=1
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
417 use pie && CGO_ENABLED=1 # PIE requires CGO
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
418
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
419 # Prepares gopath / gobin directories inside WORKDIR.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
420 local _GOPATH="${WORKDIR}/gopath"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
421 local _GOBIN="${WORKDIR}/gobin"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
422 mkdir -p "${_GOBIN}" || die
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
423 mkdir -p "${_GOPATH}"/src || die
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
424
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
425 # Exports special env variable EGO_SRC.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
426 export EGO_SRC="${_GOPATH}/src"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
427
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
428 # Exports GoLang env variables.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
429 export GOPATH="$_GOPATH"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
430 export GOBIN="$_GOBIN"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
431 export CGO_ENABLED
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
432 #export GOEXPERIMENT
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
433 #export GO15VENDOREXPERIMENT=0
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
434
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
435 GO111MODULE="off"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
436 [[ -z ${GOLANG_PKG_USE_MODULES} ]] || GO111MODULE="on"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
437 export GO111MODULE
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
438
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
439 debug-print "${FUNCNAME}: GOPATH = ${GOPATH}"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
440 debug-print "${FUNCNAME}: GOBIN = ${GOBIN}"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
441 debug-print "${FUNCNAME}: EGO_SRC = ${EGO_SRC}"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
442 debug-print "${FUNCNAME}: CGO_ENABLED = ${CGO_ENABLED}"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
443 eend
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
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
447 # @FUNCTION: x-mgcf-golang-common_src_prepare
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
448 # @DESCRIPTION:
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
449 # Prepare source code.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
450 x-mgcf-golang-common_src_prepare() {
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
451 debug-print-function ${FUNCNAME} "${@}"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
452
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
453 pushd "${WORKDIR}" > /dev/null || die
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
454 einfo "Preparing GoLang build environment in ${GOPATH}/src"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
455
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
456 # 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
457 # 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
458 # 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
459 # as a simbolic link pointing to the alias.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
460 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
461
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
462 # 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
463 # 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
464 local TARGET="${GOLANG_PKG_NAME}"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
465 [[ "${PN}" != "${GOLANG_PKG_NAME}" ]] && TARGET="${PN}"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
466
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
467 x-mgcf-golang_fix_importpath_alias \
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
468 "${GOLANG_PKG_IMPORTPATH_ALIAS}/${TARGET}" \
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
469 "${GOLANG_PKG_IMPORTPATH}/${GOLANG_PKG_NAME}"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
470 fi
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
471
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
472 # 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
473 # 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
474 # was set up automatically during src_unpack) phase.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
475 if [[ ${#GOLANG_PKG_DEPENDENCIES[@]} -gt 0 ]]; then
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
476
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
477 for i in ${!GOLANG_PKG_DEPENDENCIES[@]} ; do
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
478
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
479 # Collects all the tokens of the dependency.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
480 local -A DEPENDENCY=()
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
481 while read -r -d $'\n' key value; do
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
482 [[ -z ${key} ]] && continue
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
483 DEPENDENCY[$key]="${value}"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
484 done <<-EOF
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
485 $( _factorize_dependency_entities "${GOLANG_PKG_DEPENDENCIES[$i]}" )
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
486 EOF
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
487
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
488 # Debug
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
489 debug-print "${FUNCNAME}: DEPENDENCY = ${GOLANG_PKG_DEPENDENCIES[$i]}"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
490 debug-print "${FUNCNAME}: importpath = ${DEPENDENCY[importpath]}"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
491 debug-print "${FUNCNAME}: importpathalias = ${DEPENDENCY[importpathalias]}"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
492 debug-print "${FUNCNAME}: host = ${DEPENDENCY[host]}"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
493 debug-print "${FUNCNAME}: author = ${DEPENDENCY[author_name]}"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
494 debug-print "${FUNCNAME}: project = ${DEPENDENCY[project_name]}"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
495 debug-print "${FUNCNAME}: revision = ${DEPENDENCY[revision]}"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
496
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
497 local message="Importing ${DEPENDENCY[importpath]}"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
498 local destdir
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
499
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
500 # Prepares GOPATH structure.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
501 case ${DEPENDENCY[importpathalias]} in
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
502 gopkg.in*)
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
503 message+=" as ${DEPENDENCY[importpathalias]}"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
504 destdir="${DEPENDENCY[importpathalias]}"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
505
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
506 # Creates the import path in GOPATH.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
507 mkdir -p "${GOPATH}/src/${DEPENDENCY[importpathalias]%/*}" || die
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
508 #einfo "\n${GOPATH}/src/${DEPENDENCY[importpathalias]%/*}"
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 *)
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
511 [[ "${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
512 destdir="${DEPENDENCY[importpathalias]}/${DEPENDENCY[project_name]}"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
513
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
514 # Creates the import path in GOPATH.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
515 mkdir -p "${GOPATH}/src/${DEPENDENCY[importpathalias]}" || die
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
516 #einfo "\n${GOPATH}/src/${DEPENDENCY[importpathalias]}"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
517 ;;
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
518 esac
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
519
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
520 # Moves sources from WORKDIR into GOPATH.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
521 case ${DEPENDENCY[host]} in
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
522 github*)
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
523 ebegin "${message}"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
524 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
525 eend
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
526
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
527 # 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
528 # (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
529 # 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
530 # 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
531 # the original import path to avoid compilation issues.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
532 # Example: gopkg.in/Shopify/sarama.v1 erroneously
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
533 # invokes imports from github.com/shopify/sarama
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
534 if [[ ${destdir} != ${DEPENDENCY[importpath]} ]]; then
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
535 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
536 fi
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
537 ;;
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
538 bitbucket*)
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
539 #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
540 ebegin "${message}"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
541 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
542 eend
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
543 ;;
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
544 code.google*)
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
545 ebegin "${message}"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
546 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
547 eend
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
548 ;;
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
549 *) 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
550 esac
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
551 done
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
552
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
553 fi
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
554
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
555 popd > /dev/null || die
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
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
558 # Auto-detects the presence of Go's vendored
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
559 # dependencies inside $S/vendor.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
560 local VENDOR="${S}/vendor"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
561 if [[ -d "${VENDOR}" ]]; then
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
562 x-mgcf-golang_add_vendor "${VENDOR}"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
563 export GO15VENDOREXPERIMENT=1
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
564 fi
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
565
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
566 # Auto-detects the presence of Go's vendored
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
567 # dependencies inside $S/*/vendor
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
568 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
569 while read -r -d $' ' path; do
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
570 # Trims leading slash (if any).
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
571 path="${path/\//}"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
572
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
573 # Extracts the root path.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
574 path="${path%%/*}"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
575
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
576 # 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
577 [[ -n $path ]] || continue
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
578
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
579 local vendor="${S}/${path}/vendor"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
580 if [[ -d "${vendor}" ]]; then
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
581 x-mgcf-golang_add_vendor "${vendor}"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
582 fi
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
583 done <<< "$( echo ${GOLANG_PKG_BUILDPATH}) "
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
584 fi
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
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
587 # Auto-detects the presence of Godep's workspace
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
588 # (see github.com/tools/godep for more infos).
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
589 VENDOR="${S}/Godeps/_workspace"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
590 if [[ -d "${VENDOR}" ]]; then
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
591 x-mgcf-golang_add_vendor "${VENDOR}"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
592 fi
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
593
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
594 # Evaluates PATCHES array.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
595 default_src_prepare
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
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
599 # @FUNCTION: x-mgcf-golang-common_src_configure
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
600 # @DESCRIPTION:
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
601 # Configure the package.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
602 x-mgcf-golang-common_src_configure() {
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
603 debug-print-function ${FUNCNAME} "${@}"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
604
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
605 [[ ${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
606
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
607 # Defines the level of verbosity.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
608 local EGO_VERBOSE="-v"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
609 [[ -z ${PORTAGE_VERBOSE} ]] || EGO_VERBOSE+=" -x"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
610
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
611 # GoLang doesn't have a configure phase,
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
612 # 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
613 local -a GOLANG_ENV=()
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
614 while read -r line; do
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
615 GOLANG_ENV+=("${line}")
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
616 done <<-EOF
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
617 $( ${GO} env )
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
618 EOF
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
619
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
620 # 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
621 if [[ ${#GOLANG_ENV[@]} -eq 1 ]]; then
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
622 eerror "Your GoLang environment should be more verbose"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
623 fi
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
624
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
625 # Prints GoLang environment summary.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
626 einfo " ${EGO} env"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
627 for env in "${GOLANG_ENV[@]}"; do
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
628 einfo " - ${env}"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
629 done
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
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
632 # 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
633 # and temporary directories (_obj/ _test*/).
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
634 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
635 case $( ver_cut 1-2 ${GOLANG_VERSION} ) in
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
636 1.4*) ;;
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
637 *)
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
638 EGO_SUBPACKAGES+="/..."
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
639 ;;
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
640 esac
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
641 # einfo "${EGO} clean -i ${EGO_VERBOSE} ${EGO_SUBPACKAGES}"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
642 # ${EGO} clean -i \
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
643 # ${EGO_VERBOSE} \
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
644 # "${EGO_SUBPACKAGES}" \
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
645 # || die
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
646
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
647 # 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
648 # if [[ ${#GOLANG_PKG_DEPENDENCIES[@]} -gt 0 ]]; then
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
649 #
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
650 # for i in ${!GOLANG_PKG_DEPENDENCIES[@]} ; do
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
651 #
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
652 # # Collects all the tokens of the dependency.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
653 # local -A DEPENDENCY=()
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
654 # while read -r -d $'\n' key value; do
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
655 # [[ -z ${key} ]] && continue
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
656 # DEPENDENCY[$key]="${value}"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
657 # done <<-EOF
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
658 # $( _factorize_dependency_entities "${GOLANG_PKG_DEPENDENCIES[$i]}" )
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
659 # EOF
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
660 #
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
661 # [[ ! -d ${DEPENDENCY[importpath]} ]] && continue
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
662 #
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
663 # # Debug
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
664 # debug-print "${FUNCNAME}: DEPENDENCY = ${GOLANG_PKG_DEPENDENCIES[$i]}"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
665 # debug-print "${FUNCNAME}: importpath = ${DEPENDENCY[importpath]}"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
666 #
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
667 # # Cleans object files of the dependency.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
668 # einfo "${EGO} clean -i ${EGO_VERBOSE} ${DEPENDENCY[importpath]}"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
669 # ${EGO} clean \
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
670 # -i ${EGO_VERBOSE} \
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
671 # "${DEPENDENCY[importpath]}" \
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
672 # || die
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
673 # done
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
674 # fi
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
675
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
676 # 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
677 # 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
678 if [[ -d "${S}"/Godeps/_workspace/pkg ]]; then
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
679 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
680 rm -r "${S}"/Godeps/_workspace/pkg || die
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
681 eend
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
682 fi
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
683 if [[ -d "${S}"/Godeps/_workspace/bin ]]; then
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
684 ebegin "Cleaning up executables in Godep workspace"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
685 rm -r "${S}"/Godeps/_workspace/bin || die
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
686 eend
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
687 fi
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
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
690 # Executes 'go generate'.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
691 # 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
692 if [[ -n ${GOLANG_PKG_USE_GENERATE} ]]; then
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
693 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
694 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
695 ${EGO} generate \
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
696 ${EGO_VERBOSE} \
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
697 ./... \
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
698 || die
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
699 popd > /dev/null || die
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
700 fi
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
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
703 # Executes 'statik' when explicitly asked.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
704 if [[ -n ${GOLANG_PKG_STATIK} ]]; then
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
705 ebegin "${ESTATIK} $GOLANG_PKG_STATIK"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
706 ${ESTATIK} $GOLANG_PKG_STATIK || die
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
707 eend
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
708 fi
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
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
712 # @FUNCTION: x-mgcf-golang-common_src_compile
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
713 # @DESCRIPTION:
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
714 # Compiles the package.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
715 x-mgcf-golang-common_src_compile() {
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
716 debug-print-function ${FUNCNAME} "${@}"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
717
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
718 [[ ${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
719
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
720 # 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
721 if [[ -n ${GOLANG_PKG_VENDOR} ]]; then
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
722 einfo "Using vendored dependencies from:"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
723
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
724 for path in "${GOLANG_PKG_VENDOR[@]}"; do
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
725 [ -d ${path} ] || continue
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
726
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
727 if [[ ${path//${S}\//} == "vendor" ]]; then
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
728 einfo "- vendor/ (native vendoring support)"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
729 continue
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
730 fi
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
731
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
732 debug-print "$FUNCNAME: GOPATH: Adding vendor path ${path}"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
733 ebegin "- ${path//${S}\//}"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
734 GOPATH="${GOPATH}:$( echo ${path} )"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
735 eend
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
736 done
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
737
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
738 export GOPATH
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
739 fi
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
740
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
741 # Enables position-independent executables (PIE)
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
742 local EGO_PIE
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
743 use pie && EGO_PIE="-buildmode=pie"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
744
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
745 # Defines the install suffix.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
746 local EGO_INSTALLSUFFIX
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
747 [[ -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
748
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
749 # Defines the level of verbosity.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
750 local EGO_VERBOSE="-v"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
751 [[ -z ${PORTAGE_VERBOSE} ]] || EGO_VERBOSE+=" -x"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
752
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
753 # 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
754 local EGO_PARALLEL="-p $(makeopts_jobs)"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
755
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
756 # Defines extra options.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
757 local EGO_EXTRA_OPTIONS="-a"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
758
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
759 # Prepares build flags for the go toolchain.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
760 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
761 [[ -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
762
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
763 # Detects the total number of packages.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
764 local pkgs=0 ifs_save=${IFS} IFS=$' '
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
765 for path in ${GOLANG_PKG_BUILDPATH[@]} ; do
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
766 pkgs=$(( $pkgs + 1 ))
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
767 done
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
768 [[ ${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
769 IFS=${ifs_save}
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
770
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
771 # Builds the package
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
772 einfo "Compiling ${pkgs} package(s):"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
773 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
774
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
775 # 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
776 # 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
777 # 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
778 # 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
779 # a single element.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
780 while read -r -d $' ' cmd; do
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
781 # 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
782 #einfo "cmd: |$cmd| cmd: |${cmd##*/}|"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
783 [[ -n $cmd ]] || continue
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
784
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
785 x-mgcf-golang_do_build \
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
786 ${EGO_BUILD_FLAGS} \
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
787 -o "${GOBIN}/${cmd##*/}" \
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
788 "${GOLANG_PKG_IMPORTPATH_ALIAS}/${GOLANG_PKG_NAME}${cmd}"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
789 done <<< "$( echo ${GOLANG_PKG_BUILDPATH}) "
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
790 else
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
791 # If the package is a multiple package (/...)
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
792 # 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
793 [[ ${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
794
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
795 x-mgcf-golang_do_build \
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
796 ${EGO_BUILD_FLAGS} \
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
797 "${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
798 fi
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
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
802 # @FUNCTION: x-mgcf-golang-common_src_install
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
803 # @DESCRIPTION:
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
804 # 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
805 x-mgcf-golang-common_src_install() {
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
806 debug-print-function ${FUNCNAME} "${@}"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
807
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
808 [[ ${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
809
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
810 # Enables position-independent executables (PIE)
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
811 local EGO_PIE
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
812 use pie && EGO_PIE="-buildmode=pie"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
813
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
814 # Defines the install suffix.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
815 local EGO_INSTALLSUFFIX
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
816 [[ -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
817
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
818 # Defines the level of verbosity.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
819 local EGO_VERBOSE="-v"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
820 [[ -z ${PORTAGE_VERBOSE} ]] || EGO_VERBOSE+=" -x"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
821
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
822 # 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
823 local EGO_PARALLEL="-p $(makeopts_jobs)"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
824
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
825 # Defines extra options.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
826 local EGO_EXTRA_OPTIONS
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
827
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
828 # Prepares build flags for the go toolchain.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
829 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
830 [[ -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
831
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
832 # Defines sub-packages.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
833 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
834
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
835 # Executes the pre-install phase (go install).
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
836 if [[ -n ${GOLANG_PKG_IS_MULTIPLE} ]]; then
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
837 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
838 ${EGO} install \
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
839 -ldflags "${GOLANG_PKG_LDFLAGS}" \
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
840 -tags "${GOLANG_PKG_TAGS}" \
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
841 ${EGO_BUILD_FLAGS} \
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
842 "${EGO_SUBPACKAGES}" \
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
843 || die
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
844 fi
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
845
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
846 # Installs binaries.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
847 into ${GOLANG_PKG_INSTALLPATH}
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
848 for bin in "${GOBIN}"/* ; do
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
849 dobin ${bin}
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
850 done
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
851
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
852 # Installs documentation.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
853 einstalldocs
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
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
856 # @FUNCTION: x-mgcf-golang-common_src_test
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
857 # @DESCRIPTION:
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
858 # Runs the unit tests for the main package.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
859 x-mgcf-golang-common_src_test() {
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
860 debug-print-function ${FUNCNAME} "${@}"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
861
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
862 [[ ${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
863
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
864 # Appends S and GOBIN to exported main paths.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
865 # 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
866 # $GOBIN or from within $S/bin.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
867 export PATH="${S}/bin:${GOBIN}:${PATH}"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
868
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
869 # Defines the level of verbosity.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
870 local EGO_VERBOSE="-v"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
871 [[ -z ${PORTAGE_VERBOSE} ]] || EGO_VERBOSE+=" -x"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
872
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
873 # 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
874 local EGO_PARALLEL="-p $(makeopts_jobs)"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
875
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
876 # Defines extra options.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
877 #local EGO_EXTRA_OPTIONS="-a"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
878
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
879 # Enables data race detection.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
880 local EGO_RACE
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
881 [[ -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
882
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
883 # Prepares build flags for the go toolchain.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
884 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
885 [[ -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
886
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
887 # Sanitizes vars from entra white spaces.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
888 GOLANG_PKG_LDFLAGS="$( echo ${GOLANG_PKG_LDFLAGS} )"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
889 GOLANG_PKG_TAGS="$( echo ${GOLANG_PKG_TAGS} )"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
890
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
891 # Defines sub-packages.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
892 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
893 [[ -z ${GOLANG_PKG_IS_MULTIPLE} ]] || EGO_SUBPACKAGES="./..."
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
894
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
895 # Detects the total number of packages.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
896 local pkgs=0 ifs_save=${IFS} IFS=$' '
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
897 for path in ${GOLANG_PKG_BUILDPATH[@]} ; do
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
898 pkgs=$(( $pkgs + 1 ))
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
899 done
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
900 [[ ${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
901 IFS=${ifs_save}
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
902
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
903 # Runs the Unit Tests
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
904 einfo "Testing ${pkgs} package(s):"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
905 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
906
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
907 # 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
908 # 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
909 # 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
910 # 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
911 # a single element.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
912 while read -r -d $' ' cmd; do
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
913 # 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
914 #einfo "cmd: |$cmd| cmd: |${cmd##*/}|"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
915 [[ -n $cmd ]] || continue
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
916
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
917 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
918 ${EGO} test \
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
919 -ldflags "${GOLANG_PKG_LDFLAGS}" \
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
920 -tags "${GOLANG_PKG_TAGS}" \
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
921 ${EGO_BUILD_FLAGS} \
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
922 "${GOLANG_PKG_IMPORTPATH_ALIAS}/${GOLANG_PKG_NAME}${cmd}/..." \
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
923 || die
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
924 done <<< "$( echo ${GOLANG_PKG_BUILDPATH}) "
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
925 else
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
926 # It's a single package
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
927 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
928 ${EGO} test \
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
929 -ldflags "${GOLANG_PKG_LDFLAGS}" \
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
930 -tags "${GOLANG_PKG_TAGS}" \
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
931 ${EGO_BUILD_FLAGS} \
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
932 "${EGO_SUBPACKAGES}" \
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
933 || die
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
934 fi
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
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
938 # @FUNCTION: x-mgcf-golang_do_build
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
939 # @INTERNAL
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
940 # @USAGE: <flags> <buildpath>
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
941 # @DESCRIPTION:
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
942 #
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
943 # @CODE
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
944 # Example:
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
945 # GOLANG_PKG_LDFLAGS="-extldflags=-static"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
946 # GOLANG_PKG_TAGS="netgo"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
947 #
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
948 # 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
949 # @CODE
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
950 x-mgcf-golang_do_build() {
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
951 debug-print-function ${FUNCNAME} $*
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
952
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
953 [[ ${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
954
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
955 # Filters "=" chars from ldflags declaration.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
956 # 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
957 # 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
958 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
959 GOLANG_PKG_LDFLAGS="${GOLANG_PKG_LDFLAGS//=/ }"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
960 fi
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
961
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
962 # Disables debug symbols (DWARF) when not required.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
963 if ! use debug; then
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
964 case "${GOLANG_PKG_LDFLAGS}" in
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
965 *-s*|*-w*)
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
966 # Do nothing
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 *)
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
969 GOLANG_PKG_LDFLAGS+=" -s -w"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
970 esac
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
971 fi
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
972
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
973 # Sanitizes vars from entra white spaces.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
974 GOLANG_PKG_LDFLAGS="$( echo ${GOLANG_PKG_LDFLAGS} )"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
975 GOLANG_PKG_TAGS="$( echo ${GOLANG_PKG_TAGS} )"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
976
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
977 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
978 ${EGO} build \
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
979 -ldflags "${GOLANG_PKG_LDFLAGS}" \
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
980 -tags "${GOLANG_PKG_TAGS}" \
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
981 $( echo $* ) \
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
982 || die
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
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
986 # @FUNCTION: x-mgcf-golang_add_vendor
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
987 # @INTERNAL
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
988 # @USAGE: <path>
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
989 # @DESCRIPTION:
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
990 #
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
991 # @CODE
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
992 # Example
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
993 #
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
994 # x-mgcf-golang_add_vendor "${S}"/vendor
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
995 # x-mgcf-golang_add_vendor "${S}"/${PN}/vendor
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
996 # @CODE
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
997 x-mgcf-golang_add_vendor() {
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
998 debug-print-function ${FUNCNAME} $*
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
999
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
1000 [[ ${1} ]] || die "${FUNCNAME}: no paths given"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
1001
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
1002 [[ ${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
1003
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
1004 [[ ! -d "${1}" ]] && return
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
1005
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
1006 # 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
1007 #if [[ ! -d "${1}"/src ]]; then
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
1008 # ebegin "Fixing $1"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
1009 # ln -s "${1}" "${1}"/src || die
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
1010 # eend
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
1011 #fi
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
1012
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
1013 GOLANG_PKG_VENDOR+=(${1})
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
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
1017 # @FUNCTION: x-mgcf-golang_fix_importpath_alias
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
1018 # @USAGE: <target> <alias>
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
1019 # @DESCRIPTION:
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
1020 # 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
1021 # <alias>.
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
1022 #
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
1023 # 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
1024 # 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
1025 # 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
1026 # import path is not).
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
1027 #
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
1028 # @CODE
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
1029 # Example:
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
1030 #
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
1031 # src_prepare() {
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
1032 # x-mgcf-golang-single_src_prepare
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
1033 #
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
1034 # x-mgcf-golang_fix_importpath_alias \
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
1035 # "github.com/GoogleCloudPlatform/gcloud-golang" \
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
1036 # "google.golang.org/cloud"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
1037 # }
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
1038 # @CODE
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
1039 x-mgcf-golang_fix_importpath_alias() {
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
1040 debug-print-function ${FUNCNAME} "${@}"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
1041
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
1042 [[ ${1} ]] || die "${FUNCNAME}: no target specified"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
1043 [[ ${2} ]] || die "${FUNCNAME}: no alias specified"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
1044
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
1045 [[ ${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
1046
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
1047
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
1048 local TARGET="${1}"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
1049 local ALIAS="${2}"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
1050
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
1051 if [[ ${ALIAS%/*} != ${ALIAS} ]]; then
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
1052 mkdir -p "${GOPATH}/src/${ALIAS%/*}" || die
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
1053 fi
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
1054 ebegin "Linking ${TARGET} as ${ALIAS}"
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
1055 ln -s "${GOPATH}/src/${TARGET}" \
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
1056 "${GOPATH}/src/${ALIAS}" \
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
1057 || die
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
1058 eend
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
0685ed0fb913 [sync] imported 2c6bf87..18f98a6 from upstream
Migration Sync <gentoo-overlay@megacoffee.net>
parents:
diff changeset
1062 fi