summaryrefslogtreecommitdiff
path: root/build-0.3/meta/vctest
diff options
context:
space:
mode:
Diffstat (limited to 'build-0.3/meta/vctest')
-rwxr-xr-xbuild-0.3/meta/vctest143
1 files changed, 143 insertions, 0 deletions
diff --git a/build-0.3/meta/vctest b/build-0.3/meta/vctest
new file mode 100755
index 0000000..0502364
--- /dev/null
+++ b/build-0.3/meta/vctest
@@ -0,0 +1,143 @@
+#! /usr/bin/env bash
+
+# file : build/meta/vctest
+# copyright : Copyright (c) 2009-2012 Code Synthesis Tools CC
+# license : GNU GPL v2; see accompanying LICENSE file
+
+# Process VC++ test templates.
+#
+# Options:
+#
+# -b <base-dir>
+# -r <root-dir>
+# -o <output-file>
+# -t <template-file>
+#
+# Arguments:
+#
+# <solution-files>
+#
+trap 'exit 1' ERR
+
+function error ()
+{
+ echo "$*" 1>&2
+}
+
+base=
+root=
+output=
+sln=
+input=
+
+while [ $# -gt 0 ]; do
+ case $1 in
+ -b)
+ base=$2
+ shift 2
+ ;;
+ -r)
+ root=$2
+ shift 2
+ ;;
+ -o)
+ output=$2
+ shift 2
+ ;;
+ -t)
+ input=$2
+ shift 2
+ ;;
+ *)
+ sln="$sln $1"
+ shift
+ ;;
+ esac
+done
+
+
+if [ "$input" = "" ]; then
+ error "no template file"
+ exit 1
+fi
+
+if [ "$base" = "" ]; then
+ error "no base directory"
+ exit 1
+fi
+
+if [ "$root" = "" ]; then
+ error "no root directory"
+ exit 1
+fi
+
+if [ "$output" = "" ]; then
+ error "no output file"
+ exit 1
+fi
+
+if [ "$sln" = "" ]; then
+ error "no solution file"
+ exit 1
+fi
+
+
+m4=m4
+u2d=todos
+
+# Assume this script is never found via PATH.
+#
+meta=`dirname $0`
+
+build="$meta/.."
+install=$build/install/install
+
+# Figure out topdir
+#
+if [ "$base" = "$root" ]; then
+ topdir=.
+else
+ topdir=`echo $base | sed -e "s%^$root/%%" - | \
+sed -e 's%[^/][^/]*/%../%g;s%[^./][^./]*$%..%' -`
+fi
+
+#
+
+# Determine possible configurations.
+#
+for f in $sln; do
+ sln_conf=`cat $f | fromdos | sed -n -e \
+'/^[ ]*GlobalSection(SolutionConfigurationPlatforms).*$/{\
+: loop;\
+n;\
+/^[ ]*EndGlobalSection$/q;\
+s/^[ ]*\([^=]*\) = \([^=]*\)$/\1/p;\
+b loop};\
+d' -`
+ break
+done
+
+confs=
+plats=
+for c in $sln_conf; do
+ conf=`echo $c | sed -e 's/^\(.*\)|.*$/\1/'`
+ plat=`echo $c | sed -e 's/^.*|\(.*\)$/\1/'`
+
+ confs="$confs $conf"
+ plats="$plats $plat"
+done
+
+confs=`echo $confs | sed -e 's/ /\n/g' - | sort -u`
+plats=`echo $plats | sed -e 's/ /\n/g' - | sort -u`
+
+export topdir
+export configurations=$confs
+export platforms=$plats
+
+# Make sure the output directory exist.
+#
+$install -d -m 755 `dirname $output`
+
+$m4 -P -D__meta_base__=$meta $meta/vctest.m4 $input >$output
+$u2d $output
+chmod 644 $output