Boost logo

Boost-Build :

Subject: [Boost-build] Custom generator problem
From: Johan Nilsson (r.johan.nilsson_at_[hidden])
Date: 2009-11-17 08:20:35


I've been working on a custom generator for some time now, and have it
mostly working now, with one annoying problem. It appears that using the
alias rule on a target generated with my generator triggers a "Duplicate
name of actual target" error.

The generator is a custom test execution generator; in the spirit of the
built-in unit-test rule a specially named file is created if all tests
passed, which is used as a marker to determine if the test results are
up-to-date and ok.

The generator basically does this:

- Accepts a shared library, the "test library", as source (contains unit
- Copies the test library to the output directory
- Copies all run-time dependencies (shared libs, basically) of the test
library to the output directory before running the tests
- Runs the test runner, passing the name of the test library on the
- NOTE: It is not possible to simply extend PATH before running the tests,
as is done in testing.jam.


- Generates XML output from the test runner to a file in the target
- Copies the generated XML output files (tagged with <variant>) to a common
output directory

All this seems to work fine, even when running a multi-variant build (e.g.
bjam debug release). But - if I alias the test target when generating XML I
get the above error, even if only running a single-variant build.

I've been trying to reduce the code to the simplest reproducible test case,
attached as a .zip archive. I'd be very grateful if someone could take a
look at the problem as I'm pretty much stumped at this point. (This is not
the real generator, as you can see by the file types.)

To see the problem, unzip the archive and remove the comment before the
alias rule in jamroot.jam. NOTE: The attached project probably only works
under Windows, but with minor modifications it should run under *nix as
well. The contained .dlls are just dummy text files.

Thanks / Johan

Boost-Build list run by bdawes at, david.abrahams at, gregod at, cpdaniel at, john at