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 |