diff options
Diffstat (limited to 'bin/vc12convert.sh')
-rwxr-xr-x | bin/vc12convert.sh | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/bin/vc12convert.sh b/bin/vc12convert.sh new file mode 100755 index 0000000..752ed2a --- /dev/null +++ b/bin/vc12convert.sh @@ -0,0 +1,65 @@ +#! /usr/bin/env bash + +# Convert VC11 project files to VC12. +# +# -i <ver> encoded input VC version, '11.0' by default +# -o <ver> encoded output VC version, '12.0' by default +# + +trap 'exit 1' ERR + +function error () +{ + echo "$*" 1>&2 +} + +wd=`pwd` +vi=11.0 +vo=12.0 + +while [ $# -gt 0 ]; do + case $1 in + -i) + shift + vi=$1 + shift + ;; + -o) + shift + vo=$1 + shift + ;; + *) + error "unknown option: $1" + exit 1 + ;; + esac +done + +files=`find . -name "*-$vi.vcxproj" -type f` + +for p in $files; do + + d=`dirname $p` + f=`basename $p -$vi.vcxproj` + + cd $d + + cp $f-$vi.vcxproj.filters $f-$vo.vcxproj.filters + + sed \ + -e "s#ToolsVersion=\"4.0\"#ToolsVersion=\"12.0\"#" \ + -e "s#<PlatformToolset>v110#<PlatformToolset>v120#" \ + -e "s#</ClCompile># <SDLCheck>true</SDLCheck>\n </ClCompile>#" \ + $f-$vi.vcxproj >$f-$vo.vcxproj + + todos $f-$vo.vcxproj + + if [ `wc -c <$f-$vi.vcxproj` -eq `wc -c <$f-$vo.vcxproj` ]; then + error "no changes made in $d" + cd $wd + exit 1 + fi + + cd $wd +done |