2
0
mirror of https://github.com/boostorg/build.git synced 2026-02-16 13:22:11 +00:00
Files
build/new/build-system.jam
Vladimir Prus 27268e2ba7 Work on the issue 578618. Moved all the data out of jamfile modules.
* new/project.jam (project-attributes): New class to keep all the
        project related data. (attritutes, attribute): New rules to access
        the project attributes. (target): New rule to access the project
        target for a jamfile module.
        (initialize): Store attribute in project-attributes instance.
        (project): Moved to jamfile module.
        (assign-option): Moved with modifications to project-attributes.get.
    * new/targets.jam, new/project-root.jam, new/make.jam,
      new/build-system.jam: Induced changes.


[SVN r14362]
2002-07-09 07:56:51 +00:00

57 lines
1.3 KiB
Plaintext

# (C) Copyright David Abrahams 2001. 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.
import project ;
import sequence ;
import modules ;
import feature ;
import build-request ;
import builtin ;
import make ;
import site-config ;
import user-config ;
current-project = [ project.load "." ] ;
if [ MATCH (--dump-projects) : [ modules.peek : ARGV ] ]
{
project-root.print ;
}
build-request = [ build-request.from-command-line [ modules.peek : ARGV ] ] ;
targets = [ $(build-request).get-at 1 ] ;
properties = [ $(build-request).get-at 2 ] ;
expanded = [ build-request.expand $(properties) ] ;
root-target = [ project.target "." ] ;
virtual-targets = ;
if $(expanded)
{
for local p in $(expanded)
{
virtual-targets += [ $(root-target).generate [ feature.split $(p) ] ] ;
}
}
else
{
virtual-targets = [ $(root-target).generate ] ;
}
actual-targets = ;
for t in $(virtual-targets)
{
actual-targets += [ $(t).actualize ] ;
}
DEPENDS all : $(actual-targets) ;
# If there are any targets in the command line, cause them to be updated
UPDATE $(targets) ;