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 @ 249:0685ed0fb913

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