| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Since commit 729d997f10 (Precompile Headers: Add REUSE_FROM signature,
2019-08-30, v3.16.0-rc1~101^2), `GetPchFileObject` handles the case that
it is called first for another target's `REUSE_FROM` by calling
`AddSource` to make sure `GetObjectName` can produce the correct object
name. However, `AddSource` causes `ClearSourcesCache` to be called,
which since commit a9f4f58f0c (cmGeneratorTarget: Clear AllConfigSources
in ClearSourcesCache, 2020-05-15, v3.16.7~2^2) now correctly erases the
`AllConfigSources` structure. This is okay during `AddPchDependencies`,
but there is another code path in which it is problematic.
When the Visual Studio generator's `WriteAllSources` method is looping
over the sources, the `cmake_pch.cxx` source is encountered first. This
causes `OutputSourceSpecificFlags` to call `GetPchCreateCompileOptions`,
which calls `GetPchFile`, which under MSVC with `CMAKE_LINK_PCH` calls
`GetPchFileObject`. That leads to `ClearSourcesCache` erasing the
structure over which `WriteAllSources` is iterating!
This bug is caught by our `RunCMake.PrecompileHeaders` test when run
with the VS generator as of the commit that exposed it by fixing
`ClearSourcesCache`. However, that change was backported to the CMake
3.16 series after testing only with later versions versions that contain
commit a55df20499 (Multi-Ninja: Add precompile headers support,
2020-01-10, v3.17.0-rc1~136^2). By adding proper multi-config support
for PCH, that commit taught `cmLocalGenerator::AddPchDependencies` to
call `GetPchFile` with the real set of configurations instead of just
the empty string. This allows the `GetPchFile` cache of PCH sources to
be populated up front so that the later calls to it in the
`WriteAllSources` loop as described above do not actually call
`GetPchFileObject` or `ClearSourcesCache`. That hid the problem.
Fix this by re-ordering calls to `AddPchDependencies` to handle
`REUSE_FROM` targets only after the targets whose PCH they re-use.
Remove the now-unnecessary call to `AddSource` from `GetPchFileObject`
so that `ClearSourcesCache` is never called during `WriteAllSources`.
Update the PchReuseFrom test case to cover an ordering of targets that
causes generators to encounter a `REUSE_FROM` target before the target
whose PCH it re-uses.
Fixes: #20770
|
|
|
|
|
|
|
|
|
|
|
| |
In commit 40aa6c059c (cmGeneratorTarget: Add method to collect all
sources for all configs, 2017-04-10, v3.9.0-rc1~268^2~5) we forgot to
update `ClearSourcesCache` to also clear `AllConfigSources`. This leads
to subtle cases where code paths like PCH handling that add sources
during generation break depending on ordering.
Suggested-by: Christian Fersch
Fixes: #20712, #20702
|
| |
|
|\
| |
| |
| | |
Merge-request: !4574
|
| |
| |
| |
| | |
Issue: #19917
|
|\ \
| | |
| | |
| | | |
Merge-request: !4557
|
| | |
| | |
| | |
| | | |
Fixes: #20525
|
|\ \ \
| | | |
| | | |
| | | | |
Merge-request: !4544
|
| |/ /
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Since commit b8626261e9 (Precompile headers: Add methods to generate PCH
sources, 2019-07-13, v3.16.0-rc1~182^2~4) we look up source files for a
target using an upper-case configuration even though an original-case
name is sufficient. Since commit 36ded610af (PCH: Generate sources
during Compute step, 2019-10-05, v3.16.0-rc1~2^2) the source file lookup
is the first time we compute many on-demand structures that depend on
the configuration name. This caused the `$<CONFIG>` generator
expression to evaluate to the upper-case configuration name in some
cases where we used original-case before.
Fix this by switching the source file lookup to the original-case config
name. Add a test covering the symptom that led to the discovery of this
problem.
Fixes: #20517
|
|\ \ \
| | | |
| | | |
| | | | |
Merge-request: !4545
|
| |/ /
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This script was added by commit 0f150b69d3 (AIX: Explicitly compute
shared object exports for both XL and GNU, 2019-07-11,
v3.16.0-rc1~418^2~2) but does not have a `.sh` extension so our existing
install rules neglect to give it execute permission. Our test suite
works on AIX in the build tree but the script is broken without execute
permission on installation.
Fixes: #20520
|
|\ \ \
| | | |
| | | |
| | | | |
Merge-request: !4515
|
| |/ /
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Since GNU make 4.3, `.SILENT:` no longer causes nested `$(MAKE)` calls
to get `-s` implicitly. Add the `-s` flag explicitly on such calls to
suppress messages about Entering/Leaving directories.
Fixes: #20487
|
|\ \ \
| | | |
| | | |
| | | | |
Merge-request: !4506
|
| |/ /
| | |
| | |
| | |
| | | |
Previously GetPrerequisites classified `vcruntime*.dll` as type "other".
They should be classified as type "system".
|
|\ \ \
| | | |
| | | |
| | | | |
Merge-request: !4469
|
| |/ /
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The library search paths added by commit 2746c61e6d (Swift: Add library
search paths for dependencies, 2019-06-09, v3.16.0-rc1~561^2) need to be
quoted properly on command lines to handle spaces and such. This was
already done by `cmLinkLineComputer::ComputeLinkPath` for
non-Swift-specific link directories.
|
|\ \ \
| | | |
| | | |
| | | | |
Merge-request: !4431
|
| |/ / |
|
|\ \ \
| |/ /
|/| |
| | | |
Merge-request: !4430
|
|/ /
| |
| |
| |
| |
| |
| |
| | |
Much like AIX, IBM i (OS identifier "OS400") implicitly adds `extern
"C"` around system header files included with the `-isystem` option.
Update the condition added by commit c688b401d3 (cmstd: Modernize CMake
system headers, 2019-08-04, v3.16.0-rc1~81^2~1) to treat `IBM i` as we
do AIX.
|
| | |
|
|\ \
| | |
| | |
| | | |
Merge-request: !4425
|
|/ / |
|
|\ \
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
1dc524f2 FindPython: Do not cache computed result variables in CMake 3.16
602d1d82 FindPython: Mark non-public cache entries INTERNAL in CMake 3.16
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4399
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Since commit 06d9e67fbd (FindPython: Add capability to specify directly
artifacts, 2019-08-15, v3.16.0-rc1~157^2) we accidentally add the result
variables `Python*_LIBRARY_RELEASE` and `Python*_LIBRARY_DEBUG` to the
cache. They are always computed from other results and so should not be
presented to users in cmake-gui and ccmake to edit.
Issue: #20362
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Since commit 06d9e67fbd (FindPython: Add capability to specify directly
artifacts, 2019-08-15, v3.16.0-rc1~157^2) we accidentally expose cache
entries named `_Python...` to users in cmake-gui and ccmake. Mark those
entries as `INTERNAL` to hide them.
Issue: #20362
|
|\ \ \
| | | |
| | | |
| | | | |
Merge-request: !4388
|
| |/ /
| | |
| | |
| | |
| | |
| | | |
One may encounter warnings if FindPkgConfig is used in any project, even
indirectly, that has set any of these policies to old explicitely or requires
an older version.
|
|\ \ \
| | | |
| | | |
| | | | |
Merge-request: !4376
|
| | |/
| |/|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Since commit d91b5a72cd (Ninja: Add support for CUDA nvcc response
files, 2019-05-30, v3.15.0-rc1~8^2) we use NVCC's `--options-file`
option to avoid long link command lines via a response file. However,
for non-device linking the host tools are used and the option does not
make sense. Update the logic to use `--options-file` only for device
linking. Linking with the host tools already has its own logic for
response files.
Fixes: #19954
|
|\ \ \ |
|
| | |/
| |/|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
In commit 9fc20a4f3e (install: Add sane set of defaults for DESTINATION
and file type parameters, 2018-11-02, v3.14.0-rc1~410^2~1), a regression
was introduced, in which an `install(TARGETS)` with a
RUNTIME/LIBRARY/ARCHIVE DESTINATION but no PUBLIC_HEADER/PRIVATE_HEADER
DESTINATION would then install the headers. The old behavior did not do
this. Restore the old behavior.
Fixes: #20326
|
|\ \ \
| | |/
| |/| |
|
| | | |
|
| |\ \
| | | |
| | | |
| | | | |
Merge-request: !4297
|
| |\ \ \
| | | | |
| | | | |
| | | | | |
Merge-request: !4257
|
| |\ \ \ \
| | | | | |
| | | | | |
| | | | | | |
Merge-request: !4247
|
| |\ \ \ \ \
| | | | | | |
| | | | | | |
| | | | | | | |
Merge-request: !4191
|
|\ \ \ \ \ \ \
| | | | | | | |
| | | | | | | |
| | | | | | | | |
Merge-request: !4344
|
| | |_|_|_|_|/
| |/| | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
Since commit d4d0dd0f6a (cmLinkLineComputer: Add ComputeLinkLibs
overload with backtraces, 2019-09-13, v3.16.0-rc1~87^2~4), backtraces
have been collected by `ComputeLinkLibs` by looking back through the
link implementation libraries for one matching the text of the link line
item. This is slow in projects with long link lines.
Instead, teach `cmComputeLinkDepends` and `cmComputeLinkInformation` to
carry backtrace information explicitly along with the text of each item.
Fixes: #20322
|
|\ \ \ \ \ \ \
| |/ / / / / /
|/| | | | | |
| | | | | | | |
Merge-request: !4332
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
Backport libarchive upstream commit `c46e7993` (windows: Support UTF-8
locale, 2018-07-23, v3.4.0~105^2).
Fixes: #20320
|
|/ / / / / /
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Fix `archive_string_append_from_wcs_in_codepage` to account for the
already-used portion of the buffer when computing the size of the
remaining buffer for ``WideCharToMultiByte` output.
|
| | | | | | |
|
|\ \ \ \ \ \
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
9135954e2f VS: Do not use native unity builds on VS 2017 versions less than 15.8
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4324
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
VS 2017 version 15.8 introduced support for unity builds implemented
in part by the `$(VCTargetsPath)/Microsoft.Cpp.Unity.targets` file.
Do not enable unity builds on VS 15 versions that do not have that file.
Fixes: #20284
|
|\ \ \ \ \ \ \
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | | |
e3d3b7ddeb Android: Fix binutils selection with NDK r19+ unified toolchain
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4318
|
| |/ / / / / /
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
In commit 97bca2f9fa (Android: Use unified toolchain in NDK r19+,
2019-07-26, v3.16.0-rc1~342^2) we hard-coded use of the unified
toolchain for NDK r19+ and skipped most of the old detection logic.
However, in that fast path we left out setting `_CMAKE_TOOLCHAIN_PREFIX`
for `CMakeFindBinutils` to select the matching binutils. Add it.
Fixes: #20038
|
|\ \ \ \ \ \ \
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | | |
a17f6eff43 AIX: Restore pre-3.16 undocumented method to suppress exports with XL
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4303
|