Boost logo

Boost-Build :

From: Vladimir Prus (ghost_at_[hidden])
Date: 2003-10-21 08:11:17

I've another question for users. Currently, V2 generates paths in the form




The first form is used when target has the same properties as project (in some
sense). The second form is used otherwise. The idea was that a project can
define project requirement, and if target does not have any requirement of
its own, it will somewhat nicer and shorter target path.

Now, this does not work as good.

First, innocent <include> or even <library> requirement immediately add the
"main-target" part to path, and this happens quite often.

Second, the target directory structure is sometimes very confusing. Some
targets are in bin/gcc/debug/, some are in main-target-specific directories.
For msvc, for example, exe is put in bin/msvc/debug and response file -- to /

Third, this somewhat complicates the code. Further, I plan to do some
refactorings which will either make everything to be put into per-main-target
directories, or require even more complications.

So, I propose to always generate targets to a directory specific to main
target. What do users think about it?

Two possible problems are:

1. A bit longer paths. Not a real problem, I think.
2. If one cpp is used by two exe, it will be recompiled twice. I think this
will be quite rare.

Opinions are more than welcome.

- Volodya

