Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- From 095da4e6f02426a912c6e0b53a09d2f449421da4 Mon Sep 17 00:00:00 2001
- From: David Leverton <[email protected]>
- Date: Tue, 17 Apr 2012 20:22:30 +0100
- Subject: [PATCH] Integrate scm.exlib and easy-multibuild.exlib [
- multiunpack=true ]
- ---
- exlibs/easy-multibuild.exlib | 14 ++++++++++++++
- exlibs/scm.exlib | 29 +++++++++++++++++++++--------
- 2 files changed, 35 insertions(+), 8 deletions(-)
- diff --git a/exlibs/easy-multibuild.exlib b/exlibs/easy-multibuild.exlib
- index 1efb73f..4fb8583 100644
- --- a/exlibs/easy-multibuild.exlib
- +++ b/exlibs/easy-multibuild.exlib
- @@ -79,6 +79,20 @@ if exparam -b multiunpack ; then
- easy-multibuild_src_prepare() {
- easy-multibuild_run_phase
- }
- +
- + scm_multiunpack_hook() {
- + local unpack_to=${1}
- + local MULTIBUILD_CLASS MULTIBUILD_TARGET targetsv
- +
- + for MULTIBUILD_CLASS in "${EASY_MULTIBUILD_CLASSES[@]}" ; do
- + targetsv="MULTIBUILD_${MULTIBUILD_CLASS}_TARGETS"
- + for MULTIBUILD_TARGET in ${!targetsv} ; do
- + if option multibuild_${MULTIBUILD_CLASS,,}:${MULTIBUILD_TARGET} ; then
- + scm_multiunpack "${WORKBASE}/${MULTIBUILD_CLASS}/${MULTIBUILD_TARGET}/${unpack_to#${WORKBASE}/}"
- + fi
- + done
- + done
- + }
- else
- configure_prepare_one_multibuild() {
- edo mkdir -p "${WORKBASE}/${MULTIBUILD_CLASS}/${MULTIBUILD_TARGET}"
- diff --git a/exlibs/scm.exlib b/exlibs/scm.exlib
- index 66bb786..b0a302d 100644
- --- a/exlibs/scm.exlib
- +++ b/exlibs/scm.exlib
- @@ -231,6 +231,26 @@ scm_do_set_actual_vars() {
- scm_set_var ACTUAL_REVISION "${rev}"
- }
- +scm_multiunpack() {
- + local $(scm_var_name UNPACK_TO)=${1}
- +
- + local dir=${1}
- + if [[ -d ${dir} ]]; then
- + rmdir "${dir}" || die "rmdir failed"
- + else
- + mkdir -p "${dir%/*}" || die mkdir "failed"
- + fi
- +
- + scm_call unpack
- + rm -f "${dir}/.scm.exlib.timestamp"{,.*}
- +}
- +
- +if [[ -z $(declare -F scm_multiunpack_hook) ]]; then
- + scm_multiunpack_hook() {
- + scm_multiunpack "${1}"
- + }
- +fi
- +
- scm_unpack_one() {
- scm_call resolve_externals
- @@ -242,15 +262,8 @@ scm_unpack_one() {
- die "$(scm_get_var CHECKOUT_TO) does not exist"
- fi
- - local dir=$(scm_get_var UNPACK_TO)
- - if [[ -d ${dir} ]]; then
- - rmdir "${dir}" || die "rmdir failed"
- - else
- - mkdir -p "${dir%/*}" || die mkdir "failed"
- - fi
- + scm_multiunpack_hook "$(scm_get_var UNPACK_TO)"
- - scm_call unpack
- - rm -f "${dir}/.scm.exlib.timestamp"{,.*}
- scm_call set_actual_vars
- scm_scmrevision_one
- }
- --
- 1.7.10
Add Comment
Please, Sign In to add comment