1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91
|
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 ;
#}
|