summaryrefslogtreecommitdiffstats
path: root/Source/cmUVProcessChain.cxx
Commit message (Collapse)AuthorAgeFilesLines
* Merge topic 'libuv-1.48' into release-3.29Brad King2024-02-091-0/+5
|\ | | | | | | | | | | | | | | | | 077a1d5769 libuv: win/spawn: optionally run executable paths with no file extension f02ac51150 libuv: Revert "win/spawn: run executables with no file extension" 58a271e60b cmUVProcessChain: Implement no-extension-on-Windows support with libuv 1.48 Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !9238
| * libuv: win/spawn: optionally run executable paths with no file extensionBrad King2024-02-081-1/+3
| | | | | | | | | | | | | | | | Backport libuv commit `3f7191e5` (win/spawn: optionally run executable paths with no file extension, 2024-02-05, v1.48.0~8) to add the `UV_PROCESS_WINDOWS_FILE_PATH_EXACT_NAME` option we now use. Issue: #25450
| * cmUVProcessChain: Implement no-extension-on-Windows support with libuv 1.48Brad King2024-02-081-0/+3
| | | | | | | | | | Use the new `UV_PROCESS_WINDOWS_FILE_PATH_EXACT_NAME` option when building against libuv 1.48 or higher.
* | Merge topic 'cmuvprocesschain'Brad King2024-01-251-6/+13
|\ \ | |/ | | | | | | | | | | | | | | | | adb3e13d32 cmUVProcessChain: Tolerate fileno() of invalid FILE stream b6e4e4babc cmUVProcessChain: Simplify SetExternalStream usage 116bb2b70f cmUVProcessChain: Simplify builder initialization d32c30906a Tests: Add missing include in testUVProcessChainHelper on Windows Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !9181
| * cmUVProcessChain: Tolerate fileno() of invalid FILE streamBrad King2024-01-241-1/+5
| | | | | | | | | | | | | | | | 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
| * cmUVProcessChain: Simplify SetExternalStream usageBrad King2024-01-241-0/+8
| | | | | | | | | | It is commonly called with the `fileno()` of a `FILE*` stream, so accept the latter directly.
| * cmUVProcessChain: Simplify builder initializationBrad King2024-01-241-6/+1
| |
* | cmUVProcessChain: Add option for external uv_loop_tKyle Edwards2023-12-051-2/+27
|/
* IWYU: Update for Debian 12 CI jobBrad King2023-07-281-3/+0
| | | | | | `include-what-you-use` diagnostics, in practice, are specific to the environment's compiler and standard library. Update includes to satisfy IWYU for our CI job under Debian 12.
* cmUVProcessChain::Wait(): Treat timeout of 0 as no timeoutKyle Edwards2023-07-261-2/+2
|
* cmUVProcessChain: Return output and error streams as file descriptorsKyle Edwards2023-06-141-48/+12
|
* cmUVProcessChain: Add support for SetExternalStream(Stream_INPUT)Kyle Edwards2023-06-121-5/+22
|
* cmUVProcessChain: Add Status::SpawnResult fieldKyle Edwards2023-06-081-33/+28
|
* cmUVProcessChain: Manually create pipes between processesKyle Edwards2023-06-081-23/+68
| | | | | | | | Previously, we were letting libuv create the output pipe for each process. However, in order to facilitate use cases where process spawn is expected to fail (in the case of a missing executable), we want pipe creation to be separate from process creation. Manually create all of the pipes.
* cmUVProcessChain: Do some internal refactoringKyle Edwards2023-06-081-26/+20
| | | | | | | Move most of cmUVProcessChain::InternalData::Finish() to Prepare() so that error codes can be checked before attepting to spawn any processes. Check some error codes that weren't being checked before. Change return type of Finish() to void as it can't fail.
* cmUVProcessChain: Add Status::GetException() methodKyle Edwards2023-06-051-0/+248
|
* cmUVProcessChain: Add Finished() methodKyle Edwards2023-05-311-0/+5
|
* cmUVProcessChain: Add option for merged output and errorKyle Edwards2023-05-261-22/+37
|
* cmUVProcessChain: Add working directory optionKyle Edwards2023-05-261-0/+10
|
* Make vector operations more efficientRose2022-12-101-0/+1
|
* Refactoring: Third-parties public headers are under cm3p prefixMarc Chevrier2020-05-071-1/+1
| | | | Fixes: #20666
* Revise include order using clang-format-6.0Kitware Robot2019-10-011-6/+6
| | | | | Run the `clang-format.bash` script to update our C and C++ code to a new include order `.clang-format`. Use `clang-format` version 6.0.
* cmstd: Modernize CMake system headersMarc Chevrier2019-09-201-1/+1
| | | | | | | | | | | | | | Provide a standardized way to handle the C++ "standard" headers customized to be used with current CMake C++ standard constraints. Offer under directory `cm` headers which can be used as direct replacements of the standard ones. For example: #include <cm/string_view> can be used safely for CMake development in place of the `<string_view>` standard header. Fixes: #19491
* clang-tidy: modernize-deprecated-headersRegina Pfeifer2019-09-161-1/+1
|
* modernize: manage cmCommand instances using unique_ptr.Marc Chevrier2019-07-141-1/+1
|
* Introduce memory management helper: cm_memory.hxxMarc Chevrier2019-07-141-1/+2
|
* cmUVProcessChain: Add assert() for static analysis toolsKyle Edwards2019-05-141-1/+4
| | | | | | | | | | | | | Some static analysis tools throw a false positive for an out-of-bounds item that is being dereferenced. This out-of-bounds error will never actually happen because of how cmUVProcessChain::InternalData::AddCommand() is being called. Nevertheless, this change adds an assert() to help static analysis tools be absolutely certain that the referenced item is within the vector's bounds. This change also changes the item access to use an index rather than an iterator.
* cmUVProcessChain: Add cmUVProcessChainKyle Edwards2019-05-071-0/+392
This class is ultimately intended as a replacement for cmsys::Process. It spawns a series of processes using libuv, piping the output of each command into the next. Note: input support has not yet been implemented because write support has not yet been implemented on cmUVStreambuf.