The <OBJECT_DIR> placeholder is supposed to be the base intermediate
files directory for the current target. This is how it gets replaced
during link line generation. However, during compile line generation
we replace it with the directory containing the current object file
which may be a subdirectory. Fix replacement of <OBJECT_DIR> in the
generated compile lines to be the base intermediate files directory.
This was expoxed by commit 42ba1b08 (VS: Separate compiler and linker
PDB files, 2013-04-05) when we added a "/Fd<OBJECT_DIR>/" flag to the
MSVC compile line in order to match the VS IDE default compiler program
database location in the intermediate files directory. For source files
in a subdirectory relative to the current target this caused the wrong
location to be used for the compiler program database. This becomes
particularly important when using precompiled headers.
While at it, use the cmTarget::GetSupportDirectory method to compute the
intermediate files directory for the current target instead of repeating
the logic in a few places.
The first regression resulted in endless looping due to unrun test
dependencies. The second regression prioritized all tests with dependencies
in serial test runs.
Revise the organization introduced in commit 2c7cd95c (Help: Organize
top-level index, 2013-10-28) to drop "Other Manuals" and put them in
"Reference Manuals" because the distinction between them has blurred.
Perhaps a better breakdown of the reference manuals will emerge in
the future.
While at it, sort the reference manual toctree by name.
Extract upstream KWSys using the following shell commands.
$ git archive --prefix=upstream-kwsys/ 2426b57d | tar x
$ git shortlog --no-merges --abbrev=8 --format='%h %s' 88165c5e..2426b57d
Clinton Stimpson (1):
2426b57d Encoding: Add support for program arguments argc/argv.
Change-Id: Id1fbc042a093b1de398753ffa16d4f9449e99423
Populate a separate vector of files and append them separately. This
was the pattern used prior to commit 035b6908 (Autogen: Split AutoRcc
handling into two methods, 2013-12-10), which was erroneously not
maintained in that refactoring.
The parent commit changed the AutogensType::value_type to be
"std::pair<cmQtAutoGenerators,cmTarget const*>" but our std::make_pair
call returns "std::pair<cmQtAutoGenerators,cmTarget*>". Construct the
value_type directly instead of using make_pair. Otherwise the Sun 5.9
compiler complains
".../Source/cmGlobalGenerator.cxx", line 1281: Error:
Formal argument x of type "const std::pair<cmQtAutoGenerators, const cmTarget*>&"
in call to "std::vector<std::pair<cmQtAutoGenerators, const cmTarget*> >
::push_back(const std::pair<cmQtAutoGenerators, const cmTarget*>&)" is being
passed "std::pair<cmQtAutoGenerators, cmTarget*>".