summaryrefslogtreecommitdiff
path: root/bin/vc11convert.sh
diff options
context:
space:
mode:
Diffstat (limited to 'bin/vc11convert.sh')
-rwxr-xr-xbin/vc11convert.sh63
1 files changed, 63 insertions, 0 deletions
diff --git a/bin/vc11convert.sh b/bin/vc11convert.sh
new file mode 100755
index 0000000..b0404b5
--- /dev/null
+++ b/bin/vc11convert.sh
@@ -0,0 +1,63 @@
+#! /usr/bin/env bash
+
+# Convert VC10 project files to VC11.
+#
+# -i <ver> encoded input VC version, '10.0' by default
+# -o <ver> encoded output VC version, '11.0' by default
+#
+
+trap 'exit 1' ERR
+
+function error ()
+{
+ echo "$*" 1>&2
+}
+
+wd=`pwd`
+vi=10.0
+vo=11.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#<CharacterSet>#<PlatformToolset>v110</PlatformToolset>\n <CharacterSet>#" \
+ $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