| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
Fixes: #20942
|
|
|
|
| |
Fixes: #20641
|
|
|
|
| |
Combines cmMakefile:GetDefinition() and cmExpandList()
|
| |
|
|
|
| |
Fixes: #18076
|
|
|
|
| |
Fixes: #20666
|
|\
| |
| |
| |
| |
| |
| | |
e267c3fddf cmState::GetInitializedCacheValue: return cmProp
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4696
|
| |
| |
| |
| | |
cmProp alias is used; no actual change in type
|
|/ |
|
| |
|
|\
| |
| |
| |
| |
| |
| | |
bc877a7e94 Add support to indicate UTF-8 custom command pipe output encoding
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4587
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Adds a flag to indicate that pipe output from a custom command should be
interpreted as UTF-8 encoded. This change does not introduce a public
way to set the flag, but generators that create internally-generated
commands know if they are calling cmake, which uses UTF-8 pipes.
MSBuild added support for interpreting output of PreBuildEvent,
PreLinkEvent, PostBuildEvent, and CustomBuildStep as UTF-8. This change
will appear in Visual Studio 16.6 Preview 3. It is opt-in, and you need
to add the StdOutEncoding tag. MSBuild treats these as property bags so
if we emit the tag for earlier versions of Visual Studio it would be
safely ignored. This change emits the StdOutEncoding tag and sets it to
UTF-8 whenever the custom command UTF-8 pipe flag is set. This fixes
globalization issues when the output from cmake contained characters
that required MSBuild to interpret as UTF-8 before displaying them.
|
| | |
|
|/
|
|
|
|
|
|
|
| |
Arguably, many of these are bugs in `clang-tidy`. An if/else tree with
other conditionals between cloned blocks may be relying on the
intermediate logic to fall out of the case and inverting this logic may
be non-trivial.
See: https://bugs.llvm.org/show_bug.cgi?id=44165
|
| |
|
| |
|
| |
|
| |
|
|\
| |
| |
| |
| |
| |
| | |
8affe9aa33 export: Fix use-after-free on multiple calls overwriting same FILE
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4494
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
CMake 3.16 and below allow multiple `export()` calls with the same output
file even without using `APPEND`. The implementation worked by accident
by leaking memory. Refactoring in commit 5444a8095d (cmGlobalGenerator:
modernize memrory managemenbt, 2019-12-29, v3.17.0-rc1~239^2) cleaned up
that memory leak and converted it to a use-after-free instead.
The problem is caused by using the `cmGlobalGenerator::BuildExportSets`
map to own `cmExportBuildFileGenerator` instances. It can own only
one instance per output FILE name at a time, so repeating use of the
same file now frees the old `cmExportBuildFileGenerator` instance
and leaves the pointer in the `cmMakefile::ExportBuildFileGenerators`
vector dangling. Move ownership of the instances into `cmMakefile`'s
vector since its entries are not replaced on a repeat output FILE.
In future work we should introduce a policy to error out on this case.
For now simply fix the use-after-free to restore CMake <= 3.16 behavior.
Fixes: #20469
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
For users of CMake who want to optimize their scripts if they take a
while to run, this commit adds the ability to output profiling data.
To enable this output, it adds the two command line parameters
to select the output path and format.
This commit adds the first profiling format of type ``google-trace``,
which is the output is a JSON file containing Duration events as per the
Google Trace Format specification:
https://docs.google.com/document/d/1CvAClvFfyA5R-
PhYUmn5OOQtYMH4h6I0nSsKchNAySU/preview#
|
| | |
|
|/
|
|
|
|
|
| |
The OLD behaviors of all policies are deprecated, but only by
documentation. Add an explicit deprecation diagnostic for policies
introduced in CMake 3.10 and below to encourage projects to port away
from setting policies to OLD.
|
|\
| |
| |
| |
| |
| |
| | |
5a72ffb33a cmMakefile: Fix construction of Json::Value from fixed-size int types
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4291
|
| |
| |
| |
| |
| |
| |
| | |
Cast to the Json-provided fixed-size integer types rather than assuming
that the `std::*` variants match.
Fixes: #20278
|
|/ |
|
|\
| |
| |
| |
| |
| |
| |
| | |
c829f0cfca trace: Add time and stack level to JSON output format
Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Volo Zyko <volo.zyko@gmail.com>
Merge-request: !4242
|
| |
| |
| |
| |
| |
| |
| |
| | |
Add the timestamp and stack depth of the function call to the JSON trace
output format. This information can be useful for cmake profiling and
call stack inspection (see e.g. https://github.com/volo-zyko/cmake-profile-stats).
Improve unit test to allow for varying set of keys to check in trace lines.
|
|/
|
|
|
| |
Several construction parameters converted to std::string
Also made a few class members const
|
| |
|
|\
| |
| |
| |
| |
| |
| |
| |
| | |
968477517e Refactoring: suppress cmEraseIf in favor of cm::erase_if
348b60d19d STL support: add c++20 std::erase and std::erase_if functions
Acked-by: Kitware Robot <kwrobot@kitware.com>
Rejected-by: Leonid Pospelov <pospelovlm@yandex.ru>
Merge-request: !4192
|
| | |
|
|/
|
|
|
|
|
|
|
|
| |
In commit a1ad0a699b (target_link_libraries: Allow use with targets in
other directories, 2018-09-07, v3.13.0-rc1~94^2) we added use of `<...>`
to encode a directory id, but the closing `>` can incorrectly terminate
a surrounding generator expression early. Encode the directory id using
`(...)` instead.
Fixes: #20202
|
| |
|
| |
|
|\
| |
| |
| |
| |
| |
| |
| | |
e113ab1168 trace: Add test for the JSON-v1 trace
482497e0de trace: Add JSON output format
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4102
|
| |
| |
| |
| |
| |
| |
| |
| | |
Add a new `--trace-format=` flag, to enable the new JSON trace
output format. This new format is easier to parse by machines
than the existing format. This new format also removes the
ambiguity of the whitespace in the "old" format (e.g. is that
whitespace part of a file path, or does it seperate arguments)
|
|\ \
| |/
|/|
| |
| |
| |
| |
| |
| | |
f3c9396260 Help: Document CMAKE_FIND_DEBUG_MODE
204b8d9f4e find_*: Use debug logging infrastructure
a7ea20649d find_*: Add debug logging infrastructure
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3935
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Enable debug messages a new `--find-debug` command-line option or via
the `CMAKE_FIND_DEBUG_MODE` variable.
This work was started by Chris Wilson, continued by Ray Donnelly, and
then refactored by Robert Maynard to collect information into a single
message per find query.
Co-Author: Ray Donnelly <mingw.android@gmail.com>
Co-Author: Chris Wilson <chris+github@qwirx.com>
|
|\ \
| |/
|/|
| |
| |
| |
| |
| | |
f7d12609f0 Refactoring: use append functions from cmext/algorithm
a38d04c076 Refactoring: introduce header cmext/algorithm with append functions
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4131
|
| | |
|
|\ \
| |/
|/|
| |
| |
| |
| | |
c34b4497f8 cmTarget: add std::string overloads
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4137
|
| | |
|
|/
|
|
| |
Co-Authored-by: vector-of-bool <vectorofbool@gmail.com>
|
| |
|
|
|
|
|
|
|
|
| |
Move custom command creation to cmLocalGenerator and dispatch custom
commands in cmMakefile to generate time. Generators add custom commands
using the new methods provided by cmLocalGenerator.
Issue: #12877
|
| |
|
|
|
|
|
| |
Allow GetCustomCommandTarget to be called at generate time with correct
backtraces.
|
| |
|