In commit v3.11.0-rc1~466^2 (Compiler/TI: Add support for depfile
generation for Ninja, 2017-10-16) the flag for C++ was added in a
variable with a typo in its name. Fix the spelling.
Issue: #17360
The `LINK_ONLY` generator expression is used to represent private
dependencies of static libraries in their `INTERFACE_LINK_LIBRARIES`
property value. Fix evaluation of generator expressions during export
to support the `LINK_ONLY` genex. Extend the RunCMake.AndroidMK test
with a case for this.
When exporting `INTERFACE_LINK_LIBRARIES`, we must evaluate generator
expressions first, before expanding the `;` list, in case they contain
or generate semicolons.
Check if the content of the AUTOMOC/UIC/RCC info file
will change before overwriting it. This avoids unnecessary
AUTORCC rebuilds when AUTORCC unrelated CMake settings change.
Add `clang` and `clang++` after the corresponding `gcc` and `g++`
candidates. Otherwise it is not tried on platforms where we do not
enumerate the toolchain pair candidates.
Fix logic added by commit 2ee10119ea (swig: fix incremental build in
case of removed interface files, 2017-11-06). Name the extra targets
added for Makefile generators using both the module name and .i base
name to avoid collisions across modules. Also make sure the extra
targets added for all .i files in a module are added as dependencies
instead of just the last one.
Fixes: #17704
For multi configuration generators AUTOMOC generates the
moc files that are included in `mocs_compilation.cpp`
in `AUTOGEN_BUILD_DIR/include_$<CONFIG>/`. By doing so each
configuration reads different moc files when compiling
`mocs_compilation.cpp`. Since we do not (need to) rewrite
`mocs_compilation.cpp` on a configuration change anymore,
the files also does not need to be recompiled anymore.
Not having to rewrite and recompile `mocs_compilation.cpp`
on a configuration change anymore was the main objective of
this patch.
In a similar fashion AUTORCC generates a `qrc_BASE_CMAKE.cpp`
file below `AUTOGEN_BUILD_DIR/include_$<CONFIG>/` and
`qrc_BASE.cpp` becomes a mere wrapper that includes this
actuall rcc output file (when using multi configuration
generators).
The template files `Modules/AutoRccInfo.cmake.in` and
`Modules/AutogenInfo.cmake.in` were removed in favor
of writing the info `.cmake` files manually.
Closes#17230
In commit v3.4.0-rc1~480^2~3 (cmCustomCommandGenerator: Port to
cmOutputConverter, 2015-06-04), cmCustomCommandGenerator's access to the
local generator was removed so it needed to construct its own
cmOutputConverter instance. Access to the local generator was then
restored by commit v3.4.0-rc1~285^2~21 (cmCustomCommandGenerator:
Require cmLocalGenerator in API, 2015-07-25), so now we can use its
cmOutputConverter base class methods directly.
Remove the `PRE_LINK` and `POST_BUILD` variables. They are not
referenced by `WriteDeviceLinkRule`.
Remove the `byproducts` local variable from `WriteDeviceLinkStatement`
and all the code populating it. We never used the result.
Code extracted from:
https://gitlab.kitware.com/utils/kwsys.git
at commit 04fcc449646eb2ff3d701986946a1db60b2161b7 (master).
Upstream Shortlog
-----------------
Ben Boeckel (11):
ba270398 SystemToolsAppendComponents: move strings when building components
cfd0f1e6 JoinPath: push back as a character
6770cb3e GetFilenameName: optionally don't search for \ on non-Windows
22b189b0 ConvertToUnixSlashes: remove escaped space logic
342d69a4 ConvertToUnixSlashes: short-circuit on hasDoubleSlash
5dd87350 ConvertToUnixSlashes: remove pos1
3b46b7c0 ConvertToUnixSlashes: bail early on empty paths
55d1d6ab CollapseFullPath: reserve space for components
68807138 CollapseFullPath: prefer .empty() to .length() == 0
71a6de42 CollapseFullPath: refactor the overloads to share implementations
318550c7 CheckCollapsePath: add more test cases