Gentoo Archives: gentoo-dev

From: "Michał Górny" <mgorny@g.o>
To: gentoo-dev@l.g.o
Cc: python@g.o, "Michał Górny" <mgorny@g.o>
Subject: [gentoo-dev] [PATCH 4/8] Convert multilib-build to use multibuild.
Date: Wed, 27 Feb 2013 21:44:28
Message-Id: 1362001405-25636-4-git-send-email-mgorny@gentoo.org
In Reply to: [gentoo-dev] [RFC] multibuild.eclass -- a generic pluggable framework to handle multi-variant builds by "Michał Górny"
1 ---
2 gx86/eclass/multilib-build.eclass | 45 ++++++++++++++++++---------------------
3 1 file changed, 21 insertions(+), 24 deletions(-)
4
5 diff --git a/gx86/eclass/multilib-build.eclass b/gx86/eclass/multilib-build.eclass
6 index b1afd85..4321e45 100644
7 --- a/gx86/eclass/multilib-build.eclass
8 +++ b/gx86/eclass/multilib-build.eclass
9 @@ -23,7 +23,7 @@ case ${EAPI:-0} in
10 *) die "EAPI=${EAPI} is not supported" ;;
11 esac
12
13 -inherit multilib multiprocessing
14 +inherit multibuild multilib
15
16 # @ECLASS-VARIABLE: _MULTILIB_FLAGS
17 # @INTERNAL
18 @@ -85,6 +85,19 @@ multilib_get_enabled_abis() {
19 fi
20 }
21
22 +# @FUNCTION: _multilib_multibuild_wrapper
23 +# @USAGE: <argv>...
24 +# @INTERNAL
25 +# @DESCRIPTION:
26 +# Initialize the environment for ABI selected for multibuild.
27 +_multilib_multibuild_wrapper() {
28 + debug-print-function ${FUNCNAME} "${@}"
29 +
30 + local ABI=${MULTIBUILD_VARIANT}
31 + multilib_toolchain_setup "${ABI}"
32 + "${@}"
33 +}
34 +
35 # @FUNCTION: multilib_foreach_abi
36 # @USAGE: <argv>...
37 # @DESCRIPTION:
38 @@ -95,14 +108,11 @@ multilib_get_enabled_abis() {
39 # If multilib support is disabled, it just runs the commands. No setup
40 # is done.
41 multilib_foreach_abi() {
42 - local initial_dir=${BUILD_DIR:-${S}}
43 + debug-print-function ${FUNCNAME} "${@}"
44
45 - local ABI
46 - for ABI in $(multilib_get_enabled_abis); do
47 - multilib_toolchain_setup "${ABI}"
48 - local BUILD_DIR=${initial_dir%%/}-${ABI}
49 - "${@}" | tee -a "${T}/build-${ABI}.log"
50 - done
51 + local MULTIBUILD_VARIANTS=( $(multilib_get_enabled_abis) )
52 +
53 + multibuild_foreach _multilib_multibuild_wrapper "${@}"
54 }
55
56 # @FUNCTION: multilib_parallel_foreach_abi
57 @@ -118,24 +128,11 @@ multilib_foreach_abi() {
58 #
59 # Useful for running configure scripts.
60 multilib_parallel_foreach_abi() {
61 - local initial_dir=${BUILD_DIR:-${S}}
62 -
63 - multijob_init
64 -
65 - local ABI
66 - for ABI in $(multilib_get_enabled_abis); do
67 - (
68 - multijob_child_init
69 -
70 - multilib_toolchain_setup "${ABI}"
71 - local BUILD_DIR=${initial_dir%%/}-${ABI}
72 - "${@}" 2>&1 | tee -a "${T}/build-${ABI}.log"
73 - ) &
74 + debug-print-function ${FUNCNAME} "${@}"
75
76 - multijob_post_fork
77 - done
78 + local MULTIBUILD_VARIANTS=( $(multilib_get_enabled_abis) )
79
80 - multijob_finish
81 + multibuild_parallel_foreach _multilib_multibuild_wrapper "${@}"
82 }
83
84 # @FUNCTION: multilib_check_headers
85 --
86 1.8.1.4