Commit Graph

63780 Commits

Author SHA1 Message Date
Brad King
bcbb212df7 Revert use of libuv for process execution for 3.28
Wide use of CMake 3.28.{1,0[-rcN]} has uncovered some hangs and crashes
in libuv SIGCHLD handling on some platforms, particularly in virtualization
environments on macOS hosts.  Although the bug does not seem to be in CMake,
we can restore stability in the CMake 3.28 release series for users of such
platforms by reverting our new uses of libuv for process execution.

Revert implementation changes merged by commit 4771544386 (Merge topic
'replace-cmsysprocess-with-cmuvprocesschain', 2023-09-06, v3.28.0-rc1~138),
but keep test suite updates.

Issue: #25414, #25500, #25562, #25589
2024-01-24 17:10:00 -05:00
Brad King
adb3e13d32 cmUVProcessChain: Tolerate fileno() of invalid FILE stream
On Windows, in a GUI process without a console, the `std{in,out,err}`
standard FILE streams may not be open.  Avoid passing an invalid file
descriptor to the child process, and let libuv attach NUL instead.

Fixes: #25625
2024-01-24 16:59:49 -05:00
Brad King
b6e4e4babc cmUVProcessChain: Simplify SetExternalStream usage
It is commonly called with the `fileno()` of a `FILE*` stream,
so accept the latter directly.
2024-01-24 16:59:49 -05:00
Brad King
116bb2b70f cmUVProcessChain: Simplify builder initialization 2024-01-24 16:59:49 -05:00
Brad King
d32c30906a Tests: Add missing include in testUVProcessChainHelper on Windows
We use `STATUS_ACCESS_VIOLATION` from `windows.h`.
2024-01-24 16:59:23 -05:00
Brad King
30c067e24a Merge topic 'FindMatlab-docs' into release-3.28
b8665d44ba FindMatlab: Fix error message from function
44d2cf3ed4 FindMatlab: Document all registry paths for version lookup
363a7d4693 FindMatlab: matlab_get_release_name_from_version is a function now

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: scivision <michael@scivision.dev>
Merge-request: !9175
2024-01-23 14:57:07 -05:00
Hermann von Kleist
b8665d44ba FindMatlab: Fix error message from function 2024-01-22 09:29:57 -05:00
Hermann von Kleist
44d2cf3ed4 FindMatlab: Document all registry paths for version lookup 2024-01-22 09:29:09 -05:00
Hermann von Kleist
363a7d4693 FindMatlab: matlab_get_release_name_from_version is a function now 2024-01-22 09:28:04 -05:00
Brad King
663bc936e8 Merge topic 'cuda-clang' into release-3.28
6251edc5a4 CUDA/Clang: Record architectures supported by Clang 16
07b7d0ceaa CUDA/Clang: Update architectures supported by CUDA 12

Acked-by: Kitware Robot <kwrobot@kitware.com>
Reviewed-by: Raul Tambre <raul@tambre.ee>
Merge-request: !9164
2024-01-19 10:56:07 -05:00
Brad King
10021726ad Merge topic 'cxxmodules-export-file-collisions' into release-3.28
d791f3a180 cxxmodules: make export trampoline script files unique
2352dcc830 Source: Simplify hasher object construction

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !9166
2024-01-19 10:54:19 -05:00
Ben Boeckel
d791f3a180 cxxmodules: make export trampoline script files unique
Include the name of the `EXPORT` in the filename when generating export
information for C++ modules. This allows the same directory to be used
for multiple sets of C++ module-using targets.

For `export(TARGETS)` uses, generate a name based on the hash of the
concatenation of the target names involved with the `export()` call.

Fixes: #25609
2024-01-18 17:40:44 -05:00
Brad King
2352dcc830 Source: Simplify hasher object construction 2024-01-18 17:40:32 -05:00
Brad King
6251edc5a4 CUDA/Clang: Record architectures supported by Clang 16 2024-01-18 12:28:14 -05:00
Brad King
07b7d0ceaa CUDA/Clang: Update architectures supported by CUDA 12
In commit 4d90f65b24 (CUDA: Update set of architectures supported by
CUDA 12, 2022-12-19, v3.26.0-rc1~120^2) we incorrectly guarded dropping
removed architectures by compiler id, but it is actually the CUDA 12
toolkit itself that removed support.
2024-01-18 12:27:53 -05:00
Brad King
c0734d5507 Merge topic 'FindMatlab-fix-exact-version' into release-3.28
7060e2135c FindMatlab: Restore support for finding EXACT major.minor version
88a1392270 FindMatlab: use correct registry view when extracting versions

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !9163
2024-01-18 08:53:10 -05:00
Hermann von Kleist
7060e2135c FindMatlab: Restore support for finding EXACT major.minor version
By comparing major.minor, the behavior approximately matches pre-3.28
behavior.

Fixes: #25605
2024-01-17 10:33:48 -05:00
Hermann von Kleist
88a1392270 FindMatlab: use correct registry view when extracting versions 2024-01-17 16:19:22 +01:00
Brad King
1e32d3118c Merge topic 'cxxmodules-obj-lib' into release-3.28
c09f8d27cd cxxmodules: compute link information for C++ module-consuming targets

Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: buildbot <buildbot@kitware.com>
Reviewed-by: Ben Boeckel <ben.boeckel@kitware.com>
Merge-request: !9154
2024-01-17 09:36:43 -05:00
Brad King
3c868a3fb4 Merge topic 'matlab-win' into release-3.28
42fbe01eba FindMatlab: Accept long version in matlab_get_release_name_from_version
c608adc236 FindMatlab: Fix major.minor version lookups in Windows Registry

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !9148
2024-01-17 09:34:58 -05:00
scivision
42fbe01eba FindMatlab: Accept long version in matlab_get_release_name_from_version
Make this work:

  matlab_get_release_name_from_version(${Matlab_VERSION})

which the user would expect.

While at it, simplify this function code.
2024-01-16 11:37:43 -05:00
scivision
c608adc236 FindMatlab: Fix major.minor version lookups in Windows Registry
The registry key names use only the first two version components.
Previously we were using the full versions.

Fixes: #25582
2024-01-16 11:35:32 -05:00
Brad King
cce2120428 Merge topic 'FindMatlab-fix-version-without-versioninfoxml' into release-3.28
694727bb45 FindMatlab: Restore support for versions without VersionInfo.xml

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !9151
2024-01-16 11:10:28 -05:00
Matheus Izvekov
c09f8d27cd cxxmodules: compute link information for C++ module-consuming targets
Compute link information for all C++ targets which support
modules instead of just those which may provide modules, as
they may import modules as well. This captures `OBJECT` libraries using modules
which otherwise do not have link steps.

Fixes: #25592
2024-01-14 14:14:26 -03:00
Hermann von Kleist
694727bb45 FindMatlab: Restore support for versions without VersionInfo.xml
Report "unknown" in `_Matlab_VersionInfoXML` if file is missing.
Fix omitted MATLAB root with unknown version from XML.

Fixes: #25585
Fixes: #25586
2024-01-12 09:38:12 -05:00
Brad King
01e3eb91b8 Merge topic 'update-zlib' into release-3.28
941b948a85 Merge branch 'upstream-zlib' into update-zlib
5d030dc716 zlib 2022-10-12 (04f42cec)
b7379f9e21 zlib: Update script to get zlib 1.2.13

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Acked-by: Alex <leha-bot@yandex.ru>
Merge-request: !9145
2024-01-11 09:59:52 -05:00
Brad King
941b948a85 Merge branch 'upstream-zlib' into update-zlib
* upstream-zlib:
  zlib 2022-10-12 (04f42cec)

Fixes: #25576
2024-01-10 10:29:17 -05:00
zlib upstream
5d030dc716 zlib 2022-10-12 (04f42cec)
Code extracted from:

    https://github.com/madler/zlib.git

at commit 04f42ceca40f73e2978b50e93806c2a18c1281fc (v1.2.13).
2024-01-10 10:29:05 -05:00
Brad King
b7379f9e21 zlib: Update script to get zlib 1.2.13
Issue: #25576
2024-01-10 10:28:46 -05:00
Brad King
3160b136b2 Merge topic 'vs-scan-for-modules' into release-3.28
405dc7d19c Tests/CXXModules/scan_properties: use `ixx` extension
029ddc3410 cmVisualStudio10TargetGenerator: always specify scanning
6c9614cbf4 Tests/CXXModules: add a test case for VS generation without flags
34f4423851 cmVisualStudio10TargetGenerator: fix typo in flag name

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !9104
2024-01-10 10:17:01 -05:00
Brad King
2858af8d6b Merge topic 'cxxmodules-no-unity' into release-3.28
63bbb3768d cmLocalGenerator: ignore scanned sources for unity builds
76b5383123 cmGlobalGenerator: add unity sources after computing target compile features
7fc2a83fe6 Tests/CXXModules: add a test with unity build support

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !9118
2024-01-10 10:15:44 -05:00
Brad King
3d14d84443 Merge topic 'makefile-depfile' into release-3.28
7198f0d149 Makefile: Fix double escaping when DEPFILE is used
5162ff64d4 Makefile: Reduce string copies

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !9138
2024-01-10 10:14:23 -05:00
Orkun Tokdemir
7198f0d149 Makefile: Fix double escaping when DEPFILE is used
In commit cfd8a5ac1f (Makefiles: Add support of DEPFILE for
add_custom_command, 2020-12-04, v3.20.0-rc1~237^2~1) we added a
`ConvertToOutputPath` call on a path given to the `depends` field of
`WriteMakeRule`.  The latter already handles escaping for Makefile
syntax.

Fixes: #25554
2024-01-09 10:44:43 -05:00
Ben Boeckel
405dc7d19c Tests/CXXModules/scan_properties: use ixx extension
This ensures that Visual Studio is told not to scan this explicitly.
2024-01-09 09:47:47 -05:00
Orkun Tokdemir
5162ff64d4 Makefile: Reduce string copies 2024-01-08 11:58:04 -05:00
Brad King
67ba114875 Merge topic 'fix-openbsd' into release-3.28
1fafe35e81 Source: Restore compilation on OpenBSD

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !9085
2024-01-08 09:30:55 -05:00
Ben Boeckel
029ddc3410 cmVisualStudio10TargetGenerator: always specify scanning
Set that sources should not be scanned on a target-wide basis and then
enable on a per-TU basis as needed.

Fixes: #25519
2024-01-06 11:18:57 -05:00
Ben Boeckel
6c9614cbf4 Tests/CXXModules: add a test case for VS generation without flags
Previously, the `ScanSourceForModuleDependencies` flag was not added to
the VS project if "nothing" prompted custom flags.

See: #25519
2024-01-06 11:18:57 -05:00
Ben Boeckel
34f4423851 cmVisualStudio10TargetGenerator: fix typo in flag name
It is case insensitive, so this only matches the official flag name and
still works.
2024-01-06 11:18:57 -05:00
Rafael Sadowski
1fafe35e81 Source: Restore compilation on OpenBSD
We cannot use `OpenBSD` as a name, it is defined in `sys/param.h`.
2024-01-05 15:36:44 -05:00
Ben Boeckel
63bbb3768d cmLocalGenerator: ignore scanned sources for unity builds 2024-01-05 14:21:27 -05:00
Ben Boeckel
76b5383123 cmGlobalGenerator: add unity sources after computing target compile features
We need to know which sources will be scanned for C++ module
dependencies in order to exclude them from unity builds.  The
addition of unity sources will not change the set of features.
2024-01-05 14:19:42 -05:00
Brad King
47bfca8494 Merge topic 'doc-get-properties-inherited' into release-3.28
8086badba4 Help: Fix wrong return values for unset inherited properties
1ca5ec67b0 Help: Add missing DIRECTORY keyword to set_tests_properties() signature
34379f005b Help: Use <variable> consistently in property getter commands
29ccc9a4cd Help: Use <xxx> for non-keyword arguments in property command signatures

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !9131
2024-01-05 10:18:41 -05:00
Brad King
f6f33385d7 Merge topic 'check_language_propagate_hip_platform' into release-3.28
ce9c6d0994 HIP: Propagate CMAKE_HIP_PLATFORM from/to the test project in check_language
9ba3fc91e5 HIP: Really forward CMAKE_HIP_HOST_COMPILER in check_language(HIP)

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !9121
2024-01-05 10:16:52 -05:00
Ben Boeckel
7fc2a83fe6 Tests/CXXModules: add a test with unity build support
C++ module-using TUs cannot participate in unity builds. Add a test case
for this situation.
2024-01-05 05:03:29 -05:00
Craig Scott
8086badba4 Help: Fix wrong return values for unset inherited properties
Since ff6234509e (Help: Clarify behavior of INHERITED properties, 2018-03-21),
the docs for some get_..._property() commands incorrectly describe
the behavior for inherited properties. When a property is not set, even
in a parent scope, the returned result from the get_..._property()
command is the same whether the property is inherited or not.
The docs incorrectly stated that an empty string would be returned
for inherited properties in such cases.
2024-01-05 17:40:16 +11:00
Craig Scott
1ca5ec67b0 Help: Add missing DIRECTORY keyword to set_tests_properties() signature 2024-01-05 16:45:27 +11:00
Craig Scott
34379f005b Help: Use <variable> consistently in property getter commands
Property-related commands used a mix of <VAR>, <var>, or
<variable> to specify the variable to store the result in. The <VAR>
form is particularly confusing, since being uppercase it looks more
like a keyword. Use <variable> consistently across all the commands
so that the behavior is clear.
2024-01-05 15:37:39 +11:00
Craig Scott
29ccc9a4cd Help: Use <xxx> for non-keyword arguments in property command signatures 2024-01-05 15:31:39 +11:00
Brad King
b03e3c5251 Merge branch 'release-3.27' into release-3.28 2024-01-04 11:50:29 -05:00