Skip to content

ProcessBuilder Allow Use of raw_arg for Command on specific platforms #15179

Open
@jonatino

Description

Problem

rust-lang/rust#29494
rust-lang/rust#92939

Right now when using ProcessBuilder::exec_with_streaming, it uses the cmd.arg() method to build the Command which on Windows, does not allow us to pass in args that are in quotes (see the above issues for more information).

Steps

No response

Possible Solution(s)

It'd be nice if we could specify if an arg is "raw" or not, or have some other work around.

Notes

I'm using the cargo-quad-apk crate which uses cargo-util for executing a build command. The problem is, if your project has spaces in the name on windows, the Clink-args escape incorrectly and cause the tool to fail to resolve paths.

https://github.com/not-fl3/cargo-quad-apk/blob/master/src/ops/build/compile.rs#L271C13-L271C72

Version

cargo 1.84.1 (66221abde 2024-11-19)
release: 1.84.1
commit-hash: 66221abdeca2002d318fde6efff516aab091df0e
commit-date: 2024-11-19
host: x86_64-pc-windows-msvc
libgit2: 1.8.1 (sys:0.19.0 vendored)
libcurl: 8.9.0-DEV (sys:0.4.74+curl-8.9.0 vendored ssl:Schannel)
os: Windows 10.0.26100 (Windows 11 Professional) [64-bit]

Metadata

Assignees

No one assigned

    Labels

    A-cargo-apiArea: cargo-the-library API and internal code issuesC-bugCategory: bugS-triageStatus: This issue is waiting on initial triage.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions