From 5cd879c4e75405ab404a2e6c4e77caa36877baf1 Mon Sep 17 00:00:00 2001 From: Brad King Date: Wed, 29 Feb 2012 14:29:16 -0500 Subject: [PATCH] bootstrap: Convert MSYS paths to Windows format (#13001) We set CMAKE_PREFIX_PATH from the --prefix= option. The calling shell might not translate "/c/..." to "c:/..." paths but we need to store Windows paths in CMake cache variables. Pass the specified path through the MSYS shell in a form it will convert to a Windows path using the MSYS fstab. Some MSYS bash implementations leave trailing space on the command line to 'cmd /c echo ...' after quoting the message. The Windows echo tool preserves both the quotes and the trailing space. Use a sed expression that strips quotes and trailing spaces after the end quote. --- bootstrap | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/bootstrap b/bootstrap index f5eacbd21..665c6c539 100755 --- a/bootstrap +++ b/bootstrap @@ -127,10 +127,20 @@ fi cmake_bootstrap_dir="${cmake_binary_dir}/Bootstrap${_cmk}" # Helper function to fix windows paths. -cmake_fix_slashes () -{ - echo "$1" | sed 's/\\/\//g' -} +case "${cmake_system}" in +*MINGW*) + cmake_fix_slashes() + { + cmd //c echo "$(echo "$1" | sed 's/\\/\//g')" | sed 's/^"//;s/" *$//' + } + ;; +*) + cmake_fix_slashes() + { + echo "$1" | sed 's/\\/\//g' + } + ;; +esac # Choose the default install prefix. if ${cmake_system_mingw}; then