ninja: Use platform dependent quote instead of shlex.quote() in gcc_rsp_quote()

pull/12684/head
byteblob 1 year ago committed by Dylan Baker
parent 90098473d5
commit ce2db13e94
  1. 20
      mesonbuild/backend/ninjabackend.py

@ -14,7 +14,6 @@ import json
import os
import pickle
import re
import shlex
import subprocess
import typing as T
@ -67,16 +66,6 @@ def cmd_quote(arg: str) -> str:
return arg
def gcc_rsp_quote(s: str) -> str:
# see: the function buildargv() in libiberty
#
# this differs from sh-quoting in that a backslash *always* escapes the
# following character, even inside single quotes.
s = s.replace('\\', '\\\\')
return shlex.quote(s)
# How ninja executes command lines differs between Unix and Windows
# (see https://ninja-build.org/manual.html#ref_rule_command)
if mesonlib.is_windows():
@ -88,6 +77,15 @@ else:
execute_wrapper = []
rmfile_prefix = ['rm', '-f', '{}', '&&']
def gcc_rsp_quote(s: str) -> str:
# see: the function buildargv() in libiberty
#
# this differs from sh-quoting in that a backslash *always* escapes the
# following character, even inside single quotes.
s = s.replace('\\', '\\\\')
return quote_func(s)
def get_rsp_threshold() -> int:
'''Return a conservative estimate of the commandline size in bytes

Loading…
Cancel
Save