Commit Graph

35777 Commits

Author SHA1 Message Date
Kitware Robot
68124fbc75 CMake Nightly Date Stamp 2024-06-15 00:01:36 -04:00
Brad King
a66dfe22d7 Merge topic 'ctest-windows-std-handles'
e4d0169107 ctest: Fix spurious build failures with CTEST_USE_LAUNCHERS on Windows

Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: buildbot <buildbot@kitware.com>
Merge-request: !9598
2024-06-14 09:27:06 -04:00
Brad King
4d5ac1e94e Merge topic 'vs-quote-semicolons'
9b672e8075 VS: Quote custom command arguments containing semicolons

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !9597
2024-06-14 09:24:32 -04:00
Brad King
9b672e8075 VS: Quote custom command arguments containing semicolons
The `GoogleTest` module needs this to pass the `TEST_EXECUTOR`
definition to its `GoogleTestAddTests.cmake` helper script in
the `POST_BUILD` command since commit f875c479f5 (GoogleTest: Honor
TEST_LAUNCHER in gtest_discover_tests, 2024-01-17, v3.29.0-rc1~34^2).
Previously it worked only if other characters, such as spaces,
caused the argument to be quoted.  This was exposed by running the
`RunCMake.GoogleTest` test in a path without spaces.

Reported-by: Garrett Campbell <gcampbell@microsoft.com>
2024-06-14 08:24:21 -04:00
Brad King
e4d0169107 ctest: Fix spurious build failures with CTEST_USE_LAUNCHERS on Windows
Remove the stdio handle inheritance suppression originally added by
commit f262298bb0 (... do not inherit pipes in child procs for ctest so
it can kill them, 2007-09-11, v2.6.0~1136).  It's not clear what problem
it was trying to solve, was only done in `ctest` and not `cmake`, and
since commit 9c3ffe2474 (BUG: fix problem with stdout and stderr not
showing up in ms dos shells, 2007-09-25, v2.6.0~1066) has not been done
in `ctest` launched under interactive consoles.

Furthermore, the code has been spuriously breaking stdio when `ctest` is
started with both stdout and stderr connected to the same pipe, such as
when `ctest --launch` is used under `ninja`.  This is because it used
`DuplicateHandle` with `DUPLICATE_CLOSE_SOURCE` on the stdout handle and
then the stderr handle.  If the handles are the same, then the stderr
handle becomes invalid in between these operations, leading to
likely-undefined behavior.  Since commit 96b3dd329e
(cmCTestLaunchReporter: Replace cmsysProcess with cmUVProcessChain,
2023-07-26, v3.28.0-rc1~138^2~2) this became more noticeable because
`uv_spawn` performs additional verification on stdio handles.

This could be fixed by instead suppressing inheritance via

    SetHandleInformation(h, HANDLE_FLAG_INHERIT, 0);

However, the functionality no longer seems necessary, so remove it.
2024-06-14 07:32:29 -04:00
Kitware Robot
c1e10bad81 CMake Nightly Date Stamp 2024-06-14 00:01:13 -04:00
Kitware Robot
fce6adfa22 CMake Nightly Date Stamp 2024-06-13 00:01:13 -04:00
Kitware Robot
3f7493de72 CMake Nightly Date Stamp 2024-06-12 00:01:14 -04:00
Kitware Robot
f709e6baaf CMake Nightly Date Stamp 2024-06-11 00:01:12 -04:00
Kitware Robot
cafa2986af CMake Nightly Date Stamp 2024-06-10 00:02:57 -04:00
Kitware Robot
998f256cb1 CMake Nightly Date Stamp 2024-06-09 00:01:30 -04:00
Kitware Robot
57e27f8635 CMake Nightly Date Stamp 2024-06-08 00:01:21 -04:00
Kitware Robot
48827cd746 CMake Nightly Date Stamp 2024-06-07 00:01:14 -04:00
Brad King
facfba088f CMake 3.29.5 2024-06-06 08:57:14 -04:00
Brad King
3ef20fbef7 Merge topic 'gui-relative-build-path'
a872844908 cmake-gui: Handle relative paths in the build directory text input

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !9459
2024-06-06 08:41:02 -04:00
Brad King
7d71feb0ac Merge topic 'post-rel-dev'
115425e68c Configure CMake itself with policies through CMake 3.29
ed376e470e export: Increase maximum policy version in exported files to 3.29
4394464501 Add deprecation warnings for policies CMP0129 and below
2eb4382d6b Tests: Modernize RunCMake.CMP0129 test conventions and conditions

Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: buildbot <buildbot@kitware.com>
Merge-request: !9585
2024-06-06 08:39:57 -04:00
Brad King
41a32aadcd Merge topic 'ctest-jobserver-fifo-hang'
ff077af032 ctest: Set close-on-exec for jobserver FIFO

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !9580
2024-06-06 08:33:57 -04:00
Kitware Robot
b411d0146c CMake Nightly Date Stamp 2024-06-06 00:01:28 -04:00
Brad King
115425e68c Configure CMake itself with policies through CMake 3.29 2024-06-05 13:24:36 -04:00
Brad King
ed376e470e export: Increase maximum policy version in exported files to 3.29
The files generated by `install(EXPORT)`, `export()`, and
`install_jar_exports()` commands are known to work with policies
as of CMake 3.29, so enable them in sufficiently new CMake versions.
2024-06-05 13:23:38 -04:00
Brad King
4394464501 Add deprecation warnings for policies CMP0129 and below
The OLD behaviors of all policies are deprecated, but only by
documentation.  Add an explicit deprecation diagnostic for policies
introduced in CMake 3.23 and below to encourage projects to port
away from setting policies to OLD.
2024-06-05 13:19:07 -04:00
Brad King
2f1da5d0db Begin post-3.30 development 2024-06-05 11:47:52 -04:00
Brad King
c370593f2e Begin 3.30 release versioning 2024-06-05 11:44:44 -04:00
Roc R. Currius
a872844908 cmake-gui: Handle relative paths in the build directory text input
Interpret a relative path with respect to the previously configured
directory.
2024-06-05 10:35:05 -04:00
Joan Bruguera Micó
ff077af032 ctest: Set close-on-exec for jobserver FIFO
Set the close-on-exec flag to prevent the jobserver FIFO file
descriptor from leaking to subprocesses spawned by `ctest`.

This leak is usually harmless, but can cause `make test -jN` to hang
at the end of the build if a test leaves a background process running
with the jobserver FIFO file descriptor open.

Fixes: #26027
2024-06-05 09:37:05 -04:00
Brad King
ea03beed31 Merge topic 'macos-check-archs'
db409e5e68 APPLE: Check if compilers respect CMAKE_OSX_ARCHITECTURES
598bc70474 file: Add undocumented READ_MACHO subcommand on macOS

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !9492
2024-06-05 09:23:42 -04:00
Brad King
311cc37e76 Merge topic 'cmFileSet-FixWindowsPerformance'
c598a4609c cmFileSet: Fix poor performance of large file sets with export() on Windows

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !9572
2024-06-05 09:21:31 -04:00
Kitware Robot
c3878be97f CMake Nightly Date Stamp 2024-06-05 00:01:15 -04:00
Brad King
d913a22f26 Merge topic 'gui-trailing-slash-on-dirs'
afa1d0d0e3 CMakeGUI: Sanitize source and build dirs the same as command line

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !9573
2024-06-04 08:57:42 -04:00
Brad King
e449ae8492 Merge topic 'cxx-checks-icpx-overriding'
557a5f3083 cm_cxx_features: Filter out icpx -Woverriding-t-option warnings

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !9577
2024-06-04 08:56:34 -04:00
Brad King
42a4185643 Merge topic 'cxx-checks-distcc'
c9e30d75d2 cm_cxx_features: Ignore distcc warnings

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !9574
2024-06-04 08:55:35 -04:00
Jochem van Boxtel
c598a4609c cmFileSet: Fix poor performance of large file sets with export() on Windows
Exporting targets having large FILE_SETs with install(EXPORT) or export(EXPORT)
currently performs poorly on Windows compared to Unix-like systems,
because cmFileSet::EvaluateDirectoryEntries calls SystemTools::SameFile on every
pair of parent directories in the file set. SystemTools::SameFile opens and closes
two read-only filesystem handles. This causes a significant performance drop
on Windows for FILE_SETs with even a couple of dozens of files.

Use the recently added SystemTools::GetFileId function in kwsys
(https://gitlab.kitware.com/utils/kwsys/-/merge_requests/298) instead of SameFile
to cache the identity of a directory in cmFileSet::EvaluateDirectoryEntries.
This means only one filesystem handle is needed per distinct directory path,
instead of two per (even if they're equal) directory pair.
2024-06-04 08:43:31 -04:00
René Bertin
598bc70474 file: Add undocumented READ_MACHO subcommand on macOS
Provide a way to parse the architectures of a Mach-O binary.

Issue: #25952
2024-06-04 08:37:47 -04:00
Kitware Robot
601fab1f05 CMake Nightly Date Stamp 2024-06-04 00:01:20 -04:00
Brad King
efaa9efece CMake 3.29.4 2024-06-03 14:28:41 -04:00
Brad King
9f72ac3644 CMake 3.28.6 2024-06-03 13:35:26 -04:00
Brad King
557a5f3083 cm_cxx_features: Filter out icpx -Woverriding-t-option warnings
Issue: #20664
2024-06-03 11:46:24 -04:00
Brad King
1df18d5e54 Merge topic 'cmake-C-crash'
7330121467 Fix crash in target-specific commands called from initial cache script

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !9571
2024-06-03 09:10:52 -04:00
Brad King
d1cf2a2206 Merge topic 'file-accept-empty-lists'
7c516f7e28 file(): TOUCH, TOUCH_NOCREATE and MAKE_DIRECTORY accept empty lists

Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: buildbot <buildbot@kitware.com>
Merge-request: !9570
2024-06-03 09:08:52 -04:00
Kitware Robot
22c4d2cf6d CMake Nightly Date Stamp 2024-06-03 00:02:17 -04:00
Martin Mokry
c9e30d75d2 cm_cxx_features: Ignore distcc warnings
Filter out warnings of distcc which does not provide information
about compiler feature availability.

Fixes: #22573
2024-06-02 12:26:13 +02:00
Kitware Robot
e873e8f81a CMake Nightly Date Stamp 2024-06-02 00:01:14 -04:00
Brad King
7330121467 Fix crash in target-specific commands called from initial cache script
Fixes: #26018
2024-06-01 06:28:26 -04:00
Craig Scott
afa1d0d0e3 CMakeGUI: Sanitize source and build dirs the same as command line
This makes a difference when projects compare things like
CMAKE_SOURCE_DIR with CMAKE_CURRENT_SOURCE_DIR and the source
directory has a trailing slash in the GUI. The command line cmake invocation
cleans the paths at the beginning, so such comparisons return true. But the
GUI currently passes the paths unmodified, so such comparisons return false.
Change the logic to sanitize the paths used through the GUI in the same way
that the command line invocation does.

Fixes: #21421
2024-06-01 17:34:27 +10:00
Kitware Robot
fdf671fcc5 CMake Nightly Date Stamp 2024-06-01 00:01:30 -04:00
Brad King
719b461b9c Merge topic 'ci-msvc-14.40'
0070708ae1 gitlab-ci: Update Windows builds to MSVC 14.40 toolset
41e777274a Tests: Update BuildDepends test for VS 17.10
f26e8886b3 cmake-gui: Suppress MSVC deprecation warnings from Qt headers

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !9560
2024-05-31 09:52:15 -04:00
Brad King
1e2b2a18a1 Merge topic 'update-kwsys'
ffeb69546b Merge branch 'upstream-KWSys' into update-kwsys
82c4576a9d KWSys 2024-05-30 (cb379374)

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !9562
2024-05-31 09:24:52 -04:00
Brad King
e0a11dfa24 Merge topic 'dep-provider-try_compile'
4cb5bb014d try_compile: Propagating top level includes into whole-project calls

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Robert Maynard <robertjmaynard@gmail.com>
Merge-request: !9532
2024-05-31 09:20:27 -04:00
Craig Scott
7c516f7e28 file(): TOUCH, TOUCH_NOCREATE and MAKE_DIRECTORY accept empty lists
Projects may be generating a list of files or directories to pass as arguments
to file(TOUCH), file(TOUCH_NOCREATE), or file(MAKE_DIRECTORY). Those
lists might end up being empty, so rather than requiring at least one item,
allow an empty list.

Fixes: #24897
2024-05-31 22:55:20 +10:00
Kitware Robot
140766867b CMake Nightly Date Stamp 2024-05-31 00:01:35 -04:00