From: Jurko Gospodnetiæ (jurko.gospodnetic_at_[hidden])
Date: 2008-05-08 15:29:32
> I need to copy test_hello.py (a Python test harness for the Python extension "hello") to each variant of the build directory:
> (project root)\build\msvc-8.0\debug\link-static\threading-multi\
> (project root)\build\msvc-8.0\release\link-static\threading-multi\
> How can I achieve this using the builtin install rule? I've tried a number of things, but a copy of the file doesn't appear.
Hmmm... as I see it the install/stage rule as has been currently
implemented is not intended for copying additional data to build folders
but only to folders (relative to the project's Jamfile path) known when
the Jamfile was written.
Not sure if this is ok or not, however there is something you can do
if you want to do this. A quick-fix without having to dig in deeper into
Boost Build would be:
import make ;
make aaa-copy.txt : aaa.txt : @common.copy ;
However there are a several things 'wrong' with this solution:
1. It is not exactly the most intuitive line of code for what you
want it to do.
2. Forces you to duplicate file name information.
3. There is no way to make the file to keep its original name.
4. Does not work with multiple source files.
5. Does not have any extra install rule logic like
install-source-path feature or shared library relinking support.
I guess a cleaner approach would be to upgrade Boost Build to allow
specifying target locations (something like the current <location>
property) relative to the build folder instead of the Jamfile location
which would hopefully allow the original install rule to be used for
this as well.
I have added a feature request at
https://zigzag.cs.msu.su:7813/boost.build/ticket/181 for this so
hopefully it will not get lost again. :-)
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