Gentoo Archives: gentoo-dev

From: Mike Gilbert <floppym@g.o>
To: gentoo-dev@l.g.o
Cc: toolchain@g.o
Subject: [gentoo-dev] [PATCH 1/2] toolchain-funcs.eclass: rework _tc-getPROG to accept a colon-separated list of default programs
Date: Thu, 01 Jun 2017 18:03:15
Message-Id: 20170601180302.27466-1-floppym@gentoo.org
1 ---
2 eclass/toolchain-funcs.eclass | 39 +++++++++++++++++++++++++++++++--------
3 1 file changed, 31 insertions(+), 8 deletions(-)
4
5 diff --git a/eclass/toolchain-funcs.eclass b/eclass/toolchain-funcs.eclass
6 index a0c359a950b2..b402a9ff2780 100644
7 --- a/eclass/toolchain-funcs.eclass
8 +++ b/eclass/toolchain-funcs.eclass
9 @@ -17,12 +17,13 @@ _TOOLCHAIN_FUNCS_ECLASS=1
10
11 inherit multilib
12
13 -# tc-getPROG <VAR [search vars]> <default> [tuple]
14 +# tc-getPROG <VAR [search vars]> [prog:...]<default> [tuple]
15 _tc-getPROG() {
16 - local tuple=$1
17 - local v var vars=$2
18 - local prog=( $3 )
19 + local IFS
20
21 + IFS='
22 +'
23 + local v var vars=$2
24 var=${vars%% *}
25 for v in ${vars} ; do
26 if [[ -n ${!v} ]] ; then
27 @@ -32,10 +33,32 @@ _tc-getPROG() {
28 fi
29 done
30
31 - local search=
32 - [[ -n $4 ]] && search=$(type -p $4-${prog[0]})
33 - [[ -z ${search} && -n ${!tuple} ]] && search=$(type -p ${!tuple}-${prog[0]})
34 - [[ -n ${search} ]] && prog[0]=${search##*/}
35 + local tuple=$4
36 + [[ -z ${tuple} ]] && tuple=${!1}
37 +
38 + IFS=:
39 + local proglist=( $3 )
40 +
41 + IFS='
42 +'
43 + local p prog search=
44 + for p in "${proglist[@]}"; do
45 + # Look for tuple-prog first
46 + prog=( ${p} )
47 + search=$(type -p "${tuple}-${prog[0]}")
48 + if [[ -n ${search} ]]; then
49 + prog[0]="${tuple}-${prog[0]}"
50 + break
51 + fi
52 + done
53 + if [[ -z ${search} ]]; then
54 + # Then try prog with no prefix
55 + for p in "${proglist[@]}"; do
56 + prog=( ${p} )
57 + search=$(type -p "${prog[0]}")
58 + [[ -n ${search} ]] && break
59 + done
60 + fi
61
62 export ${var}="${prog[*]}"
63 echo "${!var}"
64 --
65 2.13.0

Replies