Boost logo

Boost-Build :

Subject: [Boost-build] How do I Install runtime dependent file?
From: Derek Taylor (dtaylor_at_[hidden])
Date: 2009-08-31 17:07:42


I've been using this rule which makes use of the testing module in
boost-build:

rule build-tests ( sources + : requirements * : args * : input-files * :
default-build * )
{
    import testing ;
    modules.poke testing : preserve-test-targets : true ;

    local result ;
    #ECHO Test Targets: $(sources) ;
    #ECHO Test Requirements: $(requirements) ;
    #ECHO Test args: $(args) ;
    #ECHO Test input-files: $(input-files) ;
    for source in $(sources) {
        local file = [ regex.split $(source) "\\." ] ;
        local target-name = $(file[1]) ;
        #ECHO Test Target: $(target-name) ;
        result += [ testing.run $(source) : $(args) : $(input-files) :
$(requirements) : $(target-name) : $(default-build) ] ;
        #ECHO Test Result: $(result) ;
        #ECHO Test Result type: @result.type ;
    }
    return $(result) ;
}

I'll invoke it this way:

build-tests [ glob test_*.cpp ] ;

This works great and runs the unit tests, unless a unit test has a file that
needs to be installed with the test for runtime only.

For normal exe targets, I'll use something like:

make net.conf : net.conf.in : @common.copy ;

But that doesn't work while making use of the testing module because
testing.run specifies a new build location with:
<location-prefix>$(real-name).test

How do I use this rule so that it installs a runtime dependent file along
with the test?

Thanks!

Derek



Boost-Build list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk