$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
Subject: [Boost-commit] svn:boost r64549 - in trunk/tools/build/v2: build test util
From: ghost_at_[hidden]
Date: 2010-08-02 13:30:48
Author: vladimir_prus
Date: 2010-08-02 13:30:46 EDT (Mon, 02 Aug 2010)
New Revision: 64549
URL: http://svn.boost.org/trac/boost/changeset/64549
Log:
Make test/standalone.py pass.
Text files modified: 
   trunk/tools/build/v2/build/alias.py     |     5 ++++-                                   
   trunk/tools/build/v2/test/standalone.py |    17 +++++++++++++++++                       
   trunk/tools/build/v2/util/__init__.py   |     6 ++++++                                  
   3 files changed, 27 insertions(+), 1 deletions(-)
Modified: trunk/tools/build/v2/build/alias.py
==============================================================================
--- trunk/tools/build/v2/build/alias.py	(original)
+++ trunk/tools/build/v2/build/alias.py	2010-08-02 13:30:46 EDT (Mon, 02 Aug 2010)
@@ -29,6 +29,8 @@
 import property_set
 from b2.manager import get_manager
 
+from b2.util import metatarget
+
 class AliasTarget(targets.BasicTarget):
 
     def __init__(self, *args):
@@ -43,6 +45,7 @@
         # look like 100% alias.
         return base.add(subvariant.sources_usage_requirements())
 
+@metatarget
 def alias(name, sources, requirements=None, default_build=None, usage_requirements=None):
     project = get_manager().projects().current()
     targets = get_manager().targets()
@@ -51,7 +54,7 @@
         default_build = default_build[0]
 
     targets.main_target_alternative(AliasTarget(
-        name[0], project,
+        name, project,
         targets.main_target_sources(sources, name),
         targets.main_target_requirements(requirements or [], project),
         targets.main_target_default_build(default_build, project),
Modified: trunk/tools/build/v2/test/standalone.py
==============================================================================
--- trunk/tools/build/v2/test/standalone.py	(original)
+++ trunk/tools/build/v2/test/standalone.py	2010-08-02 13:30:46 EDT (Mon, 02 Aug 2010)
@@ -32,6 +32,23 @@
 alias runtime : x ;
 """)
 
+t.write("standalone.py", """
+from b2.manager import get_manager
+
+# FIXME: this is ugly as death
+get_manager().projects().initialize(__name__)
+
+import os ;
+
+# This use of list as parameter is also ugly.
+project(['standalone'])
+
+pwd = os.getcwd()
+alias('x', [os.path.join(pwd, '../a.cpp')])
+alias('runtime', ['x'])
+""")
+
+
 t.write("sub/jamfile.jam", """
 stage bin : /standalone//runtime ;
 """)
Modified: trunk/tools/build/v2/util/__init__.py
==============================================================================
--- trunk/tools/build/v2/util/__init__.py	(original)
+++ trunk/tools/build/v2/util/__init__.py	2010-08-02 13:30:46 EDT (Mon, 02 Aug 2010)
@@ -11,6 +11,12 @@
 
     return wrap
 
+def metatarget(f):
+
+    f.bjam_signature = (["name"], ["sources", "*"], ["requirements", "*"],
+                        ["default_build", "*"], ["usage_requirements", "*"])
+    return f
+
 class cached(object):
 
     def __init__(self, function):