mirror of
https://github.com/platformio/platformio-core.git
synced 2025-09-29 23:30:55 +02:00
Use "TEMPFILEARGESCFUNC" for GCC workaround on Windows
This commit is contained in:
@@ -50,7 +50,7 @@ __core_packages__ = {
|
|||||||
"contrib-piohome": "~3.3.3",
|
"contrib-piohome": "~3.3.3",
|
||||||
"contrib-pysite": "~2.%d%d.0" % (sys.version_info.major, sys.version_info.minor),
|
"contrib-pysite": "~2.%d%d.0" % (sys.version_info.major, sys.version_info.minor),
|
||||||
"tool-unity": "~1.20500.0",
|
"tool-unity": "~1.20500.0",
|
||||||
"tool-scons": "~2.20501.7" if sys.version_info.major == 2 else "~4.40100.1",
|
"tool-scons": "~2.20501.7" if sys.version_info.major == 2 else "~4.40100.2",
|
||||||
"tool-cppcheck": "~1.230.0",
|
"tool-cppcheck": "~1.230.0",
|
||||||
"tool-clangtidy": "~1.100000.0",
|
"tool-clangtidy": "~1.100000.0",
|
||||||
"tool-pvs-studio": "~7.11.0",
|
"tool-pvs-studio": "~7.11.0",
|
||||||
|
@@ -16,8 +16,10 @@ from __future__ import absolute_import
|
|||||||
|
|
||||||
import hashlib
|
import hashlib
|
||||||
import os
|
import os
|
||||||
|
import re
|
||||||
|
|
||||||
from SCons.Platform import TempFileMunge # pylint: disable=import-error
|
from SCons.Platform import TempFileMunge # pylint: disable=import-error
|
||||||
|
from SCons.Subst import quote_spaces # pylint: disable=import-error
|
||||||
|
|
||||||
from platformio.compat import WINDOWS, hashlib_encode_data
|
from platformio.compat import WINDOWS, hashlib_encode_data
|
||||||
|
|
||||||
@@ -27,6 +29,16 @@ from platformio.compat import WINDOWS, hashlib_encode_data
|
|||||||
# We need ~256 characters for a temporary file path
|
# We need ~256 characters for a temporary file path
|
||||||
MAX_LINE_LENGTH = (8192 if WINDOWS else 131072) - 256
|
MAX_LINE_LENGTH = (8192 if WINDOWS else 131072) - 256
|
||||||
|
|
||||||
|
WINPATHSEP_RE = re.compile(r"\\([^\"'\\]|$)")
|
||||||
|
|
||||||
|
|
||||||
|
def tempfile_arg_esc_func(arg):
|
||||||
|
arg = quote_spaces(arg)
|
||||||
|
if not WINDOWS:
|
||||||
|
return arg
|
||||||
|
# GCC requires double Windows slashes, let's use UNIX separator
|
||||||
|
return WINPATHSEP_RE.sub(r"/\1", arg)
|
||||||
|
|
||||||
|
|
||||||
def long_sources_hook(env, sources):
|
def long_sources_hook(env, sources):
|
||||||
_sources = str(sources).replace("\\", "/")
|
_sources = str(sources).replace("\\", "/")
|
||||||
@@ -67,6 +79,7 @@ def generate(env):
|
|||||||
_long_sources_hook=long_sources_hook,
|
_long_sources_hook=long_sources_hook,
|
||||||
TEMPFILE=TempFileMunge,
|
TEMPFILE=TempFileMunge,
|
||||||
MAXLINELENGTH=MAX_LINE_LENGTH,
|
MAXLINELENGTH=MAX_LINE_LENGTH,
|
||||||
|
TEMPFILEARGESCFUNC=tempfile_arg_esc_func,
|
||||||
TEMPFILESUFFIX=".tmp",
|
TEMPFILESUFFIX=".tmp",
|
||||||
TEMPFILEDIR="$BUILD_DIR",
|
TEMPFILEDIR="$BUILD_DIR",
|
||||||
)
|
)
|
||||||
|
Reference in New Issue
Block a user