| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Since commit 5420639a8d (cmExecuteProcessCommand: Replace cmsysProcess
with cmUVProcessChain, 2023-06-01, v3.28.0-rc1~138^2~8), the descriptors
for the `OUTPUT_FILE` and `ERROR_FILE` leak to child processes.
With `ExternalProject` + `INSTALL_COMMAND` + `LOG_INSTALL`, the logging
wrapper script leaks the log files' descriptors to the native build
tool. If they happen to match the `make` job server's pipe fds, e.g.,
with GNU `make` <= 4.3, then the build fails with an error like:
gmake[4]: *** read jobs pipe: Bad file descriptor. Stop.
Fixes: #26398
|
| |
|
| |
|
|\
| |
| |
| |
| |
| |
| | |
dfe0f3f358 VS: Fix '-T version=14.4x' under VS 17.1x
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !9622
|
| |
| |
| |
| |
| |
| |
| |
| | |
Starting with VS 17.10 the v143 toolset reserves versions `14.30`
through `14.49`. This is the first time that the first three digits of
the version do not match the toolset name. Extend the special case from
commit d256581bb0 (VS: Fix '-T version=14.40' under VS 17.10 preview 1,
2024-02-19, v3.29.0-rc2~10^2) to cover the entire reserved version range.
|
|\ \
| |/
|/|
| |
| |
| |
| | |
e4d0169107 ctest: Fix spurious build failures with CTEST_USE_LAUNCHERS on Windows
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !9598
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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.
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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>
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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
|
| | |
|
|\ \
| |/
| |
| |
| |
| |
| | |
98dd754b62 KWSys: ConsoleBuf: Fix test case when running under Windows Terminal
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !9553
|
| |
| |
| |
| |
| |
| |
| | |
Our test case writes a NUL byte to the console to test its behavior.
The behavior of Windows Terminal differs from Windows Console Host
(conhost.exe). Detect which of these is in use at runtime and adjust
our expected result accordingly.
|
| |\
| | |
| | |
| | |
| | |
| | |
| | | |
9e2f31ec23 cmCxxModuleMapper: add a query for the open mode for the modmap
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !9525
|
|\ \ \
| | |/
| |/|
| | |
| | |
| | |
| | | |
9e2f31ec23 cmCxxModuleMapper: add a query for the open mode for the modmap
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !9525
|
| | |
| | |
| | |
| | |
| | |
| | | |
GCC (MinGW) wants to use `\n` on Windows too.
Fixes: #25974
|
|\ \ \
| | |/
| |/|
| | |
| | |
| | |
| | |
| | |
| | | |
c773d5b436 CMP0037: Restore diagnostic message for invalid ALIAS target names
Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Reviewed-by: Ben Boeckel <ben.boeckel@kitware.com>
Merge-request: !9519
|
| |/
| |
| |
| |
| |
| |
| |
| |
| | |
Refactoring in commit 7a4c02cb38 (cmGlobalGenerator: factor out
messaging for CMP0037, 2023-09-24, v3.28.0-rc1~39^2~7) incorrectly
switched to reporting the aliased target name instead of the invalid
name of the alias itself.
Fixes: #25979
|
| | |
|
| |\
| | |
| | |
| | |
| | |
| | |
| | | |
ec35251510 cmDyndepCollation: look at all `export(TARGETS)` calls
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !9485
|
| | | |
|
|\ \ \
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
1fba6d3233 Merge branch 'cxxmodules-build-export-different-directory-3.28' into cxxmodules-build-export-different-directory
ec35251510 cmDyndepCollation: look at all `export(TARGETS)` calls
Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: buildbot <buildbot@kitware.com>
Merge-request: !9485
|
| |\ \ \
| | | |/
| | |/|
| | | |
| | | |
| | | |
| | | | |
cxxmodules-build-export-different-directory
* cxxmodules-build-export-different-directory-3.28:
cmDyndepCollation: look at all `export(TARGETS)` calls
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Previously, only `export()` calls in the same directory were noticed.
Also add a test that exports in a different directory than the target
itself resides in.
Fixes: #25813
|
|\ \ \ \
| |/ / /
|/| | /
| | |/
| |/|
| | |
| | |
| | |
| | | |
3022f0363f VS: set ScanSourceForModuleDependencies at vcxproj level
dff511ad28 cmGeneratorTarget: add a target-level query for "needs dyndep"
Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: AaronRuizMoraUK <aaronruizmora@gmail.com>
Merge-request: !9471
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Implement the target-wide `CXX_SCAN_FOR_MODULES`/`CMP0155` selection
with the `.vcxproj`-wide `ScanSourceForModuleDependencies` setting.
Set the per-source equivalent only when needed for a per-source
`CXX_SCAN_FOR_MODULES` property.
This approach enables Intellisense for interfaces imported from modules.
It is also more consistent with what a user might expect when
investigating the state of module scanning from the VS property panels.
Fixes: #25806
Fixes: #25947
|
| | |
| | |
| | |
| | |
| | | |
This can still be overridden per-source, but it indicates the state of
the target's default behavior.
|
| |\ \
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
142a85f9c1 cxxmodules: use filesystem-safe export names in filenames
4452d41488 cmGeneratorTarget: add method to get a filesystem-safe export name
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !9474
|
|\ \ \ \
| | |/ /
| |/| |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
142a85f9c1 cxxmodules: use filesystem-safe export names in filenames
4452d41488 cmGeneratorTarget: add method to get a filesystem-safe export name
Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: buildbot <buildbot@kitware.com>
Merge-request: !9474
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Also add tests.
Fixes: #25828
|
| | |/
| |/|
| | |
| | |
| | |
| | |
| | |
| | | |
C++ module support puts the export name in a filename. Export names with
`:` in them are not valid filenames on Windows. Add a method to escape
names as necessary.
See: #25828
|
|\ \ \
| | |/
| |/|
| | |
| | |
| | |
| | |
| | |
| | | |
2041f7c9bf cmGeneratorTarget: add the original target as a COMPILE_ONLY link
051c2110c8 Tests/CXXModules: test exporting modules which include headers
Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: buildbot <buildbot@kitware.com>
Merge-request: !9469
|
| |/
| |
| |
| | |
Fixes: #25909
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Since commit 3f2a5971c0 (Modules: CMAKE_*_COMPILER convert path to cmake
path, 2023-12-02, v3.29.0-rc1~292^2) we normalize the path to the
compiler. Update our logic that checks whether the compiler has changed
to account for path normalization.
Fixes: #25883
Issue: #25456
|
| |
| |
| |
| |
| |
| |
| | |
We shouldn't include the swiftmodule in the ninja dependency graph
unless that target emits a swiftmodule.
Fixes: #25869
|
| | |
|
| |
| |
| |
| | |
Define `_XOPEN_SOURCE >= 700` to make `gettimeofday()` et al. available.
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Refactoring in commit 5ff0b4ed57 (cmCTestMultiProcessHandler:
Consolidate test readiness checks, 2023-10-20, v3.29.0-rc1~378^2~4)
accidentally broke `RESOURCE_LOCK`. Fix it and replace the previous
test with one that would have caught this.
Fixes: #25843
|
| |
| |
| |
| | |
Fixes: #25809
|
| | |
|
|\ \
| |/
| |
| |
| |
| |
| |
| | |
36dc8d6d50 Ninja: Fix Fortran module deps in files INCLUDEd by preprocessed sources
Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !9351
|
| |
| |
| |
| |
| |
| |
| | |
If a preprocessed source also uses the Fortran `INCLUDE` directive,
search the original source file's directory.
Fixes: #25792
|
| | |
|
|\ \
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
bcc26ce465 Apple Text Based Stubs: should be usage in subdirectories
Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !9341
|
| | |
| | |
| | |
| | | |
Fixes: #25765
|