mirror of
https://github.com/rust-lang/rust.git
synced 2024-11-25 00:03:43 +00:00
auto merge of #16691 : klutzy/rust/issue-15297, r=alexcrichton
First commit fixes issue regarding recognizing MSYS2 build. Second commit fixes issue regarding MSYS/Windows paths.
This commit is contained in:
commit
36131f5be4
@ -71,7 +71,7 @@ To easily build on windows we can use [MSYS2](http://sourceforge.net/projects/ms
|
||||
3. With that now start `mingw32_shell.bat` from where you installed MSYS2 (i.e. `C:\msys`).
|
||||
4. From there just navigate to where you have Rust's source code, configure and build it:
|
||||
|
||||
$ ./configure --build=i686-pc-mingw32
|
||||
$ ./configure
|
||||
$ make && make install
|
||||
|
||||
[repo]: https://github.com/rust-lang/rust
|
||||
|
18
configure
vendored
18
configure
vendored
@ -299,13 +299,19 @@ case $CFG_OSTYPE in
|
||||
CFG_OSTYPE=apple-darwin
|
||||
;;
|
||||
|
||||
MINGW32*)
|
||||
MINGW*)
|
||||
# msys' `uname` does not print gcc configuration, but prints msys
|
||||
# configuration. so we cannot believe `uname -m`:
|
||||
# msys1 is always i686 and msys2 is always x86_64.
|
||||
# instead, msys defines $MSYSTEM which is MINGW32 on i686 and
|
||||
# MINGW64 on x86_64.
|
||||
CFG_CPUTYPE=i686
|
||||
CFG_OSTYPE=pc-mingw32
|
||||
;;
|
||||
|
||||
MINGW64*)
|
||||
# msys2, MSYSTEM=MINGW64
|
||||
CFG_OSTYPE=w64-mingw32
|
||||
if [ "$MSYSTEM" = MINGW64 ]
|
||||
then
|
||||
CFG_CPUTYPE=x86_64
|
||||
CFG_OSTYPE=w64-mingw32
|
||||
fi
|
||||
;;
|
||||
|
||||
# Thad's Cygwin identifers below
|
||||
|
@ -15,13 +15,14 @@ import sys
|
||||
# msys1/msys2 automatically converts `/abs/path1:/abs/path2` into
|
||||
# `c:\real\abs\path1;c:\real\abs\path2` (semicolons) if shell thinks
|
||||
# the value is list of paths.
|
||||
# (if there is only one path, it becomes `c:/real/abs/path`.)
|
||||
# this causes great confusion and error: shell and Makefile doesn't like
|
||||
# windows paths so it is really error-prone. revert it for peace.
|
||||
def normalize_path(v):
|
||||
# c:\path -> /c/path
|
||||
if ':\\' in v:
|
||||
v = '/' + v.replace(':\\', '/')
|
||||
v = v.replace('\\', '/')
|
||||
# c:/path -> /c/path
|
||||
if ':/' in v:
|
||||
v = '/' + v.replace(':/', '/')
|
||||
return v
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user