2
0
mirror of https://github.com/boostorg/build.git synced 2026-02-14 12:42:11 +00:00

Refine the virtual-targets/actions UML diagram and add some relevant

comments.


[SVN r16881]
This commit is contained in:
Vladimir Prus
2003-01-13 07:36:32 +00:00
parent 065bdd7b3d
commit b1a6452ba4
2 changed files with 50 additions and 25 deletions

View File

@@ -18,31 +18,46 @@ import type ;
# +--------------------------+
# | actualize-action() = 0 |
# | actualize-location() = 0 |
# +------------+-------------+
# |
# ^
# / \
# +-+-+
# |
# +-------------+ +---------+------------+
# | action | | abstract-file-target |
# +=============+ +======================+
# | action-name | +---+ action |
# +-------------+ | | actualize-action() |
# | actualize() +---+ +---------+------------+
# | path() | |
# +------+------+ ^
# | / \
# ^ +-+-+
# / \ |
# +-+-+ +-------+-------------------+
# | | |
# +------+------+ +------+---------------+ +--------+-------------+
# | link-action | | file-target | | searched-lib-target |
# +=============+ +======================+ +======================+
# | | | actualize-location() | | actualize-location() |
# +-------------+ +----------------------+ +----------------------+
# +----------------+---------+
# |
# ^
# / \
# +-+-+
# |
# +---------------------+ +---------+------------+
# | action | | abstract-file-target |
# +=====================| 1 +======================+
# | action-name | +--| action |
# | properties | | +----------------------+
# +---------------------+--+ | actualize-action() |
# | actualize() |0..1 +-----------+----------+
# | path() | |
# | adjust-properties() | |
# | actualize-sources() | |
# +------+--------------+ ^
# | / \
# ^ +-+-+
# / \ |
# +-+-+ +-------------|-------------+
# | | |
# | +------+---------------+ +--------+-------------+
# | | file-target | | searched-lib-target |
# | +======================+ +======================+
# | | actualize-location() | | actualize-location() |
# | +----------------------+ +----------------------+
# |
# +--------------------------------+
# | |
# +---------------------+ +---------------------+
# | compile-action | | link-action |
# +=====================+ +=====================+
# | adjust-properties() | | adjust-properties() |
# +---------------------+ | actualize-sources() |
# +---------------------+
#
# The 'compile-action' and 'link-action' classes are defined not here,
# but in builtin.jam modules. They are shown in the diagram to give
# the big picture.
# Potential target. It can be converted into jam target and used in
# building, if needed. However, it can be also dropped, which allows

View File

@@ -358,6 +358,9 @@ rule compile-action ( targets + : sources * : action-name : properties * )
{
action.__init__ $(targets) : $(sources) : $(action-name) : $(properties) ;
# For all virtual targets for the same dependency graph as self,
# i.e. which belong to the same main target, add their directories
# to include path.
rule adjust-properties ( properties * )
{
local dg = [ $(self.targets[1]).dg ] ;
@@ -402,6 +405,11 @@ rule link-action ( targets + : sources * : action-name : properties * )
{
action.__init__ $(targets) : $(sources) : $(action-name) : $(properties) ;
# For all sources which are instances searched-lib-targets, add
# appropriate <find-shared-library> or <find-static-library> propertry
# For all library sources, add <library> property with that source.
# If <hardcode-dll-paths>true is in properties, for each library source
# add <dll-path> property with the absolute path to that library.
rule adjust-properties ( properties * )
{
local hardcore-rpath ;
@@ -454,7 +462,9 @@ rule link-action ( targets + : sources * : action-name : properties * )
return $(properties) ;
}
# Filters out all sources which are of LIB type and actualizes the remaining
# sources by calling base method.
# Library sources are handled by "adjust-properties" above.
rule actualize-sources ( sources * )
{
local real-sources ;