Commit b9a569da authored by James Zern's avatar James Zern Committed by Gerrit Code Review
Browse files

Merge "gen_msvs_*proj.sh: speed up file generation"

Showing with 29 additions and 4 deletions
...@@ -176,7 +176,8 @@ for opt in "$@"; do ...@@ -176,7 +176,8 @@ for opt in "$@"; do
-*) die_unknown $opt -*) die_unknown $opt
;; ;;
*) *)
file_list[${#file_list[@]}]="$(fix_path $opt)" # The paths in file_list are fixed outside of the loop.
file_list[${#file_list[@]}]="$opt"
case "$opt" in case "$opt" in
*.asm) uses_asm=true *.asm) uses_asm=true
;; ;;
...@@ -184,6 +185,10 @@ for opt in "$@"; do ...@@ -184,6 +185,10 @@ for opt in "$@"; do
;; ;;
esac esac
done done
# Make one call to fix_path for file_list to improve performance.
fix_file_list
outfile=${outfile:-/dev/stdout} outfile=${outfile:-/dev/stdout}
guid=${guid:-`generate_uuid`} guid=${guid:-`generate_uuid`}
asm_use_custom_step=false asm_use_custom_step=false
......
...@@ -198,7 +198,8 @@ for opt in "$@"; do ...@@ -198,7 +198,8 @@ for opt in "$@"; do
-*) die_unknown $opt -*) die_unknown $opt
;; ;;
*) *)
file_list[${#file_list[@]}]="$(fix_path $opt)" # The paths in file_list are fixed outside of the loop.
file_list[${#file_list[@]}]="$opt"
case "$opt" in case "$opt" in
*.asm|*.s) uses_asm=true *.asm|*.s) uses_asm=true
;; ;;
...@@ -206,6 +207,10 @@ for opt in "$@"; do ...@@ -206,6 +207,10 @@ for opt in "$@"; do
;; ;;
esac esac
done done
# Make one call to fix_path for file_list to improve performance.
fix_file_list
outfile=${outfile:-/dev/stdout} outfile=${outfile:-/dev/stdout}
guid=${guid:-`generate_uuid`} guid=${guid:-`generate_uuid`}
asm_use_custom_step=false asm_use_custom_step=false
......
...@@ -13,7 +13,7 @@ if [ "$(uname -o 2>/dev/null)" = "Cygwin" ] \ ...@@ -13,7 +13,7 @@ if [ "$(uname -o 2>/dev/null)" = "Cygwin" ] \
&& cygpath --help >/dev/null 2>&1; then && cygpath --help >/dev/null 2>&1; then
FIXPATH='cygpath -m' FIXPATH='cygpath -m'
else else
FIXPATH='echo' FIXPATH='echo_path'
fi fi
die() { die() {
...@@ -27,8 +27,23 @@ die_unknown(){ ...@@ -27,8 +27,23 @@ die_unknown(){
exit 1 exit 1
} }
echo_path() {
for path; do
echo "$path"
done
}
# Output one, possibly changed based on the system, path per line.
fix_path() { fix_path() {
$FIXPATH "$1" $FIXPATH "$@"
}
# Corrects the paths in file_list in one pass for efficiency.
fix_file_list() {
# TODO(jzern): this could be more generic and take the array as a param.
files=$(fix_path "${file_list[@]}")
local IFS=$'\n'
file_list=($files)
} }
generate_uuid() { generate_uuid() {
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment