From e5dc76894ae8fbc95126ebb54a838e0342686b96 Mon Sep 17 00:00:00 2001 From: Brad King Date: Tue, 8 May 2012 09:43:19 -0400 Subject: [PATCH] bootstrap: Port back to old shells (#13199) Since commit f39e82c9 (bootstrap: Re-implement command line option processing, 2011-12-16) bootstrap uses POSIX shell expressions of the form "${x#y}" to remove prefix pattern 'y' from the vaule of 'x'. Although this is allowed by POSIX old shells on some platforms do not support it. Revert to using 'sed' to work with old shells. --- bootstrap | 27 ++++++++++++++++++--------- 1 file changed, 18 insertions(+), 9 deletions(-) diff --git a/bootstrap b/bootstrap index 3be3d1f68..7b044e72b 100755 --- a/bootstrap +++ b/bootstrap @@ -460,6 +460,12 @@ cmake_escape () echo $1 | sed "s/ /\\\\ /g" } +# Strip prefix from argument +cmake_arg () +{ + echo "$1" | sed "s/^${2-[^=]*=}//" +} + # Write message to the log cmake_log () { @@ -544,21 +550,24 @@ cmake_ccache_enabled= cmake_prefix_dir="${cmake_default_prefix}" while test $# != 0; do case "$1" in - --prefix=*) cmake_prefix_dir=`cmake_fix_slashes "${1#*=}"` ;; - --parallel=*) cmake_parallel_make="${1#*=}" ;; - --datadir=*) cmake_data_dir="${1#*=}" ;; - --docdir=*) cmake_doc_dir="${1#*=}" ;; - --mandir=*) cmake_man_dir="${1#*=}" ;; - --init=*) cmake_init_file="${1#*=}" ;; + --prefix=*) dir=`cmake_arg "$1"` + cmake_prefix_dir=`cmake_fix_slashes "$dir"` ;; + --parallel=*) cmake_parallel_make=`cmake_arg "$1"` ;; + --datadir=*) cmake_data_dir=`cmake_arg "$1"` ;; + --docdir=*) cmake_doc_dir=`cmake_arg "$1"` ;; + --mandir=*) cmake_man_dir=`cmake_arg "$1"` ;; + --init=*) cmake_init_file=`cmake_arg "$1"` ;; --system-libs) cmake_bootstrap_system_libs="${cmake_bootstrap_system_libs} -DCMAKE_USE_SYSTEM_LIBRARIES=1" ;; --no-system-libs) cmake_bootstrap_system_libs="${cmake_bootstrap_system_libs} -DCMAKE_USE_SYSTEM_LIBRARIES=0" ;; --system-bzip2|--system-curl|--system-expat|--system-libarchive|--system-zlib) - cmake_bootstrap_system_libs="${cmake_bootstrap_system_libs} -DCMAKE_USE_SYSTEM_LIBRARY_`cmake_toupper ${1#--system-}`=1" ;; + lib=`cmake_arg "$1" "--system-"` + cmake_bootstrap_system_libs="${cmake_bootstrap_system_libs} -DCMAKE_USE_SYSTEM_LIBRARY_`cmake_toupper $lib`=1" ;; --no-system-bzip2|--no-system-curl|--no-system-expat|--no-system-libarchive|--no-system-zlib) - cmake_bootstrap_system_libs="${cmake_bootstrap_system_libs} -DCMAKE_USE_SYSTEM_LIBRARY_`cmake_toupper ${1#--no-system-}`=0" ;; + lib=`cmake_arg "$1" "--no-system-"` + cmake_bootstrap_system_libs="${cmake_bootstrap_system_libs} -DCMAKE_USE_SYSTEM_LIBRARY_`cmake_toupper $lib`=0" ;; --qt-gui) cmake_bootstrap_qt_gui="1" ;; --no-qt-gui) cmake_bootstrap_qt_gui="0" ;; - --qt-qmake=*) cmake_bootstrap_qt_qmake="${1#*=}" ;; + --qt-qmake=*) cmake_bootstrap_qt_qmake=`cmake_arg "$1"` ;; --help) cmake_usage ;; --version) cmake_version_display ; exit 2 ;; --verbose) cmake_verbose=TRUE ;;