Commit Graph

57985 Commits

Author SHA1 Message Date
Brad King 5e0b06fe84 Makefiles: Restore path consistency in the global dispatch makefile
Directory-level rules in `CMakeFiles/Makefile2` were previously
previously written by each directory's local generator using its own
decision for using relative or absolute paths.

Since commit d33b12d84b (Add support for build tree symlink inside
source tree, 2022-02-25, v3.24.0-rc1~583^2), each local generator
explicitly models the relationship between its source and build paths,
and uses this to determine when it is safe to use relative paths.
Because `add_subdirectory` supports arbitrary placement of the source
and build directories, different local generators may have different
relationships between their source and build paths.  This can cause
disagreement among rules written to `CMakeFiles/Makefile2`.

Restore consistency by always using the root local generator to write
rules to `CMakeFiles/Makefile2`.  Relative paths should always be
expressed w.r.t. the top-level build directory since that is the working
directory in which the `make` tool processing the file will run.

Fixes: #23814
2022-08-03 14:58:47 -04:00
Kyle Edwards 9d24d62098 Merge topic 'all-verify-interface-header-sets' into release-3.24
83e44002ae VERIFY_INTERFACE_HEADER_SETS: Add verification target for all

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !7536
2022-08-03 09:58:42 -04:00
Brad King a9d0bcc71e Merge topic 'ci-wix-host' into release-3.24
9ff7fffbf4 ci: host WiX 3.14.0.6526 binaries ourselves

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !7538
2022-08-03 09:37:54 -04:00
Kyle Edwards 83e44002ae VERIFY_INTERFACE_HEADER_SETS: Add verification target for all
Fixes: #23802
2022-08-03 08:19:08 -04:00
Brad King 9ff7fffbf4 ci: host WiX 3.14.0.6526 binaries ourselves
Since commit 06c6e76a12 (ci: update to WiX 3.14.0.6526, 2022-06-10,
v3.24.0-rc1~4^2~2) we download the WiX binaries from `wixtoolset.org`
instead of a `github.com` CDN.  Avoid hitting their organization site
on every CI job by hosting the binaries at `cmake.org`.
2022-08-02 14:38:22 -04:00
Brad King e18fb0c73e Merge topic 'vs-msbuild-arm64' into release-3.24
c165dd6a83 VS: Fix ARM64 host architecture detection in x86 binary

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !7525
2022-08-02 09:30:03 -04:00
Brad King 40b45f55f4 Merge topic 'windows-symlink-dir' into release-3.24
a4f1c0fac8 Windows: Revert "Prefer junctions for directory symlinks"

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !7530
2022-08-02 09:28:48 -04:00
Brad King a4f1c0fac8 Windows: Revert "Prefer junctions for directory symlinks"
Revert commit 5101d586c4 (Windows: Prefer junctions for directory
symlinks, 2022-02-22, v3.24.0-rc1~575^2).  Junctions do not support
`../` and other non-canonical paths.  Revert their use pending further
investigation.

Fixes: #23781
Issue: #23257
2022-08-01 10:59:20 -04:00
Brad King a2daa18237 Merge topic 'doc-init-VERIFY_INTERFACE_HEADER_SETS' into release-3.24
c31f9ef22b Help: Document initialization of VERIFY_INTERFACE_HEADER_SETS property

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !7528
2022-08-01 10:28:51 -04:00
Anton Lapounov c165dd6a83 VS: Fix ARM64 host architecture detection in x86 binary
Use the 64-bit registry view when we check whether Windows
has the ARM64 version of the .NET Framework 4.x installed.

Issue: #23755
2022-08-01 10:16:14 -04:00
Brad King d5977ee359 Merge branch 'release-3.23' into release-3.24 2022-08-01 10:09:54 -04:00
Brad King e0a39aeade Merge topic 'FindGTest-gmock-needs-gtest' into release-3.24
1aa95e1a3b FindGTest: Create the gmock targets only when GTest has been found

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !7523
2022-08-01 10:02:24 -04:00
Craig Scott c31f9ef22b Help: Document initialization of VERIFY_INTERFACE_HEADER_SETS property
The docs for the CMAKE_VERIFY_INTERFACE_HEADER_SETS variable do
mention that it initializes the property, but the property docs didn't
mention the variable. Add that missing cross-reference.
2022-08-01 15:58:04 +10:00
Craig Scott 6c3ea97381 Merge topic 'fetchcontent-url-regression' into release-3.24
fd95769ccf FetchContent: Restore support for multiple URL values

Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: buildbot <buildbot@kitware.com>
Merge-request: !7522
2022-08-01 01:42:09 -04:00
Brad King e2d03cea9e Merge branch 'FindGTest-gmock-needs-gtest' into release-3.23
Merge-request: !7523
2022-07-29 14:07:08 -04:00
Robert Maynard 1aa95e1a3b FindGTest: Create the gmock targets only when GTest has been found
When we introduced the `GTest::gmock` and `GTest::gmock_main` targets in
commit 50bf457a0d (FindGTest: Add target for gmock library, 2021-10-17,
v3.23.0-rc1~321^2) we failed to handle the case where GTest isn't found.
Don't construct gmock targets that depend on non-existent gtest targets
when gtest failed to be found.
2022-07-29 14:05:55 -04:00
Craig Scott fd95769ccf FetchContent: Restore support for multiple URL values
In c2044fdf3f (FetchContent: Respect the CMP0135 policy setting,
2022-06-02), the URL keyword was wrongly assumed to only have
a single value. Multiple URL values are allowed if they are all
non-local. Rework the logic to remove that incorrect assumption
and handle both single and multi-value URL combinations.

Fixes: #23792
2022-07-29 20:58:08 +10:00
Brad King 5ead1d0a25 CMake 3.24.0-rc5 v3.24.0-rc5 2022-07-28 13:19:49 -04:00
Brad King d3c047bd39 Merge branch 'release-3.23' into release-3.24 2022-07-28 13:08:55 -04:00
Brad King d566bd962d CMake 3.23.3 v3.23.3 2022-07-28 11:46:12 -04:00
Brad King b82956ac19 Merge branch 'release-3.23' into release-3.24 2022-07-28 11:30:13 -04:00
Brad King b9efb007d0 Merge branch 'release-3.22' into release-3.23 2022-07-28 11:30:01 -04:00
Brad King 0bfd4f1ed6 CMake 3.22.6 v3.22.6 2022-07-28 10:41:34 -04:00
Brad King cacdbd570b Merge branch 'release-3.23' into release-3.24 2022-07-28 10:40:37 -04:00
Brad King ee64500b7f Merge branch 'release-3.22' into release-3.23 2022-07-28 10:40:28 -04:00
Brad King da7f3c09bf Merge topic 'ci-xcode-13.4' into release-3.24
eddf057830 gitlab-ci: update macOS jobs to use Xcode 13.4

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !7520
2022-07-28 10:39:07 -04:00
Brad King c6735d6102 Merge branch 'ci-xcode-13.4' into release-3.23
Merge-request: !7520
2022-07-28 09:36:05 -04:00
Brad King faa4aed46f Merge branch 'ci-xcode-13.4' into release-3.22
Merge-request: !7520
2022-07-28 09:35:50 -04:00
Brad King eddf057830 gitlab-ci: update macOS jobs to use Xcode 13.4 2022-07-28 09:27:27 -04:00
Brad King 12830cc2a9 Merge topic 'verify-interface-header-sets-interface-library-source-language' into release-3.24
41f15193e5 VERIFY_INTERFACE_HEADER_SETS: Fall back to global languages

Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: buildbot <buildbot@kitware.com>
Merge-request: !7517
2022-07-28 08:12:09 -04:00
Brad King 75647fc53d Merge topic 'verify-interface-header-sets-add-compile-definitions' into release-3.24
27fd172d8d VERIFY_INTERFACE_HEADER_SETS: Finalize compile info for verify targets
626e641a19 cmTarget: Factor out FinalizeTargetCompileInfo()

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !7516
2022-07-28 08:11:18 -04:00
Brad King 859f50a4ed Merge topic 'vs-msbuild-arm64' into release-3.24
418fd85569 VS: Detect ARM64 host architecture at runtime

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Tommy Vercetti <tommyvct@outlook.com>
Acked-by: Anton Lapounov <anton.lapounov@microsoft.com>
Merge-request: !7511
2022-07-28 08:08:00 -04:00
Kyle Edwards 41f15193e5 VERIFY_INTERFACE_HEADER_SETS: Fall back to global languages
If a target doesn't have any source files, fall back to the global
list of enabled languages to determine the language of the header
file to verify.

Fixes: #23774
2022-07-27 13:29:09 -04:00
Kyle Edwards 27fd172d8d VERIFY_INTERFACE_HEADER_SETS: Finalize compile info for verify targets
Fixes: #23732
2022-07-27 12:25:15 -04:00
Kyle Edwards 626e641a19 cmTarget: Factor out FinalizeTargetCompileInfo() 2022-07-27 12:24:53 -04:00
Brad King 418fd85569 VS: Detect ARM64 host architecture at runtime
We use the host machine's architecture to select the `MSBuild.exe`
binary variant, and the host toolset architecture.  When CMake is
compiled as `x64` or `x86` it may still run on ARM64 hosts.  Detect the
actual architecture of the host at runtime instead of relying on the
architecture of CMake's own binary.

The `arm64/MSBuild.exe` executable is an ARM64 .NET 4 application, which
requires the ARM64 version of .NET Framework 4.8.1 to be installed on
the machine.  That version is not yet released for Windows 10; however,
the `MSBuild/Current/Bin/arm64` directory is still created when
installing Visual Studio 2022 (a user may upgrade to Windows 11 later).
Use it only if the .NET Framework is installed.

The `amd64/MSBuild.exe` executable cannot run on Windows 10 ARM64,
but can run on Windows 11 ARM64.

Fixes: #23755
2022-07-27 07:40:46 -04:00
Brad King c508b3625a Merge topic 'refactor-win-ver' into release-3.24
ee047a68f2 cmSystemTools: Factor out method to get Windows OS version

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !7509
2022-07-26 09:24:53 -04:00
Brad King d4336c9c99 Merge topic 'doc-if-PATH_EQUAL' into release-3.24
37e01773e4 Help: Clarify behavior of path-based equality conditions

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !7503
2022-07-26 09:22:28 -04:00
Brad King aa0a7c3c4a Merge topic 'verify-interface-header-sets-interface-libraries' into release-3.24
f5dd1817d1 Help: Clarify that VERIFY_INTERFACE_HEADER_SETS supports interface libraries

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !7507
2022-07-26 09:21:27 -04:00
Brad King feba099ba3 Merge topic 'FindVulkan-relnotes' into release-3.24
0b538e4002 FindVulkan: Add missing 3.24 release notes
db66c384fc FindVulkan: Format component documentation as definition list

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !7502
2022-07-26 09:19:16 -04:00
Brad King ee047a68f2 cmSystemTools: Factor out method to get Windows OS version
Factor the implementation out of `cmGlobalGenerator`.
2022-07-25 14:27:24 -04:00
MACHIZAUD Andréa 0b538e4002 FindVulkan: Add missing 3.24 release notes 2022-07-25 14:04:43 -04:00
Brad King db66c384fc FindVulkan: Format component documentation as definition list 2022-07-25 14:04:43 -04:00
Kyle Edwards f5dd1817d1 Help: Clarify that VERIFY_INTERFACE_HEADER_SETS supports interface libraries 2022-07-25 13:24:18 -04:00
Brad King 22c5352990 Merge topic 'doc-find_package-BYPASS_PROVIDER' into release-3.24
4f7a0c25d2 Help: Document BYPASS_PROVIDER keyword for find_package()
76370e06b8 Help: Minor grammar fix for the Using Dependencies manual

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !7501
2022-07-25 12:02:19 -04:00
Brad King 7ed8c2de6a Merge topic 'cmake-help-flags-after-dashdash' into release-3.24
14a0e750cb cmake: In -P mode ignore flags like `--version` after `--`

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !7496
2022-07-25 12:00:38 -04:00
Brad King 843998a206 Merge branch 'release-3.23' into release-3.24 2022-07-25 11:58:41 -04:00
Brad King 7c9bda81bd Merge topic 'cmake-P-path-args' into release-3.24
febe3190f0 Merge branch 'backport-3.23-cmake-P-path-args'
846a650ff7 cmake: In -P mode ignore extra paths on the command line
c362cba566 cmake: simplify to a single source of truth of working mode
261fa5db39 cmake: In -P mode ignore extra paths on the command line
314135cdf1 cmake: simplify to a single source of truth of working mode

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !7494
2022-07-25 11:57:47 -04:00
Brad King cba5652a1f Merge topic 'revert-vs-ZERO_CHECK-proj' into release-3.24
289932ded0 VS: Revert "Write ZERO_CHECK.proj for VS19 and above"

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !7499
2022-07-25 11:56:29 -04:00
Brad King 6336ee80d3 Merge topic 'revert-ui-check' into release-3.24
778aaf6fdc AUTOUIC: Revert "Fix internal paths of generated ui_foo.h files"

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !7498
2022-07-25 11:55:12 -04:00