summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2012-02-29 19:29:16 (GMT)
committerBrad King <brad.king@kitware.com>2012-03-01 15:09:05 (GMT)
commit5cd879c4e75405ab404a2e6c4e77caa36877baf1 (patch)
treebd73c53e3102f3d323c18ae0c3169a79d3bb4642
parent26519d591ea28d3f26f34c625c2d57db6f302d63 (diff)
downloadCMake-5cd879c4e75405ab404a2e6c4e77caa36877baf1.zip
CMake-5cd879c4e75405ab404a2e6c4e77caa36877baf1.tar.gz
CMake-5cd879c4e75405ab404a2e6c4e77caa36877baf1.tar.bz2
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.
-rwxr-xr-xbootstrap18
1 files changed, 14 insertions, 4 deletions
diff --git a/bootstrap b/bootstrap
index f5eacbd..665c6c5 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