2
0
mirror of https://github.com/boostorg/build.git synced 2026-02-11 23:52:20 +00:00

Change handling of toolset -- it's now assumed that there's default toolset

and, therefore, we don't need to treat toolsets in a special way.


[SVN r15927]
This commit is contained in:
Vladimir Prus
2002-10-15 05:55:29 +00:00
parent 9d79510899
commit ea0335ef29
2 changed files with 13 additions and 10 deletions

View File

@@ -65,15 +65,14 @@ rule abstract-target ( name # name of the target in Jamfile
}
# Takes properties in split form ("<feature1>foo <feature2>bar").
# Generates virtual targets for this abstract target which match
# 'properties' as closely as possible. If 'properties' are not specified,
# default values are used. If it not possible to build anything because
# of some problem returns a list with "@error" as the first element
# and explanation in all others. (CONSIDER: need some utilities for
# this method of error reporting? 'is-error'?)
# Generates virtual targets for this abstract target, using the specified properties,
# unless a different value of some feature is required by the target. The properties
# on returned virtual targets should be link-compatible with the requested ones.
# On success, returns a list of virtual targets. If it not possible to build anything,
# issues a warning and returns empty list, or issues an error.
#
# If 'properties' are empty or consist of lonely <toolset>xxx,
# uses default set(s) of properties.
# If 'properties' are empty, performs default build of this target, in a way specific
# to derived class.
rule generate ( properties * )
{
errors.error "method should be defined in derived classes" ;

View File

@@ -15,7 +15,7 @@ import regex ;
import virtual-target ;
import os ;
feature toolset : gcc : optional implicit propagated ;
feature toolset : gcc : implicit propagated ;
feature shared : false true : propagated ;
feature optimization : off on : propagated ;
feature threading : single multi : link-incompatible propagated ;
@@ -76,10 +76,14 @@ rule variant ( name : parents-or-properties * : tool-properties * )
tool-properties = [ feature.add-defaults $(tool-properties) ] ;
# We should remove default value of 'variant'.
# Also, remove default value of 'toolset'. CONSIDER: this move is questionable,
# if we have default toolset, then why eliminate it? We'll have simple target
# paths of "bin/debug" for default toolset.
# TODO: we need to eliminate all 'symmetric' features.
local tool-properties2 ;
for local p in $(tool-properties)
{
if $(p:G) != <variant>
if $(p:G) != <variant> && $(p:G) != <toolset>
{
tool-properties2 += $(p) ;
}