From bada6666c70977a058755ccf232e7d67b24adeed Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rg=20Frings-F=C3=BCrst?= Date: Wed, 23 Jul 2014 15:21:29 +0200 Subject: New upstream release --- build-0.3/meta/vcsln | 181 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 181 insertions(+) create mode 100755 build-0.3/meta/vcsln (limited to 'build-0.3/meta/vcsln') diff --git a/build-0.3/meta/vcsln b/build-0.3/meta/vcsln new file mode 100755 index 0000000..99aaf47 --- /dev/null +++ b/build-0.3/meta/vcsln @@ -0,0 +1,181 @@ +#! /usr/bin/env bash + +# file : build/meta/vcsln +# copyright : Copyright (c) 2009-2012 Code Synthesis Tools CC +# license : GNU GPL v2; see accompanying LICENSE file + +# Process VC++ solution templates. +# +# Options: +# +# -b +# -o +# -e +# -v {8, 9, 10, 11, 12} +# +# Arguments: +# +# +# +trap 'exit 1' ERR + +function error () +{ + echo "$*" 1>&2 +} + +base= +output= +projext= +vcver= + +while [ $# -gt 0 ]; do + case $1 in + -b) + base=$2 + shift 2 + ;; + -o) + output=$2 + shift 2 + ;; + -e) + projext=$2 + shift 2 + ;; + -v) + vcver=$2 + shift 2 + ;; + *) + break + ;; + esac +done + +input=$1 + +if [ "$input" = "" ]; then + error "no input file" + exit 1 +fi + +if [ "$base" = "" ]; then + error "no base directory" + exit 1 +fi + +if [ "$output" = "" ]; then + error "no output file" + exit 1 +fi + +if [ "$projext" = "" ]; then + error "no VC++ project file extension" + exit 1 +fi + +if [ "$vcver" = "" ]; then + error "no VC++ version" + exit 1 +fi + +m4=m4 +u2d=todos + +# Assume this script is never found via PATH. +# +meta=`dirname $0` + +build="$meta/.." +install=$build/install/install + +# Find all the project files. +# +all_proj_files=`find $base -name '*'$projext` + +# Filter out subdirectories which already have solution files. +# +proj_files= +proj_names= +for f in $all_proj_files; do + n=`echo "$f" | sed -e "s%^$base/\(.*\)/.*$%\1%"` + + # If there is no sub-directory for this project, then use the + # root directory name. + # + if [ "$n" = "$f" ]; then + n=`basename $base` + d="." + else + d=$n + fi + + while [ "$d" != "." ]; do + if ls $base/$d/*.sln >/dev/null 2>&1; then + break + fi + d=`dirname $d` + done + + # If we din't find any solutions, then add this file to the list. + # + if [ "$d" = "." ]; then + proj_names="$proj_names $n" + proj_files="$proj_files $f" + fi +done + +# Determine available configurations and project uuids. +# +conf= +proj_uuids= +for f in $proj_files; do + + if [ "$conf" = "" ]; then + if [ "$vcver" = "8" -o "$vcver" = "9" ]; then + conf=`cat $f | fromdos | sed -n -e \ + '/^[ ]*$/"\1",/p;d' -` + conf=`echo $conf | sed -e 's/,$//'` + fi + fi + + if [ "$vcver" = "8" -o "$vcver" = "9" ]; then + uuid=`cat $f | fromdos | sed -n -e \ + 's/^[ ]*ProjectGUID="{\([^}]*\)}"$/\1/p;d'` + else + uuid=`cat $f | fromdos | sed -n -e \ + 's/^[ ]*{\([^}]*\)}<\/ProjectGuid>$/\1/p;d'` + fi + + if [ "$proj_uuids" = "" ]; then + proj_uuids=$uuid + else + proj_uuids="$proj_uuids $uuid" + fi +done + +proj_files=`echo $proj_files | sed -e "s%$base/%%g"` +proj_names=`echo $proj_names | sed -e "s%/%-%g"` + +#error $proj_files +#error $proj_names +#error $proj_uuids +#error $conf + +export configurations=$conf +export project_files=$proj_files +export project_names=$proj_names +export project_uuids=$proj_uuids + +# Make sure the output directory exist. +# +$install -d -m 755 `dirname $output` + +$m4 -P -D__meta_base__=$meta $meta/vcsln.m4 $input >$output +$u2d $output +chmod 644 $output -- cgit v1.2.3