ref: dddc3c6906f0d840935214ab0b26ea9a6e06cc27
parent: ace194a059fc240928147a2ae22eea2afacd74e4
parent: 792509d31f147ba6831dd779e62d3ac5d4a28be1
author: James Zern <jzern@google.com>
date: Wed Apr 23 09:04:15 EDT 2014
Merge changes I2f05a5d9,I674337a7 * changes: gen_msvs_vcxproj.sh: support cygwin style paths gen_msvs_proj.sh: support cygwin style paths
--- a/build/make/gen_msvs_proj.sh
+++ b/build/make/gen_msvs_proj.sh
@@ -14,6 +14,12 @@
self_basename=${self##*/}self_dirname=$(dirname "$0")
EOL=$'\n'
+if [ "$(uname -o 2>/dev/null)" = "Cygwin" ] \
+ && cygpath --help >/dev/null 2>&1; then
+ FIXPATH='cygpath -m'
+else
+ FIXPATH='echo'
+fi
show_help() {cat <<EOF
@@ -54,6 +60,10 @@
exit 1
}
+fix_path() {+ $FIXPATH "$1"
+}
+
generate_uuid() {local hex="0123456789ABCDEF"
local i
@@ -143,8 +153,8 @@
if [ "${f##*.}" == "$pat" ]; thenunset file_list[i]
- objf=$(echo ${f%.*}.obj | sed -e 's/^[\./]\+//g' -e 's,/,_,g')- open_tag File RelativePath="./$f"
+ objf=$(echo ${f%.*}.obj | sed -e 's/^[\./]\+//g' -e 's,[:/],_,g')+ open_tag File RelativePath="$f"
if [ "$pat" == "asm" ] && $asm_use_custom_step; then
for plat in "${platforms[@]}"; do@@ -211,7 +221,7 @@
;;
--lib) proj_kind="lib"
;;
- --src-path-bare=*) src_path_bare="$optval"
+ --src-path-bare=*) src_path_bare=$(fix_path "$optval")
;;
--static-crt) use_static_runtime=true
;;
@@ -226,8 +236,10 @@
;;
-I*)
opt="${opt%/}"- incs="${incs}${incs:+;}"${opt##-I}""- yasmincs="${yasmincs} ${opt}"+ opt=${opt##-I}+ opt=$(fix_path "$opt")
+ incs="${incs}${incs:+;}"${opt}""+ yasmincs="${yasmincs} -I${opt}";;
-D*) defines="${defines}${defines:+;}${opt##-D}";;
@@ -236,9 +248,11 @@
libdirs="${libdirs}${libdirs:+;}"\$(OutDir)""else
# Also try directories for this platform/configuration
- libdirs="${libdirs}${libdirs:+;}"${opt##-L}""- libdirs="${libdirs}${libdirs:+;}"${opt##-L}/\$(PlatformName)/\$(ConfigurationName)""- libdirs="${libdirs}${libdirs:+;}"${opt##-L}/\$(PlatformName)""+ opt=${opt##-L}+ opt=$(fix_path "$opt")
+ libdirs="${libdirs}${libdirs:+;}"${opt}""+ libdirs="${libdirs}${libdirs:+;}"${opt}/\$(PlatformName)/\$(ConfigurationName)""+ libdirs="${libdirs}${libdirs:+;}"${opt}/\$(PlatformName)""fi
;;
-l*) libs="${libs}${libs:+ }${opt##-l}.lib"@@ -246,7 +260,7 @@
-*) die_unknown $opt
;;
*)
- file_list[${#file_list[@]}]="$opt"+ file_list[${#file_list[@]}]="$(fix_path $opt)"case "$opt" in
*.asm) uses_asm=true
;;
--- a/build/make/gen_msvs_vcxproj.sh
+++ b/build/make/gen_msvs_vcxproj.sh
@@ -14,6 +14,12 @@
self_basename=${self##*/}self_dirname=$(dirname "$0")
EOL=$'\n'
+if [ "$(uname -o 2>/dev/null)" = "Cygwin" ] \
+ && cygpath --help >/dev/null 2>&1; then
+ FIXPATH='cygpath -m'
+else
+ FIXPATH='echo'
+fi
show_help() {cat <<EOF
@@ -55,6 +61,10 @@
exit 1
}
+fix_path() {+ $FIXPATH "$1"
+}
+
generate_uuid() {local hex="0123456789ABCDEF"
local i
@@ -154,7 +164,7 @@
if [ "${f##*.}" == "$pat" ]; thenunset file_list[i]
- objf=$(echo ${f%.*}.obj | sed -e 's/^[\./]\+//g' -e 's,/,_,g')+ objf=$(echo ${f%.*}.obj | sed -e 's/^[\./]\+//g' -e 's,[:/],_,g')if ([ "$pat" == "asm" ] || [ "$pat" == "s" ]) && $asm_use_custom_step; then
# Avoid object file name collisions, i.e. vpx_config.c and
@@ -162,7 +172,7 @@
# this additional suffix.
objf=${objf%.obj}_asm.objopen_tag CustomBuild \
- Include=".\\$f"
+ Include="$f"
for plat in "${platforms[@]}"; dofor cfg in Debug Release; do
tag_content Message "Assembling %(Filename)%(Extension)" \
@@ -177,7 +187,7 @@
elif [ "$pat" == "c" ] || \
[ "$pat" == "cc" ] || [ "$pat" == "cpp" ]; then
open_tag ClCompile \
- Include=".\\$f"
+ Include="$f"
# Separate file names with Condition?
tag_content ObjectFileName "\$(IntDir)$objf"
# Check for AVX and turn it on to avoid warnings.
@@ -187,7 +197,7 @@
close_tag ClCompile
elif [ "$pat" == "h" ] ; then
tag ClInclude \
- Include=".\\$f"
+ Include="$f"
elif [ "$pat" == "vcxproj" ] ; then
open_tag ProjectReference \
Include="$f"
@@ -197,7 +207,7 @@
close_tag ProjectReference
else
tag None \
- Include=".\\$f"
+ Include="$f"
fi
break
@@ -231,7 +241,7 @@
;;
--lib) proj_kind="lib"
;;
- --src-path-bare=*) src_path_bare="$optval"
+ --src-path-bare=*) src_path_bare=$(fix_path "$optval")
;;
--static-crt) use_static_runtime=true
;;
@@ -248,19 +258,23 @@
;;
-I*)
opt="${opt%/}"- incs="${incs}${incs:+;}${opt##-I}"- yasmincs="${yasmincs} ${opt}"+ opt=${opt##-I}+ opt=$(fix_path "$opt")
+ incs="${incs}${incs:+;}"${opt}""+ yasmincs="${yasmincs} -I${opt}";;
-D*) defines="${defines}${defines:+;}${opt##-D}";;
-L*) # fudge . to $(OutDir)
if [ "${opt##-L}" == "." ]; then- libdirs="${libdirs}${libdirs:+;}\$(OutDir)"+ libdirs="${libdirs}${libdirs:+;}"\$(OutDir)""else
# Also try directories for this platform/configuration
- libdirs="${libdirs}${libdirs:+;}${opt##-L}"- libdirs="${libdirs}${libdirs:+;}${opt##-L}/\$(PlatformName)/\$(Configuration)"- libdirs="${libdirs}${libdirs:+;}${opt##-L}/\$(PlatformName)"+ opt=${opt##-L}+ opt=$(fix_path "$opt")
+ libdirs="${libdirs}${libdirs:+;}"${opt}""+ libdirs="${libdirs}${libdirs:+;}"${opt}/\$(PlatformName)/\$(Configuration)""+ libdirs="${libdirs}${libdirs:+;}"${opt}/\$(PlatformName)""fi
;;
-l*) libs="${libs}${libs:+ }${opt##-l}.lib"@@ -268,7 +282,7 @@
-*) die_unknown $opt
;;
*)
- file_list[${#file_list[@]}]="$opt"+ file_list[${#file_list[@]}]="$(fix_path $opt)"case "$opt" in
*.asm|*.s) uses_asm=true
;;
--
⑨