| Commit message (Collapse) | Author | Age | Files | Lines |
|\
| |
| |
| |
| |
| |
| | |
df965cb9 Ninja: Fix quoting of RC language depfile in cmcldeps call
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1309
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Since commit v3.0.0-rc1~448^2 (Ninja: use deps = gcc/msvc feature,
2013-10-18) the value of the `DEP_FILE` binding already includes the
needed quoting to refer to the file. However, that commit forgot to
update one of the `$DEP_FILE` references to not be quoted anymore.
The offending code path currently only affects cmcldeps for RC.
Remove the extra quoting now.
Fixes: #17298
|
|\ \
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
a7005c98 Tests: Add case for legacy source file property behavior
1604716d Revert "Performance: Improve efficiency of source file lookup in cmMakefile"
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1308
|
| | |
| | |
| | |
| | |
| | |
| | | |
This reverts commit 3b95ab569345028a1a8fe521d5ecd81fa97f2653.
It regressed some legacy source file property behavior.
Revert pending further investigation.
|
| | | |
|
| |/
|/| |
|
|\ \
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
0332ec72 cmCPluginAPI: remove explicit casts to void*
cf399036 cmCPluginAPI: do not check pointer before calling free()
6e2b1853 cmCPluginAPI: use strdup() instead of open coding it
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1305
|
| | | |
|
| | | |
|
| | | |
|
|\ \ \
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
0a8e23ad Windows: Improve link-time error messages when rc or mt fail
c2d6835c cmSystemTools: Teach RunSingleCommand another way to report exceptions
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1260
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
We run extra tools during linking on Windows to deal with manifests.
Report more information when these tools fail. For example, if the
Windows SDK is not installed with VS then `rc.exe` will be missing.
|
| | | |
| | | |
| | | |
| | | |
| | | | |
If the caller captures stdout but not stderr then report exceptions
through stdout instead of dropping them.
|
|\ \ \ \
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
9a24ab6b CPackIFW: Add some options
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1298
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
The `CPackIFW` module `cpack_ifw_configure_component` and
`cpack_ifw_configure_component_group` commands gained a new
`REPLACES` and `CHECKABLE` options.
|
|\ \ \ \ \
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
44d3a76d Avoid using std::bind1st that is removed in C++17
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1304
|
| | |_|_|/
| |/| | |
| | | | |
| | | | | |
Use a lambda instead now that we require C++11.
|
| | | | | |
|
| |_|_|/
|/| | | |
|
| | | | |
|
|\ \ \ \
| |/ / /
|/| | |
| | | |
| | | |
| | | |
| | | | |
5b46cc91 graphviz: distinguish target dependency types
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1229
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
- The output graph of graphviz differs now between target link types
- Updated documentation
- Fixes: #17192
|
|\ \ \ \
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
3b95ab56 Performance: Improve efficiency of source file lookup in cmMakefile
e0188803 cmMakefile: Drop unused method
fe1e811b cmSourceFileLocation: Drop unnecessary copy-assignment operator
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1154
|
| | | | |
| | | | |
| | | | |
| | | | | |
Add an unordered map to cmMakefile to speed up GetSource() lookups.
|
| | | | | |
|
| | |_|/
| |/| |
| | | |
| | | | |
Update the one place that used it to avoid needing assignment.
|
|\ \ \ \
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
51fd7b71 Autogen: Tests: Add a change-not test to the mocRerun test
c8f92db7 Autogen: Tests: Disable an AUTOMOC_DEPENDS_FILTER test for Ninja
3c77515e Autogen: Tests: Refactor the QtAutogenRebuild rccDepends test
04a0daee Autogen: Tests: Move each rerun test script to a NAME.cmake file
e5c6610a Autogen: Tests: Extend CMAKE_AUTOMOC_DEPEND_FILTERS rebuild test
93265652 Autogen: Tests: Add <SUBDIR>/ui_view.h AUTOUIC includes to sameName test
4eb7d817 Autogen: Tests: Add <SUBDIR>/item.moc includes to sameName test
3f223743 Autogen: Read relative paths from rcc output
...
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1244
|
| | | | | |
|
| | | | | |
|
| |/ / /
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
The refactoring of cmQtAutoGenerators serializes the program flow and
makes it less jumpy in terms of function calling.
Instead of keeping and passing multiple std::vectors and std::maps in
function arguments, single lists with job descriptions are used,
one job list for MOC, UIC, RCC respectively.
Several utility functions and methods were replaced with scoped lambdas
and the remaining methods were sorted by their scope (MOC, UIC, RCC).
Error and warning messages were refactored to be more verbose
about the problem at hand.
The source parsing algorithms were rewritten in large parts.
In the process a lack of functionality of CMAKE_AUTOMOC_DEPEND_FILTERS
was discovered and fixed. CMAKE_AUTOMOC_DEPEND_FILTERS did not extract
dependency file names from headers that were not in the target sources
but were registered to AUTOMOC by a `#include "moc_<NAME>.cpp"` statement.
A test for this use case is provided in a follow up commit.
|
|\ \ \ \
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
4c0edbd7 variable_watch: Made it safe to add/remove watches in access callbacks
28d2c6ef test: Added additional unit test to variable_watch
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1284
|
| | |_|/
| |/| | |
|
|\ \ \ \
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
37d9387b Replace empty-string comparisons with checking against `empty()`.
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1275
|
| | | | | |
|
| |/ / /
|/| | | |
|
|\ \ \ \
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
ff0ddff7 Merge branch 'upstream-KWSys' into update-kwsys
d49b95b8 KWSys 2017-09-21 (ff912e4d)
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1297
|
| |/ / /
| | | |
| | | |
| | | |
| | | | |
* upstream-KWSys:
KWSys 2017-09-21 (ff912e4d)
|
|\ \ \ \
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
b06870e5 CPack: use a distinct checksum file for each generator
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1291
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Different CPack generators could produce checksum files with the same
name which were overwritten by each other since only package name
without extensions was used for checksum file name generation. This
patch adds package extension to checksum files to prevent collisions.
Fixes: #16840
|
|\ \ \ \ \
| |_|/ / /
|/| | | |
| | | | |
| | | | |
| | | | |
| | | | | |
09166339 CPack: Add missing check for CPACK_INSTALL_SCRIPT variable
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1090
|
| |/ / /
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Also add a test case that uses CPACK_INSTALL_SCRIPT.
Co-Author: Domen Vrankar <domen.vrankar@gmail.com>
Fixes: #15005
|
| |/ /
|/| | |
|
|\ \ \
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
062776e7 CTest: pass std::string to cmCTestCoverageHandler::ShouldIDoCoverage()
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1290
|
| |/ /
| | |
| | |
| | | |
Avoid needless conversion back and forth.
|
|\ \ \
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
7374cb85 Ninja: Cache ConvertToNinjaPath results to avoid repeat work
ed19e813 Ninja: Improve performance with deeply-dependent custom targets
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1217
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Calls to this method may dominate generation time in some cases.
Measurements for configuring cmake itself show a cache hit rate of ~57%
(7753 total calls, 4453 cache hits). For a larger project (that also
makes use of custom targets as prerequisite for all compile targets),
the measured cache hit ratio is ~96% (2530827 total calls, 2433124 cache
hits). For this project the observable cmake runtime could be reduced
from 40s to 30s.
Signed-off-by: Matthias Maennich <matthias@maennich.net>
|
| |/ /
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The commit v3.7.0-rc1~339^2 (Ninja: Fix inter-target order-only
dependencies of custom command, 2016-07-20) might cause performance
degradations for larger projects. Especially when using custom
commands as an input for each compilation rule (e.g. generated headers).
For reference in the following I am referring to
Source/cmGlobalNinjaGenerator.cxx:
-> cmGlobalNinjaGenerator::AppendTargetDependsClosure
-> cmGlobalNinjaGenerator::ComputeTargetDependsClosure
It turned out that the mentioned commit is doing (indirectly) some
redundant work that might impact performance when generating large
projects.
Imagine the dependency tree of custom targets:
A
\
C - D - E
/
B
For each target the transitive closure is calculated recursively, but as
the TargetDependsClosures are only cached on the top most level, everything
downstream has to be recalculated. I.e.
A->C->D->E
B->C->D->E
This ultimately leads to a lot of redundant calls to AppendTargetOutputs.
The recursive nature of the algorithm itself is not significant to the
problem, but reducing the work to actually to be done work, eliminates the
performance problem.
This patch changes the way, intermediate results are cached. Rather than
caching the closure of targets, we cache the closure of outputs. Such that
in the example above at B->C the cache already would kick in.
Caching the outputs has one disadvantage that the patch takes care of.
In case of such a structure
A E
\ / \
C - D G
/ \ /
B F
the calling order for A would be
A->C->D->E->G (at which time G is seen to the recursion)
then the recursion returns until it reaches
A->C->D->F (at which the seen G would prevent to recurse down to G)
But this would poison the cache for F with a wrong value (without G).
Hence we use a local result set to ensure the cache is still consistently
populated.
For a large C++ project with around 25k targets this reduced the CMake
configure / generate time from ~40s to ~29s.
Signed-off-by: Matthias Maennich <matthias@maennich.net>
|
|\ \ \
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
706b37b7 Enable clang-tidy modernize-loop-convert lint
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1287
|
| |/ /
| | |
| | |
| | |
| | | |
Fix remaining diagnostics by this lint and remove it from our list of
disabled lints.
|
|\ \ \
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
a5279ae5 Use C++11 nullptr (cont.)
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1283
|