- Jun 01, 2020
-
- May 29, 2020
-
-
Brad King authored
Merge-request: !4815
-
Brad King authored
Since commit 729d997f (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 a9f4f58f (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 a55df204 (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
-
- May 27, 2020
-
- May 19, 2020
-
-
Brad King authored
Merge-request: !4765
-
- May 15, 2020
-
-
Brad King authored
Merge-request: !4751
-
Brad King authored
Merge-request: !4752
-
Brad King authored
In commit 40aa6c05 (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
-
- May 14, 2020
- May 11, 2020
-
-
Brad King authored
Merge-request: !4736
-
Brad King authored
VS 2017 15.6 introduced support for this pragma. Older MSVC versions warn that it is unknown. Fixes: #20692
-
Brad King authored
Merge-request: !4734
-
Brad King authored
If a source file gets per-source flags from both PCH and custom `COMPILE_OPTIONS`, combine them correctly. Fixes: #20694, #20456
-
- May 09, 2020
-
-
Brad King authored
Merge-request: !4725
-
Brad King authored
Since commit effafca7 (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
-
- May 06, 2020
-
-
Brad King authored
Merge-request: !4693
-
- May 05, 2020
-
-
Rolf Eike Beer authored
Fixes: #20652
-
Brad King authored
Merge-request: !4711
-
Brad King authored
Fix the condition added by commit fada8cbf (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
-
- Apr 28, 2020
- Apr 27, 2020
- Apr 14, 2020
- Apr 10, 2020
-
-
Chuck Atkins authored
-
- Apr 06, 2020
- Apr 01, 2020
-
-
Brad King authored
Merge-request: !4557
-
Fixes: #20525
-
- Mar 30, 2020
-
-
Brad King authored
Merge-request: !4544
-
Brad King authored
Merge-request: !4545
-
Brad King authored
This script was added by commit 0f150b69 (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
-