Guest User

Untitled

a guest
Oct 5th, 2018
162
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.55 KB | None | 0 0
  1. From 095da4e6f02426a912c6e0b53a09d2f449421da4 Mon Sep 17 00:00:00 2001
  2. From: David Leverton <[email protected]>
  3. Date: Tue, 17 Apr 2012 20:22:30 +0100
  4. Subject: [PATCH] Integrate scm.exlib and easy-multibuild.exlib [
  5. multiunpack=true ]
  6.  
  7. ---
  8. exlibs/easy-multibuild.exlib | 14 ++++++++++++++
  9. exlibs/scm.exlib | 29 +++++++++++++++++++++--------
  10. 2 files changed, 35 insertions(+), 8 deletions(-)
  11.  
  12. diff --git a/exlibs/easy-multibuild.exlib b/exlibs/easy-multibuild.exlib
  13. index 1efb73f..4fb8583 100644
  14. --- a/exlibs/easy-multibuild.exlib
  15. +++ b/exlibs/easy-multibuild.exlib
  16. @@ -79,6 +79,20 @@ if exparam -b multiunpack ; then
  17. easy-multibuild_src_prepare() {
  18. easy-multibuild_run_phase
  19. }
  20. +
  21. + scm_multiunpack_hook() {
  22. + local unpack_to=${1}
  23. + local MULTIBUILD_CLASS MULTIBUILD_TARGET targetsv
  24. +
  25. + for MULTIBUILD_CLASS in "${EASY_MULTIBUILD_CLASSES[@]}" ; do
  26. + targetsv="MULTIBUILD_${MULTIBUILD_CLASS}_TARGETS"
  27. + for MULTIBUILD_TARGET in ${!targetsv} ; do
  28. + if option multibuild_${MULTIBUILD_CLASS,,}:${MULTIBUILD_TARGET} ; then
  29. + scm_multiunpack "${WORKBASE}/${MULTIBUILD_CLASS}/${MULTIBUILD_TARGET}/${unpack_to#${WORKBASE}/}"
  30. + fi
  31. + done
  32. + done
  33. + }
  34. else
  35. configure_prepare_one_multibuild() {
  36. edo mkdir -p "${WORKBASE}/${MULTIBUILD_CLASS}/${MULTIBUILD_TARGET}"
  37. diff --git a/exlibs/scm.exlib b/exlibs/scm.exlib
  38. index 66bb786..b0a302d 100644
  39. --- a/exlibs/scm.exlib
  40. +++ b/exlibs/scm.exlib
  41. @@ -231,6 +231,26 @@ scm_do_set_actual_vars() {
  42. scm_set_var ACTUAL_REVISION "${rev}"
  43. }
  44.  
  45. +scm_multiunpack() {
  46. + local $(scm_var_name UNPACK_TO)=${1}
  47. +
  48. + local dir=${1}
  49. + if [[ -d ${dir} ]]; then
  50. + rmdir "${dir}" || die "rmdir failed"
  51. + else
  52. + mkdir -p "${dir%/*}" || die mkdir "failed"
  53. + fi
  54. +
  55. + scm_call unpack
  56. + rm -f "${dir}/.scm.exlib.timestamp"{,.*}
  57. +}
  58. +
  59. +if [[ -z $(declare -F scm_multiunpack_hook) ]]; then
  60. + scm_multiunpack_hook() {
  61. + scm_multiunpack "${1}"
  62. + }
  63. +fi
  64. +
  65. scm_unpack_one() {
  66. scm_call resolve_externals
  67.  
  68. @@ -242,15 +262,8 @@ scm_unpack_one() {
  69. die "$(scm_get_var CHECKOUT_TO) does not exist"
  70. fi
  71.  
  72. - local dir=$(scm_get_var UNPACK_TO)
  73. - if [[ -d ${dir} ]]; then
  74. - rmdir "${dir}" || die "rmdir failed"
  75. - else
  76. - mkdir -p "${dir%/*}" || die mkdir "failed"
  77. - fi
  78. + scm_multiunpack_hook "$(scm_get_var UNPACK_TO)"
  79.  
  80. - scm_call unpack
  81. - rm -f "${dir}/.scm.exlib.timestamp"{,.*}
  82. scm_call set_actual_vars
  83. scm_scmrevision_one
  84. }
  85. --
  86. 1.7.10
Add Comment
Please, Sign In to add comment