|
Boost-Commit : |
From: jurko.gospodnetic_at_[hidden]
Date: 2008-01-05 19:25:49
Author: jurko
Date: 2008-01-05 19:25:48 EST (Sat, 05 Jan 2008)
New Revision: 42506
URL: http://svn.boost.org/trac/boost/changeset/42506
Log:
No functional changes but only stylistic changes such as: comment typo corrections, wrapping lines to 80 characters, indentations, removing trailing spaces, removing empty lines, made tests use Jamfile.jam and Jamroot.jam Boost Build script names, removed unnecessary module imports, etc.
Text files modified:
trunk/tools/build/v2/kernel/errors.jam | 2
trunk/tools/build/v2/test/conditionals.py | 58 ++++++---------
trunk/tools/build/v2/test/conditionals2.py | 33 +++-----
trunk/tools/build/v2/test/conditionals3.py | 21 ++---
trunk/tools/build/v2/test/test_all.py | 6
trunk/tools/build/v2/tools/intel.jam | 1
trunk/tools/build/v2/tools/msvc.jam | 143 ++++++++++++++++++---------------------
trunk/tools/build/v2/util/doc.jam | 3
trunk/tools/build/v2/util/os.jam | 21 +++--
trunk/tools/build/v2/util/path.jam | 118 ++++++++++++++++++--------------
10 files changed, 197 insertions(+), 209 deletions(-)
Modified: trunk/tools/build/v2/kernel/errors.jam
==============================================================================
--- trunk/tools/build/v2/kernel/errors.jam (original)
+++ trunk/tools/build/v2/kernel/errors.jam 2008-01-05 19:25:48 EST (Sat, 05 Jan 2008)
@@ -222,6 +222,7 @@
return $(result) ;
}
+
# If optimized rule is available in Jam, use it.
if NEAREST_USER_LOCATION in [ RULENAMES ]
{
@@ -233,7 +234,6 @@
}
-
rule __test__ ( )
{
# Show that we can correctly catch an expected error.
Modified: trunk/tools/build/v2/test/conditionals.py
==============================================================================
--- trunk/tools/build/v2/test/conditionals.py (original)
+++ trunk/tools/build/v2/test/conditionals.py 2008-01-05 19:25:48 EST (Sat, 05 Jan 2008)
@@ -1,55 +1,47 @@
#!/usr/bin/python
-# Copyright 2003 Dave Abrahams
-# Copyright 2002, 2003, 2004 Vladimir Prus
-# Distributed under the Boost Software License, Version 1.0.
-# (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
-
-# Test conditional properties
-
-from BoostBuild import Tester, List
-import os
-from string import strip
-
-t = Tester()
-
-# Arrange a project which will build only if
-# 'a.cpp' is compiled with "STATIC" define.
-t.write("project-root.jam", "import gcc ;")
+# Copyright 2003 Dave Abrahams
+# Copyright 2002, 2003, 2004 Vladimir Prus
+# Distributed under the Boost Software License, Version 1.0.
+# (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
+
+# Test conditional properties.
+
+import BoostBuild
+
+t = BoostBuild.Tester()
+
+# Arrange a project which will build only if 'a.cpp' is compiled with "STATIC"
+# define.
t.write("a.cpp", """
#ifdef STATIC
-int main() { return 0; }
+int main() { return 0; }
#endif
""")
-t.write("Jamfile", "exe a : a.cpp : <link>static:<define>STATIC ;")
+
+# Test conditionals in target requirements.
+t.write("Jamroot.jam", "exe a : a.cpp : <link>static:<define>STATIC ;")
t.run_build_system("link=static")
t.expect_addition("bin/$toolset/debug/link-static/a.exe")
+t.rm("bin")
-t.write("Jamfile", """
+# Test conditionals in project requirements.
+t.write("Jamroot.jam", """
project : requirements <link>static:<define>STATIC ;
exe a : a.cpp ;
""")
-t.rm("bin")
t.run_build_system("link=static")
t.expect_addition("bin/$toolset/debug/link-static/a.exe")
+t.rm("bin")
-# Regression test for a bug found by Ali Azarbayejani.
-# Conditionals inside usage requirement were not evaluated.
-# This breaks
-
-t.write("Jamfile", """
+# Regression test for a bug found by Ali Azarbayejani. Conditionals inside usage
+# requirement were not being evaluated.
+t.write("Jamroot.jam", """
lib l : l.cpp : : : <link>static:<define>STATIC ;
exe a : a.cpp l ;
""")
-t.write("l.cpp", "")
-t.write("l.cpp", """
-int i;
-""")
-
-t.rm("bin")
+t.write("l.cpp", "int i;")
t.run_build_system("link=static")
t.expect_addition("bin/$toolset/debug/link-static/a.exe")
-
-
t.cleanup()
Modified: trunk/tools/build/v2/test/conditionals2.py
==============================================================================
--- trunk/tools/build/v2/test/conditionals2.py (original)
+++ trunk/tools/build/v2/test/conditionals2.py 2008-01-05 19:25:48 EST (Sat, 05 Jan 2008)
@@ -1,35 +1,33 @@
#!/usr/bin/python
-# Copyright 2003 Vladimir Prus
-# Distributed under the Boost Software License, Version 1.0.
-# (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
+# Copyright 2003 Vladimir Prus
+# Distributed under the Boost Software License, Version 1.0.
+# (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
# Regression test: it was possible that due to evaluation of conditional
# requirements, two different values of non-free features were present in
# property set.
-from BoostBuild import Tester, List
+import BoostBuild
-t = Tester()
-
-t.write("project-root.jam", "")
+t = BoostBuild.Tester()
t.write("a.cpp", "")
-t.write("Jamfile", """
-import feature : feature ;
-import common : file-creation-command ;
+t.write("Jamroot.jam", """
+import feature ;
+import common ;
-feature the_feature : false true : propagated ;
+feature.feature the_feature : false true : propagated ;
rule maker ( targets * : sources * : properties * )
{
- if <the_feature>false in $(properties)
- && <the_feature>true in $(properties)
+ if <the_feature>false in $(properties) &&
+ <the_feature>true in $(properties)
{
EXIT "Oops, two different values of non-free feature" ;
- }
- CMD on $(targets) = [ file-creation-command ] ;
+ }
+ CMD on $(targets) = [ common.file-creation-command ] ;
}
actions maker
@@ -37,12 +35,9 @@
$(CMD) $(<) ;
}
-make a : a.cpp : maker : <variant>debug:<the_feature>true ;
+make a : a.cpp : maker : <variant>debug:<the_feature>true ;
""")
t.run_build_system()
t.cleanup()
-
-
-
Modified: trunk/tools/build/v2/test/conditionals3.py
==============================================================================
--- trunk/tools/build/v2/test/conditionals3.py (original)
+++ trunk/tools/build/v2/test/conditionals3.py 2008-01-05 19:25:48 EST (Sat, 05 Jan 2008)
@@ -1,19 +1,17 @@
#!/usr/bin/python
-# Copyright 2003 Vladimir Prus
-# Distributed under the Boost Software License, Version 1.0.
-# (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
+# Copyright 2003 Vladimir Prus
+# Distributed under the Boost Software License, Version 1.0.
+# (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
-# Test that conditional properties work, even if property is free, and
-# value includes colon.
-from BoostBuild import Tester, List
+# Test that conditional properties work, even if property is free, and value
+# includes a colon.
+import BoostBuild
-t = Tester()
+t = BoostBuild.Tester()
-# Create the needed files
-t.write("project-root.jam", "")
-t.write("Jamfile", """
+t.write("Jamroot.jam", """
exe hello : hello.cpp : <variant>debug:<define>CLASS=Foo::Bar ;
""")
t.write("hello.cpp", """
@@ -21,12 +19,11 @@
int main()
{
CLASS c;
+ c; // Disables the unused variable warning.
return 0;
}
-
""")
-# Don't check stderr, which can include warning about unused 'c'.
t.run_build_system(stdout=None, stderr=None)
t.expect_addition("bin/$toolset/debug/hello.exe")
Modified: trunk/tools/build/v2/test/test_all.py
==============================================================================
--- trunk/tools/build/v2/test/test_all.py (original)
+++ trunk/tools/build/v2/test/test_all.py 2008-01-05 19:25:48 EST (Sat, 05 Jan 2008)
@@ -106,6 +106,9 @@
"default_build",
"use_requirements",
"conditionals",
+ "conditionals2",
+ "conditionals3",
+ "indirect_conditional",
"stage",
"prebuilt",
"project_dependencies",
@@ -124,10 +127,8 @@
"bad_dirname",
"c_file",
"inline",
- "conditionals2",
"property_expansion",
"loop",
- "conditionals3",
"tag",
"suffix",
"inherit_toolset",
@@ -154,7 +155,6 @@
"project_root_rule",
"resolution",
"build_file",
- "indirect_conditional",
"build_no",
"disambiguation",
"clean",
Modified: trunk/tools/build/v2/tools/intel.jam
==============================================================================
--- trunk/tools/build/v2/tools/intel.jam (original)
+++ trunk/tools/build/v2/tools/intel.jam 2008-01-05 19:25:48 EST (Sat, 05 Jan 2008)
@@ -30,6 +30,5 @@
{
toolset.using intel-win :
$(1) : $(2) : $(3) : $(4) : $(5) : $(6) : $(7) : $(8) : $(9) ;
-
}
}
Modified: trunk/tools/build/v2/tools/msvc.jam
==============================================================================
--- trunk/tools/build/v2/tools/msvc.jam (original)
+++ trunk/tools/build/v2/tools/msvc.jam 2008-01-05 19:25:48 EST (Sat, 05 Jan 2008)
@@ -9,17 +9,16 @@
# License Version 1.0. (See accompanying file LICENSE_1_0.txt or
# http://www.boost.org/LICENSE_1_0.txt)
+import "class" : new ;
import property ;
import generators ;
import os ;
import type ;
import toolset : flags ;
-import errors : error ;
-import feature : feature get-values ;
+import errors ;
+import feature ;
import path ;
-import sequence : unique ;
import common ;
-import "class" : new ;
import rc ;
import midl ;
import mc ;
@@ -126,10 +125,10 @@
case all :
if $(options)
{
- error "msvc: options should be empty when 'all' is specified" ;
+ errors.error "msvc: options should be empty when 'all' is specified" ;
}
- # use all detected versions
+ # Use all detected versions.
for local v in [ $(.versions).all ]
{
configure-really $(v) ;
@@ -190,7 +189,7 @@
# if the identical sets of options are used
if $(options) && ( $(options) != [ $(.versions).get $(version) : options ] )
{
- error "msvc: the toolset version '$(version)' is configured already" ;
+ errors.error "msvc: the toolset version '$(version)' is configured already" ;
}
}
else
@@ -209,7 +208,7 @@
$(.versions).set $(version) : condition : $(condition) ;
- local command = [ get-values <command> : $(options) ] ;
+ local command = [ feature.get-values <command> : $(options) ] ;
# If version is specified, we try to search first in default paths, and
# only then in PATH.
@@ -265,9 +264,9 @@
parent = [ path.parent $(parent) ] ;
parent = [ path.native $(parent) ] ;
- # setup will be used if the script name has been specified. If setup
+ # Setup will be used if the script name has been specified. If setup
# is not specified, a default script will be used instead.
- setup = [ get-values <setup> : $(options) ] ;
+ setup = [ feature.get-values <setup> : $(options) ] ;
if ! $(setup)
{
@@ -325,32 +324,32 @@
command = $(prefix)$(setup)" "$(setup-option:E="")$(suffix) ;
- # Setup script is not required in some configurations
+ # Setup script is not required in some configurations.
command ?= "" ;
# Get tool names (if any) and finish setup.
- compiler = [ get-values <compiler> : $(options) ] ;
+ compiler = [ feature.get-values <compiler> : $(options) ] ;
compiler ?= cl ;
- linker = [ get-values <linker> : $(options) ] ;
+ linker = [ feature.get-values <linker> : $(options) ] ;
linker ?= link ;
- resource-compiler = [ get-values <resource-compiler> : $(options) ] ;
+ resource-compiler = [ feature.get-values <resource-compiler> : $(options) ] ;
resource-compiler ?= rc ;
- assembler = [ get-values <assembler> : $(options) ] ;
+ assembler = [ feature.get-values <assembler> : $(options) ] ;
assembler ?= ml ;
- idl-compiler = [ get-values <idl-compiler> : $(options) ] ;
+ idl-compiler = [ feature.get-values <idl-compiler> : $(options) ] ;
idl-compiler ?= midl ;
- mc-compiler = [ get-values <mc-compiler> : $(options) ] ;
+ mc-compiler = [ feature.get-values <mc-compiler> : $(options) ] ;
mc-compiler ?= mc ;
manifest-tool = mt ;
- local cc-filter = [ get-values <compiler-filter> : $(options) ] ;
+ local cc-filter = [ feature.get-values <compiler-filter> : $(options) ] ;
for local i in 1 2 3
{
@@ -366,30 +365,30 @@
"command: '$(command[$(i)])'" ;
}
- flags msvc.compile .CC $(cond) : $(command[$(i)])$(compiler) /Zm800 -nologo ;
- flags msvc.compile .RC $(cond) : $(command[$(i)])$(resource-compiler) ;
- flags msvc.compile .ASM $(cond) : $(command[$(i)])$(assembler) ;
- flags msvc.link .LD $(cond) : $(command[$(i)])$(linker) /NOLOGO /INCREMENTAL:NO ;
- flags msvc.archive .LD $(cond) : $(command[$(i)])$(linker) /lib /NOLOGO ;
- flags msvc.compile .IDL $(cond) : $(command[$(i)])$(idl-compiler) ;
- flags msvc.compile .MC $(cond) : $(command[$(i)])$(mc-compiler) ;
+ toolset.flags msvc.compile .CC $(cond) : $(command[$(i)])$(compiler) /Zm800 -nologo ;
+ toolset.flags msvc.compile .RC $(cond) : $(command[$(i)])$(resource-compiler) ;
+ toolset.flags msvc.compile .ASM $(cond) : $(command[$(i)])$(assembler) ;
+ toolset.flags msvc.link .LD $(cond) : $(command[$(i)])$(linker) /NOLOGO /INCREMENTAL:NO ;
+ toolset.flags msvc.archive .LD $(cond) : $(command[$(i)])$(linker) /lib /NOLOGO ;
+ toolset.flags msvc.compile .IDL $(cond) : $(command[$(i)])$(idl-compiler) ;
+ toolset.flags msvc.compile .MC $(cond) : $(command[$(i)])$(mc-compiler) ;
if ! [ os.name ] in NT
{
- flags msvc.link .MT $(cond) : $(command[$(i)])$(manifest-tool) -nologo ;
+ toolset.flags msvc.link .MT $(cond) : $(command[$(i)])$(manifest-tool) -nologo ;
}
else
{
- flags msvc.link .MT $(cond) : $(manifest-tool) -nologo ;
+ toolset.flags msvc.link .MT $(cond) : $(manifest-tool) -nologo ;
}
if $(cc-filter)
{
- flags msvc .CC.FILTER $(cond) : "|" $(cc-filter) ;
+ toolset.flags msvc .CC.FILTER $(cond) : "|" $(cc-filter) ;
}
}
}
- # Set version-specific flags
+ # Set version-specific flags.
configure-version-specific msvc : $(version) : $(condition) ;
}
}
@@ -430,14 +429,14 @@
# 7.* explicitly, or if the installation path contain 7.* (checked above).
if ! [ MATCH ^(6\\.) : $(version) ]
{
- flags $(toolset).compile CFLAGS $(condition) : /Zc:forScope /Zc:wchar_t ;
- flags $(toolset).compile.c++ C++FLAGS $(condition) : /wd4675 ;
+ toolset.flags $(toolset).compile CFLAGS $(condition) : /Zc:forScope /Zc:wchar_t ;
+ toolset.flags $(toolset).compile.c++ C++FLAGS $(condition) : /wd4675 ;
# disable the function is deprecated warning
# Some version of msvc have a bug, that cause deprecation
# warning to be emitted even with /W0
- flags $(toolset).compile CFLAGS $(condition)/<warnings>off : /wd4996 ;
+ toolset.flags $(toolset).compile CFLAGS $(condition)/<warnings>off : /wd4996 ;
# 64-bit compatibility warning
- flags $(toolset).compile CFLAGS $(condition)/<warnings>all : /Wp64 ;
+ toolset.flags $(toolset).compile CFLAGS $(condition)/<warnings>all : /Wp64 ;
}
#
@@ -447,35 +446,35 @@
if [ MATCH ^([67]) : $(version) ]
{
# 8.0 deprecates some of the options.
- flags $(toolset).compile CFLAGS $(condition)/<optimization>speed $(condition)/<optimization>space : /Ogiy /Gs ;
- flags $(toolset).compile CFLAGS $(condition)/<optimization>speed : /Ot ;
- flags $(toolset).compile CFLAGS $(condition)/<optimization>space : /Os ;
-
- flags $(toolset).compile CFLAGS $(condition)/$(cpu-arch-i386)/<instruction-set> : /GB ;
- flags $(toolset).compile CFLAGS $(condition)/$(cpu-arch-i386)/<instruction-set>i386 : /G3 ;
- flags $(toolset).compile CFLAGS $(condition)/$(cpu-arch-i386)/<instruction-set>i486 : /G4 ;
- flags $(toolset).compile CFLAGS $(condition)/$(cpu-arch-i386)/<instruction-set>$(cpu-type-g5) : /G5 ;
- flags $(toolset).compile CFLAGS $(condition)/$(cpu-arch-i386)/<instruction-set>$(cpu-type-g6) : /G6 ;
- flags $(toolset).compile CFLAGS $(condition)/$(cpu-arch-i386)/<instruction-set>$(cpu-type-g7) : /G7 ;
+ toolset.flags $(toolset).compile CFLAGS $(condition)/<optimization>speed $(condition)/<optimization>space : /Ogiy /Gs ;
+ toolset.flags $(toolset).compile CFLAGS $(condition)/<optimization>speed : /Ot ;
+ toolset.flags $(toolset).compile CFLAGS $(condition)/<optimization>space : /Os ;
+
+ toolset.flags $(toolset).compile CFLAGS $(condition)/$(cpu-arch-i386)/<instruction-set> : /GB ;
+ toolset.flags $(toolset).compile CFLAGS $(condition)/$(cpu-arch-i386)/<instruction-set>i386 : /G3 ;
+ toolset.flags $(toolset).compile CFLAGS $(condition)/$(cpu-arch-i386)/<instruction-set>i486 : /G4 ;
+ toolset.flags $(toolset).compile CFLAGS $(condition)/$(cpu-arch-i386)/<instruction-set>$(cpu-type-g5) : /G5 ;
+ toolset.flags $(toolset).compile CFLAGS $(condition)/$(cpu-arch-i386)/<instruction-set>$(cpu-type-g6) : /G6 ;
+ toolset.flags $(toolset).compile CFLAGS $(condition)/$(cpu-arch-i386)/<instruction-set>$(cpu-type-g7) : /G7 ;
# Improve floating-point accuracy. Otherwise, some of C++ Boost's "math"
# tests will fail.
- flags $(toolset).compile CFLAGS $(condition) : /Op ;
+ toolset.flags $(toolset).compile CFLAGS $(condition) : /Op ;
# 7.1 and below have single-threaded static RTL.
- flags $(toolset).compile CFLAGS $(condition)/<runtime-debugging>off/<runtime-link>static/<threading>single : /ML ;
- flags $(toolset).compile CFLAGS $(condition)/<runtime-debugging>on/<runtime-link>static/<threading>single : /MLd ;
+ toolset.flags $(toolset).compile CFLAGS $(condition)/<runtime-debugging>off/<runtime-link>static/<threading>single : /ML ;
+ toolset.flags $(toolset).compile CFLAGS $(condition)/<runtime-debugging>on/<runtime-link>static/<threading>single : /MLd ;
}
else
{
# 8.0 and above adds some more options.
- flags $(toolset).compile CFLAGS $(condition)/$(cpu-arch-amd64)/<instruction-set> : /favor:blend ;
- flags $(toolset).compile CFLAGS $(condition)/$(cpu-arch-amd64)/<instruction-set>$(cpu-type-em64t) : /favor:EM64T ;
- flags $(toolset).compile CFLAGS $(condition)/$(cpu-arch-amd64)/<instruction-set>$(cpu-type-amd64) : /favor:AMD64 ;
+ toolset.flags $(toolset).compile CFLAGS $(condition)/$(cpu-arch-amd64)/<instruction-set> : /favor:blend ;
+ toolset.flags $(toolset).compile CFLAGS $(condition)/$(cpu-arch-amd64)/<instruction-set>$(cpu-type-em64t) : /favor:EM64T ;
+ toolset.flags $(toolset).compile CFLAGS $(condition)/$(cpu-arch-amd64)/<instruction-set>$(cpu-type-amd64) : /favor:AMD64 ;
# 8.0 and above only has multi-threaded static RTL.
- flags $(toolset).compile CFLAGS $(condition)/<runtime-debugging>off/<runtime-link>static/<threading>single : /MT ;
- flags $(toolset).compile CFLAGS $(condition)/<runtime-debugging>on/<runtime-link>static/<threading>single : /MTd ;
+ toolset.flags $(toolset).compile CFLAGS $(condition)/<runtime-debugging>off/<runtime-link>static/<threading>single : /MT ;
+ toolset.flags $(toolset).compile CFLAGS $(condition)/<runtime-debugging>on/<runtime-link>static/<threading>single : /MTd ;
}
toolset.pop-checking-for-flags-module ;
}
@@ -485,7 +484,7 @@
local rule default-path ( version )
{
# Use auto-detected path if possible
- local path = [ get-values <command> :
+ local path = [ feature.get-values <command> :
[ $(.versions).get $(version) : options ] ] ;
if $(path)
@@ -565,7 +564,7 @@
# pch support
-feature pch-source : : free dependency ;
+feature.feature pch-source : : free dependency ;
class msvc-pch-generator : pch-generator
{
@@ -595,24 +594,18 @@
errors.user-error "can't build pch without pch-header" ;
}
- # If we don't have PCH source, it's fine, we'll
- # create temporary .cpp file in the action.
+ # If we don't have PCH source - that's fine. We'll just create a
+ # temporary .cpp file in the action.
- local generated =
- [
- # Passing of <pch-source> is a dirty trick,
- # needed because non-composing generators
- # with multiple inputs are subtly broken:
- # https://zigzag.cs.msu.su:7813/boost.build/ticket/111
- generator.run $(project) $(name)
- : [
- property-set.create
- <pch-source>$(pch-source)
- [ $(property-set).raw ]
- ]
- : $(pch-header)
- ]
- ;
+ local generated = [ generator.run $(project) $(name)
+ : [ property-set.create
+ # Passing of <pch-source> is a dirty trick, needed because
+ # non-composing generators with multiple inputs are subtly
+ # broken. For more detailed information see:
+ # https://zigzag.cs.msu.su:7813/boost.build/ticket/111
+ <pch-source>$(pch-source)
+ [ $(property-set).raw ] ]
+ : $(pch-header) ] ;
local pch-file ;
for local g in $(generated)
@@ -623,14 +616,8 @@
}
}
- return
- [
- property-set.create
- <pch-header>$(pch-header)
- <pch-file>$(pch-file)
- ]
- $(generated)
- ;
+ return [ property-set.create <pch-header>$(pch-header)
+ <pch-file>$(pch-file) ] $(generated) ;
}
}
Modified: trunk/tools/build/v2/util/doc.jam
==============================================================================
--- trunk/tools/build/v2/util/doc.jam (original)
+++ trunk/tools/build/v2/util/doc.jam 2008-01-05 19:25:48 EST (Sat, 05 Jan 2008)
@@ -311,8 +311,7 @@
print.section "Debug Levels"
Each debug level shows a different set of information. Usually with
higher levels producing more verbose information. The following levels
- are supported:
- ;
+ are supported: ;
print.list-start ;
print.list-item 0;
Turn off all diagnostic output. Only errors are reported. ;
Modified: trunk/tools/build/v2/util/os.jam
==============================================================================
--- trunk/tools/build/v2/util/os.jam (original)
+++ trunk/tools/build/v2/util/os.jam 2008-01-05 19:25:48 EST (Sat, 05 Jan 2008)
@@ -7,17 +7,20 @@
import modules ;
import string ;
-# Return the value(s) of the given environment variable(s) at the time
-# bjam was invoked.
+
+# Return the value(s) of the given environment variable(s) at the time bjam was
+# invoked.
rule environ ( variable-names + )
{
return [ modules.peek .ENVIRON : $(variable-names) ] ;
}
+
.name = [ modules.peek : OS ] ;
.platform = [ modules.peek : OSPLAT ] ;
.version = [ modules.peek : OSVER ] ;
+
local rule constant ( c : os ? )
{
os ?= $(.name) ;
@@ -27,10 +30,10 @@
return $(result[1]) ;
}
-rule get-constant ( os ? )
+rule get-constant ( os ? )
{
- # Find the name of the constant being accessed, which is
- # equal to the name used to invoke us.
+ # Find the name of the constant being accessed, which is equal to the name
+ # used to invoke us.
local bt = [ BACKTRACE 1 ] ;
local rulename = [ MATCH ([^.]*)$ : $(bt[4]) ] ;
return [ constant $(rulename) : $(os) ] ;
@@ -46,8 +49,8 @@
EXPORT $(__name__) : $(.constants) ;
.executable-path-variable-NT = PATH ;
-# On Windows the case and capitalization of PATH is not always
-# predictable, so let's find out what variable name was really set.
+# On Windows the case and capitalization of PATH is not always predictable, so
+# let's find out what variable name was really set.
if $(.name) = NT
{
for local n in [ VARNAMES .ENVIRON ]
@@ -59,8 +62,8 @@
}
}
-# Specific constants for various platforms. There's no need to define
-# any constant whose value would be the same as the default, below.
+# Specific constants for various platforms. There's no need to define any
+# constant whose value would be the same as the default, below.
.shared-library-path-variable-NT = $(.executable-path-variable-NT) ;
.path-separator-NT = ";" ;
.expand-variable-prefix-NT = % ;
Modified: trunk/tools/build/v2/util/path.jam
==============================================================================
--- trunk/tools/build/v2/util/path.jam (original)
+++ trunk/tools/build/v2/util/path.jam 2008-01-05 19:25:48 EST (Sat, 05 Jan 2008)
@@ -6,7 +6,7 @@
# (See accompanying file LICENSE_1_0.txt or copy at
# http://www.boost.org/LICENSE_1_0.txt)
-# Performs various path manipulations. Path are always in a 'normilized'
+# Performs various path manipulations. Paths are always in a 'normalized'
# representation. In it, a path may be either:
#
# - '.', or
@@ -17,10 +17,10 @@
# at the beginning, and it never ends in slash, except for path consisting
# of slash only.
+import errors ;
import modules ;
-import sequence ;
import regex ;
-import errors : error ;
+import sequence ;
import set ;
@@ -30,15 +30,11 @@
local uname = [ modules.peek : JAMUNAME ] ;
switch $(uname)
{
- case CYGWIN* :
- os = CYGWIN ;
-
- case * :
- os = UNIX ;
+ case CYGWIN* : os = CYGWIN ;
+ case * : os = UNIX ;
}
}
-#
# Converts the native path into normalized form.
#
rule make ( native )
@@ -46,7 +42,7 @@
return [ make-$(os) $(native) ] ;
}
-#
+
# Builds native representation of the path.
#
rule native ( path )
@@ -54,7 +50,7 @@
return [ native-$(os) $(path) ] ;
}
-#
+
# Tests if a path is rooted.
#
rule is-rooted ( path )
@@ -62,19 +58,22 @@
return [ MATCH "^(/)" : $(path) ] ;
}
-#
+
# Tests if a path has a parent.
#
rule has-parent ( path )
{
- if $(path) != / {
+ if $(path) != /
+ {
return 1 ;
- } else {
+ }
+ else
+ {
return ;
}
}
-#
+
# Returns the path without any directory components.
#
rule basename ( path )
@@ -82,41 +81,52 @@
return [ MATCH "([^/]+)$" : $(path) ] ;
}
-#
+
# Returns parent directory of the path. If no parent exists, error is issued.
#
rule parent ( path )
{
- if [ has-parent $(path) ] {
-
- if $(path) = . {
+ if [ has-parent $(path) ]
+ {
+ if $(path) = .
+ {
return .. ;
- } else {
-
+ }
+ else
+ {
# Strip everything at the end of path up to and including
# the last slash
local result = [ regex.match "((.*)/)?([^/]+)" : $(path) : 2 3 ] ;
# Did we strip what we shouldn't?
- if $(result[2]) = ".." {
+ if $(result[2]) = ".."
+ {
return $(path)/.. ;
- } else {
- if ! $(result[1]) {
- if [ is-rooted $(path) ] {
+ }
+ else
+ {
+ if ! $(result[1])
+ {
+ if [ is-rooted $(path) ]
+ {
result = / ;
- } else {
+ }
+ else
+ {
result = . ;
}
}
return $(result[1]) ;
}
}
- } else {
- error "Path '$(path)' has no parent" ;
+ }
+ else
+ {
+ errors.error "Path '$(path)' has no parent" ;
}
}
-#
+
# Returns path2 such that "[ join path path2 ] = .".
# The path may not contain ".." element or be rooted.
#
@@ -130,14 +140,15 @@
{
local tokens = [ regex.split $(path) "/" ] ;
local tokens2 ;
- for local i in $(tokens) {
+ for local i in $(tokens)
+ {
tokens2 += .. ;
}
return [ sequence.join $(tokens2) : "/" ] ;
}
}
-#
+
# Auxillary rule: does all the semantic of 'join', except for error cheching.
# The error checking is separated because this rule is recursive, and I don't
# like the idea of checking the same input over and over.
@@ -156,7 +167,7 @@
return $(result) ;
}
-#
+
# Contanenates the passed path elements. Generates an error if
# any element other than the first one is rooted.
#
@@ -172,7 +183,7 @@
{
if [ is-rooted $(e) ]
{
- error only first element may be rooted ;
+ errors.error only first element may be rooted ;
}
}
return [ join-imp $(elements) ] ;
@@ -180,7 +191,6 @@
}
-#
# If 'path' is relative, it is rooted at 'root'. Otherwise, it's unchanged.
#
rule root ( path root )
@@ -192,7 +202,7 @@
}
}
-#
+
# Returns the current working directory.
#
rule pwd ( )
@@ -208,7 +218,7 @@
}
}
-#
+
# Returns the list of files matching the given pattern in the
# specified directory. Both directories and patterns are
# supplied as portable paths. Each pattern should be non-absolute
@@ -251,6 +261,7 @@
[ set.difference $(inc) : $(exc) ] ] ;
}
+
# Recursive version of GLOB. Builds the glob of files while
# also searching in the subdirectories of the given roots. An
# optional set of exclusion patterns will filter out the
@@ -267,6 +278,7 @@
] ] ;
}
+
local rule .glob-tree ( roots * : patterns * : exclude-patterns * )
{
local excluded ;
@@ -290,7 +302,6 @@
}
-#
# Returns true is the specified file exists.
#
rule exists ( file )
@@ -300,8 +311,6 @@
NATIVE_RULE path : exists ;
-
-#
# Find out the absolute name of path and returns the list of all the parents,
# starting with the immediate one. Parents are returned as relative names.
# If 'upper_limit' is specified, directories above it will be pruned.
@@ -323,7 +332,8 @@
}
# All upper elements removed ?
- if ! $(upper_ele) {
+ if ! $(upper_ele)
+ {
# Create the relative paths to parents, number of elements in 'path_ele'
local result ;
for local i in $(path_ele) {
@@ -332,13 +342,13 @@
}
return $(result) ;
}
- else {
- error "$(upper_limit) is not prefix of $(path)" ;
+ else
+ {
+ errors.error "$(upper_limit) is not prefix of $(path)" ;
}
}
-#
# Search for 'pattern' in parent directories of 'dir', up till and including
# 'upper_limit', if it is specified, or till the filesystem root otherwise.
#
@@ -355,7 +365,7 @@
return $(result) ;
}
-#
+
# Assuming 'child' is a subdirectory of 'parent', return the relative
# path from 'parent' to 'child'
#
@@ -393,6 +403,7 @@
}
}
+
# Returns the minimal path to path2 that is relative path1.
#
rule relative-to ( path1 path2 )
@@ -417,6 +428,7 @@
return [ join . $(root_1) $(split2) ] ;
}
+
# Returns the list of paths which are used by the operating system
# for looking up programs
rule programs-path ( )
@@ -433,6 +445,7 @@
return $(result) ;
}
+
rule make-NT ( native )
{
local tokens = [ regex.split $(native) "[/\\]" ] ;
@@ -459,6 +472,7 @@
return $(result) ;
}
+
rule native-NT ( path )
{
local result = [ MATCH "^/?(.*)" : $(path) ] ;
@@ -466,6 +480,7 @@
return $(result) ;
}
+
rule make-UNIX ( native )
{
# VP: I have no idea now 'native' can be empty here! But it can!
@@ -479,16 +494,19 @@
}
}
+
rule native-UNIX ( path )
{
return $(path) ;
}
+
rule make-CYGWIN ( path )
{
return [ make-NT $(path) ] ;
}
+
rule native-CYGWIN ( path )
{
local result = $(path) ;
@@ -499,7 +517,7 @@
return [ native-UNIX $(result) ] ;
}
-#
+
# split-VMS: splits input native path into
# device dir file (each part is optional),
# example:
@@ -516,7 +534,7 @@
return $(device) $(dir) $(file) ;
}
-#
+
# Converts a native VMS path into a portable path spec.
#
# Does not handle current-device absolute paths such
@@ -592,7 +610,7 @@
return $(portable) ;
}
-#
+
# Converts a portable path spec into a native VMS path.
#
# Relies on having at least one dot (".") included in the file
@@ -663,8 +681,8 @@
}
-rule __test__ ( ) {
-
+rule __test__ ( )
+{
import assert ;
import errors : try catch ;
@@ -694,7 +712,6 @@
assert.result ".." : parent "../foo" ;
assert.result "../../foo" : parent "../../foo/bar" ;
-
assert.result "." : reverse "." ;
assert.result ".." : reverse "foo" ;
assert.result "../../.." : reverse "foo/bar/giz" ;
@@ -820,5 +837,4 @@
assert.result "disk:[my_docs.work]Jamfile." : native "/disk:/my_docs/work/Jamfile." ;
modules.poke path : os : $(save-os) ;
-
}
Boost-Commit 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