aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2013-11-16 09:42:24 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2013-11-16 09:42:24 +0200
commit95c9318567dc4ba4a491cc85da2b23e59e2d431f (patch)
tree45f008f15d30e850acfd8a4504fe19d200092fb3
parent82b19b3adb117abad75c3b07da6addd8450e2a9b (diff)
Add support for VC8 in meta
-rw-r--r--build/meta/common.m42
-rw-r--r--build/meta/vc8proj-functions.make27
-rw-r--r--build/meta/vc8proj.make5
-rw-r--r--build/meta/vc8sln-functions.make29
-rw-r--r--build/meta/vc8sln.make5
-rwxr-xr-xbuild/meta/vcsln6
6 files changed, 70 insertions, 4 deletions
diff --git a/build/meta/common.m4 b/build/meta/common.m4
index b06d272..685a74a 100644
--- a/build/meta/common.m4
+++ b/build/meta/common.m4
@@ -85,7 +85,7 @@ m4_define([__foreach_w__],
#
#
-m4_define([__env_impl__], [m4_esyscmd([echo -n $$1])])
+m4_define([__env_impl__], [m4_esyscmd([/bin/echo -n $$1])])
m4_define([__env__], [m4_equote()__env_impl__([$1])[]m4_dquote()])
m4_define([__value_impl__], [__env_impl__([$1])])
diff --git a/build/meta/vc8proj-functions.make b/build/meta/vc8proj-functions.make
new file mode 100644
index 0000000..695405c
--- /dev/null
+++ b/build/meta/vc8proj-functions.make
@@ -0,0 +1,27 @@
+# file : build/meta/vc8proj-functions.make
+# copyright : Copyright (c) 2009-2012 Code Synthesis Tools CC
+# license : GNU GPL v2; see accompanying LICENSE file
+
+# Process VC++ project file template and write output to $(dist_prefix)/<path>.
+# Where path is computed as difference between src_base and src_root.
+#
+# Arguments:
+#
+# $1 - template path, if doesn't start with /, assume relative to src_base
+# $2 - output name (optional)
+# $3-8 - optional pairs of additional varibales and values $3=$4, $5=$6, etc
+#
+#
+$(out_base)/%: meta-vc8proj = \
+$(call meta-vc8proj-body,$(if $(filter /%,$1),$1,$(src_base)/$1),$(if \
+$2,$2,$(notdir $1)),$(subst $(src_root),,$(src_base)),$3,$4,$5,$6,$7,$8)
+
+# $1 - template
+# $2 - output name
+# $3 - difference between src_base and src_root with leading '\'
+# $4-9 - additional varibales
+#
+$(out_base)/%: meta-vc8proj-body = \
+$(call message,meta $(dist_prefix)$3/$2,$(if $4,$4='$5'; export $4; )$(if \
+$6,$6='$7'; export $6; )$(if $8,$8='$9'; export $8; )$(bld_root)/meta/vc9proj \
+-o $(dist_prefix)$3/$2 $1)
diff --git a/build/meta/vc8proj.make b/build/meta/vc8proj.make
new file mode 100644
index 0000000..179db17
--- /dev/null
+++ b/build/meta/vc8proj.make
@@ -0,0 +1,5 @@
+# file : build/meta/vc8proj.make
+# copyright : Copyright (c) 2009-2012 Code Synthesis Tools CC
+# license : GNU GPL v2; see accompanying LICENSE file
+
+$(call include-once,$(bld_root)/meta/vc8proj-functions.make,$(out_base))
diff --git a/build/meta/vc8sln-functions.make b/build/meta/vc8sln-functions.make
new file mode 100644
index 0000000..0391a1c
--- /dev/null
+++ b/build/meta/vc8sln-functions.make
@@ -0,0 +1,29 @@
+# file : build/meta/vc8sln-functions.make
+# copyright : Copyright (c) 2009-2012 Code Synthesis Tools CC
+# license : GNU GPL v2; see accompanying LICENSE file
+
+# Process VC++ 8 solution template and write output to $(dist_prefix)/<path>.
+# Where path is computed as difference between src_base and src_root.
+#
+# Arguments:
+#
+# $1 - template path, if doesn't start with /, assume relative to src_base
+# $2 - output name (optional)
+# $3 - project suffix (-vc8.vcproj by default)
+# $4-9 - optional pairs of additional varibales and values $4=$5, $6=$7, etc
+#
+$(out_base)/%: meta-vc8sln = \
+$(call meta-vc8sln-body,$(if $(filter /%,$1),$1,$(src_base)/$1),$(if \
+$2,$2,$(notdir $1)),$(subst \
+$(src_root),,$(src_base)),$(if $3,$3,-vc8.vcproj),$4,$5,$6,$7,$8,$9)
+
+# $1 - template
+# $2 - output name
+# $3 - difference between src_base and src_root with leading '\'
+# $4 - project suffix
+# $4-10 - additional varibales
+#
+$(out_base)/%: meta-vc8sln-body = \
+$(call message,meta $(dist_prefix)$3/$2,$(if $5,$5='$6'; export $5; )$(if \
+$7,$7='$8'; export $7; )$(if $9,$9='$(10)'; export $9; )$(bld_root)/meta/vcsln \
+-v 8 -b $(dist_prefix)$3 -e '$4' -o $(dist_prefix)$3/$2 $1)
diff --git a/build/meta/vc8sln.make b/build/meta/vc8sln.make
new file mode 100644
index 0000000..70e0703
--- /dev/null
+++ b/build/meta/vc8sln.make
@@ -0,0 +1,5 @@
+# file : build/meta/vc8sln.make
+# copyright : Copyright (c) 2009-2012 Code Synthesis Tools CC
+# license : GNU GPL v2; see accompanying LICENSE file
+
+$(call include-once,$(bld_root)/meta/vc8sln-functions.make,$(out_base))
diff --git a/build/meta/vcsln b/build/meta/vcsln
index 46b1943..3b58311 100755
--- a/build/meta/vcsln
+++ b/build/meta/vcsln
@@ -11,7 +11,7 @@
# -b <base-dir>
# -o <output-file>
# -e <project-ext>
-# -v <vc-version> {9, 10}
+# -v <vc-version> {8, 9, 10, 11}
#
# Arguments:
#
@@ -133,7 +133,7 @@ proj_uuids=
for f in $proj_files; do
if [ "$conf" = "" ]; then
- if [ "$vcver" = "9" ]; then
+ if [ "$vcver" = "8" -o "$vcver" = "9" ]; then
conf=`cat $f | fromdos | sed -n -e \
'/^[ ]*<Configuration$/{n;s/[ ]*Name="\([^"]*\)"$/"\1",/p};d' -`
conf=`echo $conf | sed -e 's/,$//'`
@@ -144,7 +144,7 @@ for f in $proj_files; do
fi
fi
- if [ "$vcver" = "9" ]; then
+ if [ "$vcver" = "8" -o "$vcver" = "9" ]; then
uuid=`cat $f | fromdos | sed -n -e \
's/^[ ]*ProjectGUID="{\([^}]*\)}"$/\1/p;d'`
else