# 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) import type ; import generators ; import print ; import virtual-target ; import "class" : new ; import modules ; import targets ; type.register X : x ; class test-target-class : basic-target { rule __init__ ( name : project ) { basic-target.__init__ $(name) : $(project) ; } rule construct ( source-targets * : property-set ) { if [ modules.peek : GENERATE_NOTHING ] { return ; } else if [ modules.peek : GENERATE_ONLY_UNUSABLE ] { return [ virtual-target.from-file b.x : $(self.project) ] ; } else { return [ virtual-target.from-file b.x : $(self.project) ] [ virtual-target.from-file b.cpp : $(self.project) ] ; } } rule compute-usage-requirements ( rproperties : targets * ) { return [ property-set.create FOO ] ; } } rule make-b-main-target { local project = [ CALLER_MODULE ] ; targets.main-target-alternative [ new test-target-class b : $(project) ] ; } IMPORT $(__name__) : make-b-main-target : : make-b-main-target ;