diff options
Diffstat (limited to 'tools/build/v2/test/generators-test/jamroot.jam')
-rw-r--r-- | tools/build/v2/test/generators-test/jamroot.jam | 95 |
1 files changed, 95 insertions, 0 deletions
diff --git a/tools/build/v2/test/generators-test/jamroot.jam b/tools/build/v2/test/generators-test/jamroot.jam new file mode 100644 index 0000000000..abe08bc438 --- /dev/null +++ b/tools/build/v2/test/generators-test/jamroot.jam @@ -0,0 +1,95 @@ +# Copyright 2002, 2003, 2004, 2005 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 "class" : new ; + +import lex ; +import qt ; +import extra ; + +import type ; + +type.register tUI : tui ; +type.register tUIC_H ; +type.set-generated-target-suffix tUIC_H : : h ; + +type.register X1 : x1 ; +type.register X2 : x2 ; +type.register X_PRO : x_pro ; + +import generators ; + +generators.register-standard qt.uic : tUI tUIC_H : CPP ; +generators.register-standard qt.uic-h : tUI : tUIC_H ; + +# That's an interesting example. Currently, X_PRO will be processed +# twice. +generators.register-standard extra.x : X1 X2 : CPP ; +generators.register-standard extra.x_pro : X_PRO : X1 X2 ; + +# The point of this setup of to implement this functionality +# "When main target type is EST_EXE, build OBJ from CPP-MARKED, not +# for anything else (like CPP) +# Unfortunately, this does not really works. + +#if $(no-var) { +import nm ; + +type.register CPP_MARKED : marked_cpp : CPP ; +type.register POSITIONS : positions ; +type.register NM.TARGET.CPP : target_cpp : CPP ; +type.register NM_EXE : : EXE ; + +generators.register-standard nm.target-source : CPP_MARKED : NM.TARGET.CPP ; +generators.register-standard nm.cpp-mark : CPP : CPP_MARKED POSITIONS ; + +class nm::target::cpp-obj-generator : generator +{ + rule __init__ ( ) + { + generator.__init__ nm.target-obj : NM.TARGET.CPP : OBJ ; + } + + rule requirements ( ) + { + return <main-target-type>NM_EXE ; + } + + # Consider: it it OK to ignore all other generated targets except for the first? + rule run ( project name ? : properties * : source : multiple ? ) + { + if [ $(source).type ] = CPP { + local converted = [ generators.construct $(project) : NM.TARGET.CPP : $(properties) : $(source) ] ; + if $(converted[1]) + { + local result = [ generators.construct $(project) : OBJ : $(properties) : $(converted[2]) ] ; + return $(result) ; + } + else + { + return ; + } + } + else + { + return ; + } + } +} + +generators.register [ new nm::target::cpp-obj-generator ] ; + +generators.override nm.target-obj : all ; + +#} + + + + + + + + + |