summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Tests: Isolate RunCMake.FindPkgConfig from caller environmentBrad King2020-08-071-0/+5
| | | | | Avoid interference from `CMAKE_PREFIX_PATH` and friends if they happen to be set in the environment from which the tests are run.
* CMake 3.16.8v3.16.8Brad King2020-06-011-1/+1
|
* Merge branch 'backport-3.16-pch-fix-bad-ClearSourcesCache' into release-3.16Brad King2020-05-293-5/+22
|\ | | | | | | Merge-request: !4815
| * PCH: Fix logic error that incorrectly clears sources during VS generationBrad King2020-05-293-5/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* | CMake 3.16.7v3.16.7Brad King2020-05-271-1/+1
| |
* | Merge branch 'vs-sln-version' into release-3.16Brad King2020-05-191-0/+1
|\ \ | | | | | | | | | Merge-request: !4765
| * | VS: Restore .sln support for VS Version SelectorBrad King2020-05-191-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | 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 branch 'fix-ClearSourcesCache' into release-3.16Brad King2020-05-151-0/+1
|\ \ \ | | |/ | |/| | | | Merge-request: !4751
| * | cmGeneratorTarget: Clear AllConfigSources in ClearSourcesCacheBrad King2020-05-151-0/+1
| |/ | | | | | | | | | | | | | | | | | | | | 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 branch 'backport-3.16-FindPkgConfig-isystem' into release-3.16Brad King2020-05-151-0/+6
|\ \ | | | | | | | | | Merge-request: !4752
| * | Help: Add 3.16.7 release note for FindPkgConfig '-isystem' fixBrad King2020-05-151-0/+6
|/ / | | | | | | | | Add a release note for the change in commit 4d446c68d1 (FindPkgConfig: also handle "-isystem" prefixes for include directories, 2020-04-30).
* | Merge branch 'backport-3.16-objc-env-vars' into release-3.16Brad King2020-05-146-18/+61
|\ \
| * | Objective C/C++: Honor CC and CXX env vars to select compilerBrad King2020-05-145-18/+37
| | | | | | | | | | | | | | | | | | | | | 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
| * | Help: Document OBJC and OBJCXX env vars for Objective C/C++ compilersBrad King2020-05-143-0/+24
| |/
* | Merge branch 'pch-msvc-pragma' into release-3.16Brad King2020-05-111-7/+5
|\ \ | | | | | | | | | Merge-request: !4736
| * | MSVC: Use 'pragma system_header' in PCH only on cl 19.13 and aboveBrad King2020-05-111-7/+5
| |/ | | | | | | | | | | | | VS 2017 15.6 introduced support for this pragma. Older MSVC versions warn that it is unknown. Fixes: #20692
* | Merge branch 'vs-pch-compile-opts' into release-3.16Brad King2020-05-112-1/+4
|\ \ | | | | | | | | | Merge-request: !4734
| * | VS: Fix using PCH from source with COMPILE_OPTIONSBrad King2020-05-112-1/+4
| |/ | | | | | | | | | | | | If a source file gets per-source flags from both PCH and custom `COMPILE_OPTIONS`, combine them correctly. Fixes: #20694, #20456
* | Merge branch 'FindGTK2-harfbuzz-target' into release-3.16Brad King2020-05-091-3/+6
|\ \ | | | | | | | | | Merge-request: !4725
| * | FindGTK2: Add harfbuzz target for dependency from pangoBrad King2020-05-091-3/+6
| |/ | | | | | | | | | | | | | | | | | | 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 branch 'backport-3.16-FindPkgConfig-isystem' into release-3.16Brad King2020-05-062-9/+63
|\ \ | | | | | | | | | Merge-request: !4693
| * | FindPkgConfig: also handle "-isystem" prefixes for include directoriesRolf Eike Beer2020-05-052-9/+63
| |/ | | | | | | Fixes: #20652
* | Merge branch 'CheckLanguage-cuda-host' into release-3.16Brad King2020-05-052-10/+10
|\ \ | | | | | | | | | Merge-request: !4711
| * | CheckLanguage: Fix forwarding of CMAKE_CUDA_HOST_COMPILERBrad King2020-05-052-10/+10
| |/ | | | | | | | | | | | | | | | | | | | | 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 branch 'makefile-objc' into release-3.16Brad King2020-04-282-3/+4
|\ \ | | | | | | | | | Merge-request: !4675
| * | Makefiles: Add Objective C/C++ compilations to compile_commands.jsonBrad King2020-04-281-2/+3
| | | | | | | | | | | | Fixes: #20634
| * | Makefiles: Scan Objective C/C++ preprocessor dependenciesBrad King2020-04-281-1/+1
| |/ | | | | | | Fixes: #20635
* | Merge branch 'pch-genex-absolute' into release-3.16Brad King2020-04-275-16/+19
|\ \ | | | | | | | | | Merge-request: !4678
| * | target_precompile_headers: Fix documented example using genexBrad King2020-04-275-16/+19
| |/ | | | | | | | | | | | | | | 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 branch 'ibmi-aix-exports' into release-3.16Brad King2020-04-141-2/+5
|\ \ | | | | | | | | | Merge-request: !4611
| * | AIX: Activate symbol export/import IBM i (OS400)Brad King2020-04-141-2/+5
| |/ | | | | | | Fixes: #20582
* | Merge branch 'FindMPI-pgi-spectrum-mpi-wrappers' into release-3.16Brad King2020-04-141-3/+3
|\ \ | |/ |/| | | Merge-request: !4598
| * FindMPI: Add the pgi compiler wrapper names used by IBM Spectrum MPIChuck Atkins2020-04-101-3/+3
|/
* CMake 3.16.6v3.16.6Brad King2020-04-101-1/+1
|
* Merge branch 'doc-3.15-std-fix' into release-3.16Brad King2020-04-061-0/+9
|\ | | | | | | Merge-request: !4574
| * Help: Add 3.15 release note for change in -std= flag for compile featuresBrad King2020-04-061-0/+9
| | | | | | | | Issue: #19917
* | Merge branch 'FindPython-fix-VIRTUALENV-eq-FIRST' into release-3.16Brad King2020-04-011-1/+1
|\ \ | | | | | | | | | Merge-request: !4557
| * | FindPython: fix handling when FIND_VIRTUALENV == FIRSTMarc Chevrier2020-04-011-1/+1
| | | | | | | | | | | | Fixes: #20525
* | | Merge branch 'backport-3.16-link-libs-config-case' into release-3.16Brad King2020-03-305-5/+30
|\ \ \ | | | | | | | | | | | | Merge-request: !4544
| * | | target_link_libraries: Fix regression in case of $<CONFIG> genexBrad King2020-03-305-5/+30
| |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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 branch 'aix-ExportImportList-install' into release-3.16Brad King2020-03-301-0/+4
|\ \ \ | | | | | | | | | | | | Merge-request: !4545
| * | | AIX: Install ExportImportList script with execute permissionBrad King2020-03-301-0/+4
| |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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 branch 'make-nested-silent' into release-3.16Brad King2020-03-261-1/+5
|\ \ \ | | | | | | | | | | | | Merge-request: !4515
| * | | Makefiles: Fix silencing of nested calls for GNU make 4.3Brad King2020-03-261-1/+5
| |/ / | | | | | | | | | | | | | | | | | | | | | 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 branch 'GetPrerequisites-vcruntime-is-system' into release-3.16Brad King2020-03-191-3/+3
|\ \ \ | | | | | | | | | | | | Merge-request: !4506
| * | | GetPrerequisites: Classify vcruntime libraries as systemErr0rC0deX2020-03-191-3/+3
| |/ / | | | | | | | | | | | | Previously GetPrerequisites classified `vcruntime*.dll` as type "other". They should be classified as type "system".
* | | Merge branch 'swift-link-line-spaces' into release-3.16Brad King2020-03-121-3/+5
|\ \ \ | | | | | | | | | | | | Merge-request: !4469
| * | | Swift: Fix quoting of library search paths with spacesSaleem Abdulrasool2020-03-121-3/+5
| |/ / | | | | | | | | | | | | | | | | | | | | | 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 branch 'ibmi-fix-libuv-build' into release-3.16Brad King2020-03-061-0/+19
|\ \ \ | | | | | | | | | | | | Merge-request: !4431
| * | | libuv: Add support for building on IBM i (OS400)Jesse Gorzinski2020-03-061-0/+19
| |/ /