| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
| |
Avoid interference from `CMAKE_PREFIX_PATH` and friends if they
happen to be set in the environment from which the tests are run.
|
| |
|
|\
| |
| |
| | |
Merge-request: !4815
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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
|
| | |
|
|\ \
| | |
| | |
| | | |
Merge-request: !4765
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Since commit 3b51343ea1 (VS: Emit UTF-8 BOM for generated solution files,
2019-08-19, v3.16.0-rc1~237^2) the `.sln` file does not work with the
VS Version Selector. Add a newline after the BOM to restore support.
Fixes: #20725
|
|\ \ \
| | |/
| |/|
| | | |
Merge-request: !4751
|
| |/
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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: !4752
|
|/ /
| |
| |
| |
| | |
Add a release note for the change in commit 4d446c68d1 (FindPkgConfig:
also handle "-isystem" prefixes for include directories, 2020-04-30).
|
|\ \ |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
If the `OBJC` or `OBJCXX` environment variable is not set to specify an
Objective C or C++ compiler, check `CC` or `CXX` too.
Fixes: #20703
|
| |/ |
|
|\ \
| | |
| | |
| | | |
Merge-request: !4736
|
| |/
| |
| |
| |
| |
| |
| | |
VS 2017 15.6 introduced support for this pragma. Older MSVC versions
warn that it is unknown.
Fixes: #20692
|
|\ \
| | |
| | |
| | | |
Merge-request: !4734
|
| |/
| |
| |
| |
| |
| |
| | |
If a source file gets per-source flags from both PCH and custom
`COMPILE_OPTIONS`, combine them correctly.
Fixes: #20694, #20456
|
|\ \
| | |
| | |
| | | |
Merge-request: !4725
|
| |/
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Since commit effafca77e (FindGTK2: Add harfbuzz to GTK2_INCLUDE_DIRS,
2019-10-01, v3.16.0-rc1~22^2), pango's dependency on harfbuzz has been
captured, but only for the `GTK2_INCLUDE_DIRS` and `GTK2_LIBRARIES`
variables. Add the `GTK2::harfbuzz` imported target and update the
`GTK2::pango` target to depend on it.
Issue: #19531
|
|\ \
| | |
| | |
| | | |
Merge-request: !4693
|
| |/
| |
| |
| | |
Fixes: #20652
|
|\ \
| | |
| | |
| | | |
Merge-request: !4711
|
| |/
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Fix the condition added by commit fada8cbfd6 (CheckLanguage: Report
CMAKE_CUDA_HOST_COMPILER if needed for compilation, 2019-05-31,
v3.15.0-rc1~12^2) to activate CUDA-specific logic. The old condition
had worked in our test suite only by accident because the loop variable
used in the test happened to be the name and value that the old
condition used! Update the test to use a different name.
Fixes: #19013
|
|\ \
| | |
| | |
| | | |
Merge-request: !4675
|
| | |
| | |
| | |
| | | |
Fixes: #20634
|
| |/
| |
| |
| | |
Fixes: #20635
|
|\ \
| | |
| | |
| | | |
Merge-request: !4678
|
| |/
| |
| |
| |
| |
| |
| |
| | |
When the path to a header file is specified using a generator
expression, evaluation of the genex must produce an absolute path.
Update our documented example and add a test covering the case.
Fixes: #20617
|
|\ \
| | |
| | |
| | | |
Merge-request: !4611
|
| |/
| |
| |
| | |
Fixes: #20582
|
|\ \
| |/
|/|
| | |
Merge-request: !4598
|
|/ |
|
| |
|
|\
| |
| |
| | |
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
|
| |/ / |
|