Commit Graph

32710 Commits

Author SHA1 Message Date
Kitware Robot
e170549eb6 CMake Nightly Date Stamp 2022-08-03 00:01:11 -04:00
Brad King
a3cd71af65 Merge topic 'cmgeneratedfs-absolute-paths'
b02ef99fea cmGeneratedFileStream: Use absolute paths

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !7524
2022-08-02 09:31:54 -04:00
Brad King
5889e5c0eb Merge topic 'vs-msbuild-arm64'
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:04 -04:00
Brad King
621ea848b0 Merge topic 'windows-symlink-dir'
a4f1c0fac8 Windows: Revert "Prefer junctions for directory symlinks"

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !7530
2022-08-02 09:28:49 -04:00
Kitware Robot
8af9dea833 CMake Nightly Date Stamp 2022-08-02 00:01:12 -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
Martin Duffy
b02ef99fea cmGeneratedFileStream: Use absolute paths
Use absolute paths in cmGeneratedFileStream to ensure output can be found
if the working directory changes.

Fixes: #23784
2022-08-01 10:23:55 -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
Kitware Robot
15ebbe9163 CMake Nightly Date Stamp 2022-08-01 00:01:12 -04:00
Kitware Robot
57ccad0001 CMake Nightly Date Stamp 2022-07-31 00:01:06 -04:00
Kitware Robot
cb964caeba CMake Nightly Date Stamp 2022-07-30 00:01:11 -04:00
Brad King
514804c8bc Merge topic 'command-arg-parser'
4368a524c6 cmCMakePathCommand: Enforce non-empty string arguments via binding type
7ca8d9f0f8 cmArgumentParser: Model non-empty strings with wrapper type

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !7512
2022-07-29 07:51:22 -04:00
Brad King
90036769fc Merge topic 'ms-tool-dash-flags'
9dbcfb8fdd MSVC: Recognize -XYZ as well as /XYZ when parsing MS tool command lines

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !7519
2022-07-29 07:50:07 -04:00
Kitware Robot
38479c3f8d CMake Nightly Date Stamp 2022-07-29 00:01:12 -04:00
Brad King
5ead1d0a25 CMake 3.24.0-rc5 2022-07-28 13:19:49 -04:00
Brad King
4368a524c6 cmCMakePathCommand: Enforce non-empty string arguments via binding type 2022-07-28 08:25:00 -04:00
Brad King
7ca8d9f0f8 cmArgumentParser: Model non-empty strings with wrapper type
Some clients have been explicitly checking whether the string specified
after a keyword is empty.  Offer them a way to specify that the string
must be non-empty as part of the binding type.
2022-07-28 08:24:47 -04:00
Brad King
110baa254b Merge topic 'command-arg-parser'
236bacc244 cmArgumentParser: Offer bindings for positional arguments
1f2eb63d1c cmArgumentParser: Add callback bindings
f5d2f6076a cmArgumentParser: Generalize expected argument count
078e2aec8f cmArgumentParser: Generalize internal state tracking
77fcb00a2b cmArgumentParser: Propagate constructors through binding wrapper types

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !7514
2022-07-28 08:15:50 -04:00
Brad King
b6ffca53f8 Merge topic 'verify-interface-header-sets-interface-library-source-language'
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:10 -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
d9cca8e83d Merge topic 'verify-interface-header-sets-add-compile-definitions'
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:19 -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
a805e53e95 Merge topic 'vs-msbuild-arm64'
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:01 -04:00
Kitware Robot
be4081264a CMake Nightly Date Stamp 2022-07-28 00:01:10 -04:00
Dubach, Joev
9dbcfb8fdd MSVC: Recognize -XYZ as well as /XYZ when parsing MS tool command lines
Fixes: #23772
2022-07-27 16:51:15 -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
f44b79ad9b Merge topic 'try_compile-cleanup'
e1d4984706 Tests: Add RunCMake.try_compile case covering empty value arguments
6a85813806 Tests: Add RunCMake.try_compile case covering list arguments with no values
7a5b1b6010 cmCoreTryCompile: Select source-file signature project/target names earlier
8b0ee799e4 cmCoreTryCompile: Compute src-file signature build directory earlier
e73c8eaff2 cmTry{Compile,Run}Command: Port away from legacy cmCommand
7ba3a3290f try_compile: Refactor positional arg parsing
31ee3cd49d try_compile: Fail earlier when bindir is not an absolute path

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !7513
2022-07-27 09:54:40 -04:00
Brad King
e781d92de5 Merge topic 'vs-fuzzer'
feeb9ae4ba VS: Add support for (lib)fuzzer /fsanitize=fuzzer flag

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !7471
2022-07-27 09:53:52 -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
236bacc244 cmArgumentParser: Offer bindings for positional arguments 2022-07-27 07:03:32 -04:00
Brad King
1f2eb63d1c cmArgumentParser: Add callback bindings 2022-07-27 07:03:32 -04:00
Brad King
f5d2f6076a cmArgumentParser: Generalize expected argument count
Replace the boolean expectation with an integer count.
2022-07-27 07:03:32 -04:00
Brad King
078e2aec8f cmArgumentParser: Generalize internal state tracking
Use a `std::function` to support general actions on value arguments.
2022-07-27 07:03:32 -04:00
Brad King
77fcb00a2b cmArgumentParser: Propagate constructors through binding wrapper types 2022-07-27 07:03:31 -04:00
Kitware Robot
3891b5a06f CMake Nightly Date Stamp 2022-07-27 00:01:07 -04:00
Brad King
7a5b1b6010 cmCoreTryCompile: Select source-file signature project/target names earlier 2022-07-26 15:09:48 -04:00
Brad King
8b0ee799e4 cmCoreTryCompile: Compute src-file signature build directory earlier 2022-07-26 15:09:48 -04:00
Brad King
e73c8eaff2 cmTry{Compile,Run}Command: Port away from legacy cmCommand
Convert the command entry points to free functions.
2022-07-26 15:09:48 -04:00
Brad King
7ba3a3290f try_compile: Refactor positional arg parsing 2022-07-26 14:44:42 -04:00
Brad King
31ee3cd49d try_compile: Fail earlier when bindir is not an absolute path
If the bindir is not an absolute path, other errors occur later.
Fail early with a clear error in this case.
2022-07-26 14:41:28 -04:00
Brad King
5fc4e121a1 Merge topic 'command-arg-parser'
2eba10c5ee cmArgumentParser: Drop unused parsedKeywords argument to Parse()
98cf623821 cmCTestHandlerCommand: Capture list of parsed keywords via binding
6ecd741b5f cmFileCommand: Capture list of parsed keywords via binding
f7e81802f2 cmArgumentParser: Offer binding for list of parsed keywords
f95a5832c7 cmArgumentParser: Drop unused keywordsMissingValue argument to Parse()
9a7efb6813 cmArgumentParser: Offer private binding to cmParseArgumentsCommand

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !7508
2022-07-26 09:27:44 -04:00
Brad King
7afbfcb184 Merge topic 'refactor-win-ver'
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:54 -04:00
Kitware Robot
2d87db1a2f CMake Nightly Date Stamp 2022-07-26 00:01:07 -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
Brad King
2eba10c5ee cmArgumentParser: Drop unused parsedKeywords argument to Parse()
All clients have been ported to use a binding instead.
2022-07-25 13:52:11 -04:00
Brad King
98cf623821 cmCTestHandlerCommand: Capture list of parsed keywords via binding 2022-07-25 13:52:11 -04:00
Brad King
6ecd741b5f cmFileCommand: Capture list of parsed keywords via binding 2022-07-25 13:52:11 -04:00
Brad King
f7e81802f2 cmArgumentParser: Offer binding for list of parsed keywords
Some clients ask for this list in their `Parse()` call.
Offer them a way to express this request as a binding.
2022-07-25 13:52:01 -04:00