config, detail, filesystem, system, tools, at 41278.
[SVN r41316]
This commit is contained in:
parent
8f3a7c6a0d
commit
d4b923c4ca
@ -197,8 +197,8 @@ toolset intel-linux icc : "-o " : -D
|
||||
## Intel C/C++ for Win32
|
||||
toolset intel-win32 icl : /Fe : -D
|
||||
: /nologo
|
||||
[ opt --release : /ML /O2 /Ob2 /Gy /GF /GA /GB ]
|
||||
[ opt --debug : /MLd /DEBUG /Z7 /Od /Ob0 ]
|
||||
[ opt --release : /MT /O2 /Ob2 /Gy /GF /GA /GB ]
|
||||
[ opt --debug : /MTd /DEBUG /Z7 /Od /Ob0 ]
|
||||
-I$(--python-include) -I$(--extra-include)
|
||||
: kernel32.lib advapi32.lib user32.lib $(--python-lib[1]) ;
|
||||
## KCC ?
|
||||
|
@ -483,6 +483,10 @@
|
||||
# define OSPLAT "OSPLAT=390"
|
||||
# endif
|
||||
|
||||
# ifdef __hppa
|
||||
# define OSPLAT "OSPLAT=PARISC"
|
||||
# endif
|
||||
|
||||
# ifndef OSPLAT
|
||||
# define OSPLAT ""
|
||||
# endif
|
||||
|
@ -63,7 +63,11 @@ void out_action(
|
||||
case EXIT_TIMEOUT:
|
||||
{
|
||||
/* process expired, make user aware with explicit message */
|
||||
fprintf(bjam_out, "%d second time limit exceeded\n", globs.timeout);
|
||||
if ( action )
|
||||
{
|
||||
/* but only output for non-quietly actions */
|
||||
fprintf(bjam_out, "%d second time limit exceeded\n", globs.timeout);
|
||||
}
|
||||
break;
|
||||
}
|
||||
default:
|
||||
@ -71,16 +75,20 @@ void out_action(
|
||||
}
|
||||
|
||||
/* print out the command output, if requested */
|
||||
if (0 != out_data &&
|
||||
( globs.pipe_action & 1 /* STDOUT_FILENO */ ||
|
||||
globs.pipe_action == 0))
|
||||
if ( action )
|
||||
{
|
||||
out_(out_data,bjam_out);
|
||||
}
|
||||
if (0 != err_data &&
|
||||
globs.pipe_action & 2 /* STDERR_FILENO */)
|
||||
{
|
||||
out_(err_data,bjam_err);
|
||||
/* but only output for non-quietly actions */
|
||||
if (0 != out_data &&
|
||||
( globs.pipe_action & 1 /* STDOUT_FILENO */ ||
|
||||
globs.pipe_action == 0))
|
||||
{
|
||||
out_(out_data,bjam_out);
|
||||
}
|
||||
if (0 != err_data &&
|
||||
globs.pipe_action & 2 /* STDERR_FILENO */)
|
||||
{
|
||||
out_(err_data,bjam_err);
|
||||
}
|
||||
}
|
||||
|
||||
fflush(bjam_out);
|
||||
|
55
historic/jam/test/actions_quietly.jam
Normal file
55
historic/jam/test/actions_quietly.jam
Normal file
@ -0,0 +1,55 @@
|
||||
#~ Copyright 2007 Rene Rivera.
|
||||
#~ 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)
|
||||
|
||||
if ! $(BJAM_SUBTEST)
|
||||
{
|
||||
ECHO --- Testing \"actions quietly\"... ;
|
||||
|
||||
assert "...found 4 targets...
|
||||
...updating 2 targets...
|
||||
.a. subtest_a
|
||||
|
||||
echo [subtest_a] 0
|
||||
echo [subtest_a] 1
|
||||
echo [subtest_a] 2
|
||||
|
||||
[subtest_a] 0
|
||||
[subtest_a] 1
|
||||
[subtest_a] 2
|
||||
.a. subtest_b
|
||||
|
||||
echo [subtest_b] 0
|
||||
echo [subtest_b] 1
|
||||
echo [subtest_b] 2
|
||||
|
||||
[subtest_b] 0
|
||||
[subtest_b] 1
|
||||
[subtest_b] 2
|
||||
...updated 2 targets...
|
||||
" : (==) : [ SHELL "$(ARGV[1]) -f actions_quietly.jam -sBJAM_SUBTEST=1 -d2" ] ;
|
||||
|
||||
assert "...found 4 targets...
|
||||
...updating 2 targets...
|
||||
...updated 2 targets...
|
||||
" : (==) : [ SHELL "$(ARGV[1]) -f actions_quietly.jam -sBJAM_SUBTEST=1" ] ;
|
||||
}
|
||||
else
|
||||
{
|
||||
actions quietly .a.
|
||||
{
|
||||
echo [$(<:B)] 0
|
||||
echo [$(<:B)] 1
|
||||
echo [$(<:B)] 2
|
||||
}
|
||||
|
||||
rule .a.
|
||||
{
|
||||
DEPENDS $(<) : $(>) ;
|
||||
}
|
||||
|
||||
NOTFILE subtest ;
|
||||
.a. subtest_a : subtest ;
|
||||
.a. subtest_b : subtest ;
|
||||
DEPENDS all : subtest_a subtest_b ;
|
||||
}
|
@ -41,6 +41,7 @@ rule assert ( expected * : test ? : obtained * )
|
||||
}
|
||||
}
|
||||
|
||||
include actions_quietly.jam ;
|
||||
include builtin_shell.jam ;
|
||||
include builtin_w32_getregnames.jam ;
|
||||
include option_d2.jam ;
|
||||
|
@ -1,5 +1,5 @@
|
||||
# Copyright 2003, 2005 Dave Abrahams
|
||||
# Copyright 2006 Rene Rivera
|
||||
# Copyright 2003, 2005, 2007 Dave Abrahams
|
||||
# Copyright 2006, 2007 Rene Rivera
|
||||
# Copyright 2003, 2004, 2005, 2006 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)
|
||||
@ -487,12 +487,200 @@ for t in $(virtual-targets)
|
||||
{
|
||||
actual-targets += [ $(t).actualize ] ;
|
||||
}
|
||||
|
||||
# Was an XML dump requested?
|
||||
.out-xml = [ MATCH --out-xml=(.*) : [ modules.peek : ARGV ] ] ;
|
||||
if $(.out-xml)
|
||||
{
|
||||
# Get the qualified name of a virtual target.
|
||||
rule full-target-name ( t )
|
||||
{
|
||||
local name = [ $(t).name ] ;
|
||||
local project = [ $(t).project ] ;
|
||||
local project-path = [ $(project).get location ] ;
|
||||
return $(project-path)//$(name) ;
|
||||
}
|
||||
|
||||
# Generate an XML file containing build statistics for each
|
||||
# constituent
|
||||
rule out-xml ( xml-file : constituents * )
|
||||
{
|
||||
# Prepare valid XML header and footer with some basic info
|
||||
local nl = "
|
||||
" ;
|
||||
local jam = [ version.jam ] ;
|
||||
local os = [ modules.peek : OS OSPLAT JAMUNAME ] "" ;
|
||||
local timestamp = [ modules.peek : JAMDATE ] ;
|
||||
local cwd = [ PWD ] ;
|
||||
local command = [ modules.peek : ARGV ] ;
|
||||
local bb-version = [ version.boost-build ] ;
|
||||
.header on $(xml-file) =
|
||||
"<?xml version=\"1.0\" encoding=\"utf-8\"?>"
|
||||
"$(nl)<build format=\"1.0\" version=\"$(bb-version)\">"
|
||||
"$(nl) <jam version=\"$(jam:J=.)\" />"
|
||||
"$(nl) <os name=\"$(os[1])\" platform=\"$(os[2])\"><![CDATA[$(os[3-]:J= )]]></os>"
|
||||
"$(nl) <timestamp><![CDATA[$(timestamp)]]></timestamp>"
|
||||
"$(nl) <directory><![CDATA[$(cwd)]]></directory>"
|
||||
"$(nl) <command><![CDATA[\"$(command:J=\" \")\"]]></command>"
|
||||
;
|
||||
.footer on $(xml-file) =
|
||||
"$(nl)</build>" ;
|
||||
# Generate target dependency graph
|
||||
.contents on $(xml-file) +=
|
||||
"$(nl) <targets>"
|
||||
;
|
||||
|
||||
for local t in [ virtual-target.all-targets ]
|
||||
{
|
||||
local action = [ $(t).action ] ;
|
||||
if $(action)
|
||||
{
|
||||
# If a target has no action, it has
|
||||
# no dependencies.
|
||||
|
||||
local name = [ full-target-name $(t) ] ;
|
||||
local sources = [ $(action).sources ] ;
|
||||
local dependencies ;
|
||||
for local s in $(sources)
|
||||
{
|
||||
dependencies += [ full-target-name $(s) ] ;
|
||||
}
|
||||
|
||||
local path = [ $(t).path ] ;
|
||||
local jam-target = [ $(t).actual-name ] ;
|
||||
|
||||
.contents on $(xml-file) +=
|
||||
"$(nl) <target>"
|
||||
"$(nl) <name><![CDATA[$(name)]]></name>"
|
||||
"$(nl) <dependencies>"
|
||||
"$(nl) <dependency><![CDATA[$(dependencies)]]></dependency>"
|
||||
"$(nl) </dependencies>"
|
||||
"$(nl) <path><![CDATA[$(path)]]></path>"
|
||||
"$(nl) <jam-target><![CDATA[$(jam-target)]]></jam-target>"
|
||||
"$(nl) </target>"
|
||||
;
|
||||
}
|
||||
}
|
||||
.contents on $(xml-file) +=
|
||||
"$(nl) </targets>"
|
||||
;
|
||||
|
||||
# Build $(xml-file) after $(constituents) and do so even if a
|
||||
# constituent action fails, and regenerate the xml on every bjam run.
|
||||
INCLUDES $(xml-file) : $(constituents) ;
|
||||
ALWAYS $(xml-file) ;
|
||||
__ACTION_RULE__ on $(xml-file) =
|
||||
build-system.out-xml.generate-action ;
|
||||
out-xml.generate $(xml-file) ;
|
||||
}
|
||||
|
||||
# The actual build actions are here; if we did this work in the
|
||||
# actions clause we would have to form a valid command line
|
||||
# containing the result of @(...) below (the name of the XML file).
|
||||
rule out-xml.generate-action (
|
||||
xml-file args * :
|
||||
status : user : system : command : output ? )
|
||||
{
|
||||
local contents =
|
||||
[ on $(xml-file) return $(.header) $(.contents) $(.footer) ] ;
|
||||
local f = @($(xml-file):E=$(contents)) ;
|
||||
}
|
||||
|
||||
# Nothing to do here; the *real* actions happen in
|
||||
# out-xml.generate-action
|
||||
actions quietly out-xml.generate { }
|
||||
|
||||
# Define the out-xml file target, which depends on all the targets
|
||||
# so that it runs the collection after the targets have run.
|
||||
out-xml $(.out-xml) : $(actual-targets) ;
|
||||
|
||||
# Set up a global __ACTION_RULE__ that records all the available
|
||||
# statistics about each actual target in a variable "on" the
|
||||
# --out-xml target.
|
||||
rule out-xml.collect (
|
||||
xml-file target :
|
||||
status : user : system : command : output ? )
|
||||
{
|
||||
local nl = "
|
||||
" ;
|
||||
# Open the action with some basic info.
|
||||
.contents on $(xml-file) +=
|
||||
"$(nl) <action status=\"$(status)\" user=\"$(user)\" system=\"$(system)\">"
|
||||
;
|
||||
|
||||
# If we have an action object we can print out more detailed info.
|
||||
local action = [ on $(target) return $(.action) ] ;
|
||||
if $(action)
|
||||
{
|
||||
local action-name = [ $(action).action-name ] ;
|
||||
local action-sources = [ $(action).sources ] ;
|
||||
local action-props = [ $(action).properties ] ;
|
||||
|
||||
# The qualified name of the action which we created the target.
|
||||
.contents on $(xml-file) +=
|
||||
"$(nl) <name><![CDATA[$(action-name)]]></name>"
|
||||
;
|
||||
|
||||
# The sources that made up the target.
|
||||
.contents on $(xml-file) +=
|
||||
"$(nl) <sources>"
|
||||
;
|
||||
for local source in $(action-sources)
|
||||
{
|
||||
local source-actual = [ $(source).actual-name ] ;
|
||||
.contents on $(xml-file) +=
|
||||
"$(nl) <source><![CDATA[$(source-actual)]]></source>"
|
||||
;
|
||||
}
|
||||
.contents on $(xml-file) +=
|
||||
"$(nl) </sources>"
|
||||
;
|
||||
|
||||
# The properties that define the conditions under which the
|
||||
# target was built.
|
||||
.contents on $(xml-file) +=
|
||||
"$(nl) <properties>"
|
||||
;
|
||||
for local prop in [ $(action-props).raw ]
|
||||
{
|
||||
local prop-name = [ MATCH ^<(.*)>$ : $(prop:G) ] ;
|
||||
.contents on $(xml-file) +=
|
||||
"$(nl) <property name=\"$(prop-name)\"><![CDATA[$(prop:G=)]]></property>"
|
||||
;
|
||||
}
|
||||
.contents on $(xml-file) +=
|
||||
"$(nl) </properties>"
|
||||
;
|
||||
}
|
||||
|
||||
local locate = [ on $(target) return $(LOCATE) ] ;
|
||||
locate ?= "" ;
|
||||
.contents on $(xml-file) +=
|
||||
"$(nl) <jam-target><![CDATA[$(target)]]></jam-target>"
|
||||
"$(nl) <path><![CDATA[$(target:G=:R=$(locate))]]></path>"
|
||||
"$(nl) <command><![CDATA[$(command)]]></command>"
|
||||
"$(nl) <output><![CDATA[$(output)]]></output>"
|
||||
;
|
||||
.contents on $(xml-file) +=
|
||||
"$(nl) </action>"
|
||||
;
|
||||
}
|
||||
|
||||
# When no __ACTION_RULE__ is set "on" a target, the search falls
|
||||
# back to the global module
|
||||
module
|
||||
{
|
||||
__ACTION_RULE__ = build-system.out-xml.collect
|
||||
[ modules.peek build-system : .out-xml ] ;
|
||||
}
|
||||
}
|
||||
|
||||
NOTFILE all ;
|
||||
DEPENDS all : $(actual-targets) ;
|
||||
|
||||
if $(bjam-targets)
|
||||
{
|
||||
UPDATE $(bjam-targets:G=e) ;
|
||||
UPDATE $(bjam-targets:G=e) $(.out-xml) ;
|
||||
}
|
||||
else if $(cleanall)
|
||||
{
|
||||
@ -507,13 +695,13 @@ else if $(clean)
|
||||
|
||||
# Remove only derived targets.
|
||||
if [ $(t).action ]
|
||||
{
|
||||
{
|
||||
if $(t) in $(targets-to-clean)
|
||||
|| [ is-child [ $(p).project-module ] ] = true
|
||||
{
|
||||
to-clean += $(t) ;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
local to-clean-actual ;
|
||||
for local t in $(to-clean)
|
||||
@ -522,14 +710,8 @@ else if $(clean)
|
||||
}
|
||||
common.Clean clean : $(to-clean-actual) ;
|
||||
UPDATE clean ;
|
||||
|
||||
|
||||
}
|
||||
|
||||
else
|
||||
{
|
||||
UPDATE all ;
|
||||
UPDATE all $(.out-xml) ;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
@ -1,7 +1,6 @@
|
||||
# (C) Copyright David Abrahams 2002. Permission to copy, use, modify, sell and
|
||||
# distribute this software is granted provided this copyright notice appears in
|
||||
# all copies. This software is provided "as is" without express or implied
|
||||
# warranty, and with no claim as to its suitability for any purpose.
|
||||
# Copyright 2002 Dave Abrahams
|
||||
# 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)
|
||||
|
||||
import sequence ;
|
||||
import set ;
|
||||
|
@ -1,7 +1,6 @@
|
||||
# (C) Copyright Rene Rivera, 2003.
|
||||
#
|
||||
# See accompanying license for terms and conditions of use.
|
||||
#
|
||||
# Copyright 2003 Rene Rivera
|
||||
# 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)
|
||||
|
||||
# Modifiers are generalized generators that mutate targets in specific ways.
|
||||
# This structure allows for grouping a variety of functionality in an
|
||||
|
@ -716,6 +716,11 @@ class action
|
||||
[ indirect.get-rule $(self.action-name[1]) ] $(actual-targets)
|
||||
: $(properties) ;
|
||||
|
||||
# Reflect ourselves in a variable for the target. This allows
|
||||
# looking up additional info for the action given the raw target.
|
||||
# For example to debug or output action information from action rules.
|
||||
.action on $(actual-targets) = $(__name__) ;
|
||||
|
||||
indirect.call $(self.action-name)
|
||||
$(actual-targets) : $(self.actual-sources) : [ $(properties).raw ]
|
||||
;
|
||||
|
@ -1,3 +1,6 @@
|
||||
# Copyright 2004,2006 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)
|
||||
|
||||
import quickbook
|
||||
;
|
||||
|
@ -1,3 +1,6 @@
|
||||
# Copyright 2007 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)
|
||||
|
||||
import common ;
|
||||
import "class" : new ;
|
||||
@ -7,26 +10,26 @@ rule generate-example ( project name : property-set : sources * )
|
||||
local result ;
|
||||
for local s in $(sources)
|
||||
{
|
||||
#local ea = [ $(s).action ] ;
|
||||
#local ep = [ $(ea).properties ] ;
|
||||
|
||||
# Create a new action, that takes the source target
|
||||
# and runs 'common.copy' comamnd on it.
|
||||
local a = [
|
||||
new non-scanning-action $(s) : common.copy : $(property-set) ] ;
|
||||
|
||||
local source-name = [ $(s).name ] ;
|
||||
|
||||
# Create the target to represent the result of the action.
|
||||
# The target has the name that was specified in Jamfile
|
||||
# and passed here via the 'name' parameter,
|
||||
# and the same type and project as the source.
|
||||
result += [ new file-target $(name)
|
||||
: [ $(s).type ]
|
||||
: $(project)
|
||||
: $(a) ] ;
|
||||
}
|
||||
#local ea = [ $(s).action ] ;
|
||||
#local ep = [ $(ea).properties ] ;
|
||||
|
||||
# Create a new action, that takes the source target
|
||||
# and runs 'common.copy' comamnd on it.
|
||||
local a = [
|
||||
new non-scanning-action $(s) : common.copy : $(property-set) ] ;
|
||||
|
||||
local source-name = [ $(s).name ] ;
|
||||
|
||||
# Create the target to represent the result of the action.
|
||||
# The target has the name that was specified in Jamfile
|
||||
# and passed here via the 'name' parameter,
|
||||
# and the same type and project as the source.
|
||||
result += [ new file-target $(name)
|
||||
: [ $(s).type ]
|
||||
: $(project)
|
||||
: $(a) ] ;
|
||||
}
|
||||
return $(result) ;
|
||||
}
|
||||
|
||||
generate a2 : a.cpp : <generating-rule>@generate-example ;
|
||||
generate a2 : a.cpp : <generating-rule>@generate-example ;
|
||||
|
@ -10,3 +10,6 @@ flexible.
|
||||
|
||||
Please consult the docs for more explanations.
|
||||
|
||||
# Copyright 2007 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)
|
||||
|
@ -2,3 +2,9 @@
|
||||
int main()
|
||||
{
|
||||
}
|
||||
|
||||
/*
|
||||
Copyright 2007 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)
|
||||
*/
|
||||
|
@ -1,3 +1,6 @@
|
||||
# Copyright 2006 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)
|
||||
|
||||
import soap ;
|
||||
exe foo : foo.gci : <server>on ;
|
||||
exe foo : foo.gci : <server>on ;
|
||||
|
@ -2,3 +2,6 @@
|
||||
This example shows how to declare a new generator class. It's necessary
|
||||
when generator's logic is more complex that just running a single tool.
|
||||
|
||||
# Copyright 2006 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)
|
||||
|
@ -2,4 +2,9 @@
|
||||
int main()
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
/*
|
||||
Copyright 2006 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)
|
||||
*/
|
||||
|
@ -1,3 +1,6 @@
|
||||
# Copyright 2006 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)
|
||||
|
||||
# This is example of a fictional code generator tool.
|
||||
# It accepts a single input of type '.gci' and produces
|
||||
@ -19,47 +22,47 @@ feature.feature server : off on : incidental ;
|
||||
class soap-generator : generator
|
||||
{
|
||||
import "class" : new ;
|
||||
|
||||
|
||||
rule __init__ ( * : * )
|
||||
{
|
||||
generator.__init__ $(1) : $(2) : $(3) : $(4) : $(5) : $(6) : $(7) : $(8) : $(9) ;
|
||||
}
|
||||
|
||||
|
||||
rule run ( project name ? : property-set : sources * )
|
||||
{
|
||||
if ! $(sources[2])
|
||||
{
|
||||
# Accept only single source.
|
||||
local t = [ $(sources[1]).type ] ;
|
||||
if $(t) = GCI
|
||||
if $(t) = GCI
|
||||
{
|
||||
# The type is correct.
|
||||
|
||||
|
||||
# If no output name is specified, guess it from sources.
|
||||
if ! $(name)
|
||||
{
|
||||
name = [ generator.determine-output-name $(sources) ] ;
|
||||
}
|
||||
|
||||
|
||||
# Produce one output, using just copy.
|
||||
local a = [ new action $(sources[1])
|
||||
local a = [ new action $(sources[1])
|
||||
: common.copy : $(property-set) ] ;
|
||||
local t = [ new file-target $(name) : CPP : $(project)
|
||||
: $(a) ] ;
|
||||
|
||||
|
||||
# If in server mode, create another output -- an
|
||||
# empty file. If this were a real SOAP generator, we
|
||||
# might have created a single action, and two targets
|
||||
# both using that action.
|
||||
local t2 ;
|
||||
if [ $(property-set).get <server> ] = "on"
|
||||
{
|
||||
local t2 ;
|
||||
if [ $(property-set).get <server> ] = "on"
|
||||
{
|
||||
local a = [ new action : soap.touch : $(property-set) ] ;
|
||||
t2 = [ new file-target $(name)_server : CPP : $(project)
|
||||
: $(a) ] ;
|
||||
}
|
||||
return [ virtual-target.register $(t) ]
|
||||
[ virtual-target.register $(t2) ] ;
|
||||
return [ virtual-target.register $(t) ]
|
||||
[ virtual-target.register $(t2) ] ;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1,5 +1,8 @@
|
||||
# Copyright 2006 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)
|
||||
|
||||
import python_helpers ;
|
||||
|
||||
ECHO "test1:" [ python_helpers.test1 ] ;
|
||||
ECHO "test2:" [ python_helpers.test2 1234 : 5678 ] ;
|
||||
ECHO "test2:" [ python_helpers.test2 1234 : 5678 ] ;
|
||||
|
@ -1,3 +1,6 @@
|
||||
# Copyright 2006 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)
|
||||
|
||||
# Import the Python rules to Boost.Build
|
||||
PYTHON_IMPORT_RULE python_helpers : test1 : python_helpers : test1 ;
|
||||
|
@ -1,3 +1,6 @@
|
||||
# Copyright 2006 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)
|
||||
|
||||
# Declare a couple of functions called from Boost.Build
|
||||
#
|
||||
@ -10,6 +13,6 @@
|
||||
|
||||
def test1(l):
|
||||
return ["foo", "bar"]
|
||||
|
||||
|
||||
def test2(l, l2):
|
||||
return [l[0], l2[0]]
|
@ -1,14 +1,14 @@
|
||||
|
||||
import qt4 ;
|
||||
|
||||
if ! [ qt4.initialized ]
|
||||
{
|
||||
ECHO "Warning: Qt4 not initialized in user-config.jam" ;
|
||||
ECHO "Assuming /space/p2/ghost/build/Qt4 as location." ;
|
||||
ECHO "This is very likely won't work for you. " ;
|
||||
using qt4 : /space/p2/ghost/build/Qt4 ;
|
||||
}
|
||||
|
||||
project : requirements <threading>multi ;
|
||||
|
||||
|
||||
import qt4 ;
|
||||
|
||||
if ! [ qt4.initialized ]
|
||||
{
|
||||
ECHO "Warning: Qt4 not initialized in user-config.jam" ;
|
||||
ECHO "Assuming /space/p2/ghost/build/Qt4 as location." ;
|
||||
ECHO "This is very likely won't work for you. " ;
|
||||
using qt4 : /space/p2/ghost/build/Qt4 ;
|
||||
}
|
||||
|
||||
project : requirements <threading>multi ;
|
||||
|
||||
exe arrow : main.cpp arrow.cpp arrow.h /qt//QtGui ;
|
@ -1 +0,0 @@
|
||||
*.pyc test_results.txt failed_test test-config.jam
|
@ -1,9 +1,8 @@
|
||||
#!/usr/bin/python
|
||||
|
||||
# Copyright (C) Vladimir Prus 2003. Permission to copy, use, modify, sell and
|
||||
# distribute this software is granted provided this copyright notice appears in
|
||||
# all copies. This software is provided "as is" without express or implied
|
||||
# warranty, and with no claim as to its suitability for any purpose.
|
||||
# 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: virtual targets with different dependency properties
|
||||
# were considered different by 'virtual-target.register', but the code
|
||||
|
@ -1,5 +1,10 @@
|
||||
#!/usr/bin/python
|
||||
|
||||
# Copyright 2003 Dave Abrahams
|
||||
# Copyright 2002, 2003, 2005, 2006 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)
|
||||
|
||||
from BoostBuild import Tester, List
|
||||
|
||||
t = Tester()
|
||||
|
@ -1,9 +1,8 @@
|
||||
#!/usr/bin/python
|
||||
|
||||
# Copyright (C) Vladimir Prus 2003. Permission to copy, use, modify, sell and
|
||||
# distribute this software is granted provided this copyright notice appears in
|
||||
# all copies. This software is provided "as is" without express or implied
|
||||
# warranty, and with no claim as to its suitability for any purpose.
|
||||
# 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)
|
||||
|
||||
from BoostBuild import Tester, List
|
||||
import string
|
||||
|
@ -1,9 +1,8 @@
|
||||
#!/usr/bin/python
|
||||
|
||||
# Copyright (C) Vladimir Prus 2004. Permission to copy, use, modify, sell and
|
||||
# distribute this software is granted provided this copyright notice appears in
|
||||
# all copies. This software is provided "as is" without express or implied
|
||||
# warranty, and with no claim as to its suitability for any purpose.
|
||||
# Copyright 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)
|
||||
|
||||
# This test tries to stage the same file to the same location by *two*
|
||||
# different stage rules, in two different projects. This is not exactly
|
||||
|
@ -1,3 +1,7 @@
|
||||
# Copyright 2001 Dave Abrahams
|
||||
# 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)
|
||||
|
||||
rule echo_args ( a b ? c ? : d + : e * )
|
||||
{
|
||||
ECHO a= $(a) b= $(b) c= $(c) ":" d= $(d) ":" e= $(e) ;
|
||||
|
@ -1 +1,5 @@
|
||||
# This file is empty; it just suppresses warnings
|
||||
# This file is empty; it just suppresses warnings
|
||||
|
||||
# Copyright 2001 Dave Abrahams
|
||||
# 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)
|
||||
|
@ -1,9 +1,8 @@
|
||||
#!/usr/bin/python
|
||||
|
||||
# Copyright (C) Vladimir Prus 2003. Permission to copy, use, modify, sell and
|
||||
# distribute this software is granted provided this copyright notice appears in
|
||||
# all copies. This software is provided "as is" without express or implied
|
||||
# warranty, and with no claim as to its suitability for any purpose.
|
||||
# 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)
|
||||
|
||||
# This file is template for Boost.Build tests. It creates a simple
|
||||
# project that builds one exe from one source, and checks that the exe
|
||||
|
@ -1,9 +1,8 @@
|
||||
#!/usr/bin/python
|
||||
|
||||
# Copyright (C) Vladimir Prus 2003. Permission to copy, use, modify, sell and
|
||||
# distribute this software is granted provided this copyright notice appears in
|
||||
# all copies. This software is provided "as is" without express or implied
|
||||
# warranty, and with no claim as to its suitability for any purpose.
|
||||
# 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)
|
||||
|
||||
# This file is template for Boost.Build tests. It creates a simple
|
||||
# project that builds one exe from one source, and checks that the exe
|
||||
|
@ -1,9 +1,8 @@
|
||||
#!/usr/bin/python
|
||||
|
||||
# Copyright (C) Vladimir Prus 2004. Permission to copy, use, modify, sell and
|
||||
# distribute this software is granted provided this copyright notice appears in
|
||||
# all copies. This software is provided "as is" without express or implied
|
||||
# warranty, and with no claim as to its suitability for any purpose.
|
||||
# Copyright 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)
|
||||
|
||||
# Tests that on gcc, we correctly report problem when static runtime
|
||||
# is requested when building DLL.
|
||||
|
@ -1,3 +1,6 @@
|
||||
# Copyright 2003, 2005 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)
|
||||
|
||||
# This project-root.jam also serves the role of Jamfile
|
||||
project lib3 ;
|
||||
|
@ -1,3 +1,7 @@
|
||||
Comprehensive tests for Boost.Build v2; requires Python. To test, execute:
|
||||
|
||||
python test_all.py
|
||||
|
||||
# Copyright 2002 Dave Abrahams
|
||||
# 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)
|
||||
|
@ -545,11 +545,9 @@ t.cleanup()
|
||||
|
||||
<p class="revision">Last modified: Mar 11, 2005</p>
|
||||
|
||||
<p>© Copyright Vladimir Prus 2002, 2003, 2004, 2005. Permission to
|
||||
copy, use, modify, sell and distribute this document is granted provided
|
||||
this copyright notice appears in all copies. This document is provided
|
||||
``as is'' without express or implied warranty, and with no claim as to
|
||||
its suitability for any purpose.</p>
|
||||
<p>© Copyright Vladimir Prus 2002, 2003, 2004, 2005.
|
||||
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)</p>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
# Copyright 2002, 2003, 2004, 2005 Dave Abrahams
|
||||
# Copyright 2002, 2005, 2006 Rene Rivera
|
||||
# Copyright 2002, 2005, 2006, 2007 Rene Rivera
|
||||
# Copyright 2006 Juergen Hunold
|
||||
# Copyright 2005 Toon Knapen
|
||||
# Copyright 2002, 2003, 2004, 2005, 2006 Vladimir Prus
|
||||
@ -205,6 +205,8 @@ feature architecture :
|
||||
power
|
||||
# MIPS/SGI
|
||||
mips1 mips2 mips3 mips4 mips32 mips32r2 mips64
|
||||
# HP/PA-RISC
|
||||
parisc
|
||||
#
|
||||
: propagated optional ;
|
||||
|
||||
@ -214,6 +216,8 @@ feature instruction-set :
|
||||
i386 i486 i586 i686
|
||||
pentium pentium-mmx pentiumpro pentium2 pentium3 pentium3m pentium-m pentium4 pentium4m
|
||||
prescott nocona
|
||||
conroe conroe-xe conroe-l allendale mermon mermon-xe kentsfield kentsfield-xe
|
||||
penryn wolfdale yorksfield nehalem
|
||||
k6 k6-2 k6-3 athlon athlon-tbird athlon-4 athlon-xp athlon-mp
|
||||
k8 opteron athlon64 athlon-fx
|
||||
winchip-c6 winchip2
|
||||
@ -235,6 +239,8 @@ feature instruction-set :
|
||||
r2000 r3000 r3900 r4000 r4100 r4300 r4400 r4600 r4650 r6000 r8000
|
||||
rm7000 rm9000 orion sb1
|
||||
vr4100 vr4111 vr4120 vr4130 vr4300 vr5000 vr5400 vr5500
|
||||
# HP/PA-RISC
|
||||
700 7100 7100lc 7200 7300 8000
|
||||
#
|
||||
: propagated optional ;
|
||||
|
||||
|
@ -3,6 +3,7 @@
|
||||
# Copyright (c) 2005 Alexey Pakhunov.
|
||||
# Copyright (c) 2006 Bojan Resnik.
|
||||
# Copyright (c) 2006 Ilya Sokolov.
|
||||
# Copyright (c) 2007 Rene Rivera
|
||||
#
|
||||
# Use, modification and distribution is subject to the Boost Software
|
||||
# License Version 1.0. (See accompanying file LICENSE_1_0.txt or
|
||||
@ -231,6 +232,10 @@ local rule configure-really (
|
||||
{
|
||||
# Even if version is not explicitly specified, try to detect the version
|
||||
# from the path.
|
||||
if [ MATCH "(Microsoft Visual Studio 9)" : $(command) ]
|
||||
{
|
||||
version = 9.0 ;
|
||||
}
|
||||
if [ MATCH "(Microsoft Visual Studio 8)" : $(command) ]
|
||||
{
|
||||
version = 8.0 ;
|
||||
@ -299,8 +304,9 @@ local rule configure-really (
|
||||
if ! $(below-8.0)
|
||||
{
|
||||
cpu = i386 amd64 ia64 ;
|
||||
# Whereas http://msdn2.microsoft.com/en-us/library/x4d2c09s(VS.80).aspx
|
||||
# say about x86_ipf, that seem to be doc bug,
|
||||
# Whereas http://msdn2.microsoft.com/en-us/library/x4d2c09s(VS.80).aspx or
|
||||
# http://msdn2.microsoft.com/en-us/library/x4d2c09s(vs.90).aspx
|
||||
# say about x86_IPF, that seem to be doc bug,
|
||||
# and x86_ia64 is right one.
|
||||
setup-option = x86 x86_amd64 x86_ia64 ;
|
||||
|
||||
@ -394,13 +400,16 @@ local rule configure-really (
|
||||
}
|
||||
|
||||
|
||||
# Supported CPU types
|
||||
# Supported CPU types (only Itanium optimization options are supported from
|
||||
# VC++ 2005 on). See http://msdn2.microsoft.com/en-us/library/h66s5s0e(vs.90).aspx
|
||||
cpu-type-g5 = i586 pentium pentium-mmx ;
|
||||
cpu-type-g6 =
|
||||
i686 pentiumpro pentium2 pentium3 pentium3m pentium-m k6 k6-2 k6-3
|
||||
winchip-c6 winchip2 c3 c3-2 ;
|
||||
|
||||
cpu-type-em64t = prescott nocona ;
|
||||
cpu-type-em64t = prescott nocona
|
||||
conroe conroe-xe conroe-l allendale mermon mermon-xe kentsfield kentsfield-xe
|
||||
penryn wolfdale yorksfield nehalem ;
|
||||
cpu-type-amd64 = k8 opteron athlon64 athlon-fx ;
|
||||
|
||||
cpu-type-g7 =
|
||||
@ -465,12 +474,12 @@ rule configure-version-specific ( toolset : version : condition )
|
||||
}
|
||||
else
|
||||
{
|
||||
# 8.0 adds some more options
|
||||
# 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 ;
|
||||
|
||||
# 8.0 only has multi-threaded static RTL
|
||||
# 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 ;
|
||||
}
|
||||
@ -916,13 +925,14 @@ actions compile.mc
|
||||
|
||||
.ProgramFiles = [ path.make [ common.get-program-files-dir ] ] ;
|
||||
|
||||
.known-versions = 8.0 8.0express 7.1 7.1toolkit 7.0 6.0 ;
|
||||
.known-versions = 9.0 9.0express 8.0 8.0express 7.1 7.1toolkit 7.0 6.0 ;
|
||||
|
||||
# Version aliases
|
||||
.version-alias-6 = 6.0 ;
|
||||
.version-alias-6.5 = 6.0 ;
|
||||
.version-alias-7 = 7.0 ;
|
||||
.version-alias-8 = 8.0 ;
|
||||
.version-alias-9 = 9.0 ;
|
||||
|
||||
# Name of the registry key that contains Visual C++ installation path
|
||||
# (relative to "HKEY_LOCAL_MACHINE\SOFTWARE\\Microsoft"
|
||||
@ -931,6 +941,8 @@ actions compile.mc
|
||||
.version-7.1-reg = "VisualStudio\\7.1\\Setup\\VC" ;
|
||||
.version-8.0-reg = "VisualStudio\\8.0\\Setup\\VC" ;
|
||||
.version-8.0express-reg = "VCExpress\\8.0\\Setup\\VC" ;
|
||||
.version-9.0-reg = "VisualStudio\\9.0\\Setup\\VC" ;
|
||||
.version-9.0express-reg = "VCExpress\\9.0\\Setup\\VC" ;
|
||||
|
||||
# Visual C++ Toolkit 2003 do not store its installation path in the registry.
|
||||
# The environment variable 'VCToolkitInstallDir' and the default installation
|
||||
|
@ -193,6 +193,8 @@ local rule get-library-name ( path )
|
||||
}
|
||||
}
|
||||
|
||||
# Was an XML dump requested?
|
||||
.out-xml = [ MATCH --out-xml=(.*) : [ modules.peek : ARGV ] ] ;
|
||||
|
||||
# Take a target (instance of 'basic-target') and prints
|
||||
# - its type
|
||||
@ -235,13 +237,29 @@ rule dump-test ( target )
|
||||
# Extract values of the <test-info> feature
|
||||
local test-info = [ $(r).get <test-info> ] ;
|
||||
|
||||
# Format them into a single string of quoted strings
|
||||
test-info = \"$(test-info:J=\"\ \")\" ;
|
||||
|
||||
ECHO boost-test($(type)) \"$(name)\"
|
||||
[$(test-info)]
|
||||
":" \"$(source-files)\"
|
||||
;
|
||||
# If the user requested XML output on the command-line, add the
|
||||
# test info to that XML file rather than dumping them to stdout.
|
||||
if $(.out-xml)
|
||||
{
|
||||
local nl = "
|
||||
" ;
|
||||
.contents on $(.out-xml) +=
|
||||
"$(nl) <test type=\"$(type)\" name=\"$(name)\">"
|
||||
"$(nl) <info><![CDATA[$(test-info)]]></info>"
|
||||
"$(nl) <source><![CDATA[$(source-files)]]></source>"
|
||||
"$(nl) </test>"
|
||||
;
|
||||
}
|
||||
else
|
||||
{
|
||||
# Format them into a single string of quoted strings
|
||||
test-info = \"$(test-info:J=\"\ \")\" ;
|
||||
|
||||
ECHO boost-test($(type)) \"$(name)\"
|
||||
[$(test-info)]
|
||||
":" \"$(source-files)\"
|
||||
;
|
||||
}
|
||||
}
|
||||
|
||||
# Register generators. Depending on target type, either
|
||||
|
@ -18,11 +18,17 @@ feature.extend toolset : vacpp ;
|
||||
toolset.inherit vacpp : unix ;
|
||||
generators.override vacpp.prebuilt : builtin.lib-generator ;
|
||||
generators.override vacpp.searched-lib-generator : searched-lib-generator ;
|
||||
feature.subfeature toolset vacpp : version ;
|
||||
|
||||
# Configure the vacpp toolset
|
||||
rule init ( version ? : command * : options * )
|
||||
{
|
||||
local condition = [
|
||||
common.check-init-parameters vacpp : version $(version) ] ;
|
||||
|
||||
command = [ common.get-invocation-command vacpp : xlC
|
||||
: $(command) : "/usr/vacpp/bin/xlC" ] ;
|
||||
|
||||
common.handle-options vacpp : $(condition) : $(command) : $(options) ;
|
||||
}
|
||||
|
||||
# Declare generators
|
||||
|
Loading…
Reference in New Issue
Block a user