Boost logo

Boost-Build :

From: Alexey Pakhunov (alexeypa_at_[hidden])
Date: 2005-09-29 12:53:22


Vladimir Prus wrote:
> Well, if "6" worked before but does not work now, we have to either:
> 1. Make it work again.

Added version aliases: 6 -> 6.0, 7 -> 7.0 and 8 -> 8.0. The line:

using msvc : 6 ;

will configure detected version 6.0 but the condition will remain
'<toolset>msvc-6'.

Additionally the comment for the 'msvc.init' rule is updated.

Best regards/Venlig hilsen,
Alexey Pakhunov.
 --------------050005020506000205060002 Content-Type: text/plain;
name="msvc.jam.diff"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline;
filename="msvc.jam.diff"

Index: msvc.jam
===================================================================
RCS file: /cvsroot/boost/boost/tools/build/v2/tools/msvc.jam,v
retrieving revision 1.56
diff -u -r1.56 msvc.jam
--- msvc.jam 26 Sep 2005 06:02:41 -0000 1.56
+++ msvc.jam 29 Sep 2005 17:43:23 -0000
@@ -1,5 +1,6 @@
-# Copyright 2003 David Abrahams.
-# Copyright 2005 Vladimir Prus.
+# Copyright (c) 2003 David Abrahams.
+# Copyright (c) 2005 Vladimir Prus.
+# Copyright (c) 2005 Alexey Pakhunov.
#
# Use, modification and distribution is subject to the Boost Software
# License Version 1.0. (See accompanying file LICENSE_1_0.txt or
@@ -40,22 +41,34 @@

# Initialize the toolset for a specific version. As the result, path to
# compiler and, possible, program names are set up, and will be used when
-# that version of compiler is requested. For example, you might have::
+# that version of compiler is requested. For example, you might have:
#
-# using msvc : 6.5 : X:/some_dir ;
-# using msvc : 7.0 : Y:/some_dir ;
-# using msvc : : Z:/some_dir
-#
-# If you have "msvc-6.5" in build request, the version from X: drive will be used,
-# and if you put only "msvc", then drive "Z:" will be used. Note that it's not possible
-# the specify that by default, version 7.0 must be used --- you should use 'using'
-# without version number for that effect.
-#
-# version --
-# path --
+# using msvc : 6.5 : cl.exe ;
+# using msvc : 7.0 : Y:/foo/bar/cl.exe ;
#
-# When invoking tools, we'll first run vcvars32.bat from the configured path and
-# then cl/link, without path.
+# The version paramater can be ommited:
+#
+# using msvc : : Z:/foo/bar/cl.exe ;
+#
+# Two special version keywords may be supplied:
+# - all - all detected versions will be registered;
+# - default - this is an equivalent to an empty version.
+#
+# Depending on a supplied version, detected configurations and presence
+# 'cl.exe' in the path different results may be achieved. The following
+# table describes all possible cases:
+#
+# Nothing "x.y"
+# Passed Nothing "x.y" detected, detected,
+# version detected detected cl.exe in path cl.exe in path
+#
+# default Error Use "x.y" Create "default" Use "x.y"
+# all None Use all None Use all
+# x.y - Use "x.y" - Use "x.y"
+# a.b Error Error Create "a.b" Create "a.b"
+#
+# "x.y" - refers to a detected version;
+# "a.b" - refers to an undetected version.
#
# Note: for free VC7.1 tools, we don't correctly find vcvars32.bar when user
# explicitly provides a path.
@@ -132,6 +145,12 @@
version ?= "default" ;
}

+ # Version alias -> real version number
+ if $(.version-alias-$(version))
+ {
+ version = $(.version-alias-$(version)) ;
+ }
+
# Check whether selected configuration is used already
if $(version) in [ $(.versions).used ]
{
@@ -529,14 +548,19 @@

.ProgramFiles = [ path.make [ common.get-program-files-dir ] ] ;

-.known-versions = 8.0 7.1 7.1toolkit 7.0 6.0 ;
+.known-versions = 8.0 7.1 7.1toolkit 7.0 6.0 ;
+
+# Version aliases
+.version-alias-6 = 6.0 ;
+.version-alias-7 = 7.0 ;
+.version-alias-8 = 8.0 ;

# Name of the registry key that contains Visual C++ installation path
# (relative to "HKEY_LOCAL_MACHINE\SOFTWARE\\Microsoft\VisualStudio\x.y\Setup"
-.version-6.0-reg = "Microsoft Visual C++" ;
-.version-7.0-reg = "VC" ;
-.version-7.1-reg = "VC" ;
-.version-8.0-reg = "VC" ;
+.version-6.0-reg = "Microsoft Visual C++" ;
+.version-7.0-reg = "VC" ;
+.version-7.1-reg = "VC" ;
+.version-8.0-reg = "VC" ;

# Visual C++ Toolkit 2003 do not store its installation path in the registry.
# The environment variable 'VCToolkitInstallDir' and the default installation
 --------------050005020506000205060002--


Boost-Build list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk