diff options
author | snermolaev <[email protected]> | 2024-03-11 05:17:13 +0300 |
---|---|---|
committer | snermolaev <[email protected]> | 2024-03-11 05:37:08 +0300 |
commit | 1041341d148dcfa9aae4928131380c160936514d (patch) | |
tree | 02707ebf18f18d1a40bdadd2ca849080561eac0e | |
parent | 27deb40acd9c3798fe9ab7c88e50d532bccf924a (diff) |
respect whitespaces in paths to tools
621356531cf85b8487463c8df871341bed1171f9
-rw-r--r-- | build/conf/compilers/msvc_compiler.conf | 10 | ||||
-rw-r--r-- | build/conf/linkers/msvc_linker.conf | 11 | ||||
-rw-r--r-- | build/conf/toolchains/msvc_toolchain.conf | 17 | ||||
-rw-r--r-- | build/ya.conf.json | 3 | ||||
-rwxr-xr-x | build/ymake_conf.py | 47 |
5 files changed, 49 insertions, 39 deletions
diff --git a/build/conf/compilers/msvc_compiler.conf b/build/conf/compilers/msvc_compiler.conf index 9455570d59d..9725dece3c0 100644 --- a/build/conf/compilers/msvc_compiler.conf +++ b/build/conf/compilers/msvc_compiler.conf @@ -1,5 +1,9 @@ _STD_CXX=/std:$_STD_CXX_VERSION +C_COMPILER=${_WINE_C_PREFIX} ${quo:C_COMPILER_UNQUOTED} +CXX_COMPILER=${_WINE_CXX_PREFIX} ${quo:CXX_COMPILER_UNQUOTED} +MASM_COMPILER=${_WINE_MASM_PREFIX} ${quo:MASM_COMPILER_UNQUOTED} + MSVC_INLINE_OPTIMIZED=yes when ($MSVC_INLINE_OPTIMIZED == "yes") { MSVC_INLINE_FLAG=/Zc:inline @@ -78,9 +82,11 @@ SFDL_FLAG=/E /C /P /TP /Fi$SFDL_TMP_OUT WERROR_FLAG=/WX CL_WRAPPER=${FIX_MSVC_OUTPUT} cl -ML_WRAPPER=${FIX_MSVC_OUTPUT} ml -when ($_UNDER_WINE == "yes" && $CLANG_CL !="yes") { +when ($_UNDER_WINE_COMPILER == "yes" || $CLANG_CL == "yes") { CL_WRAPPER= +} +ML_WRAPPER=${FIX_MSVC_OUTPUT} ml +when ($_UNDER_WINE_TOOLS == "yes") { ML_WRAPPER= } diff --git a/build/conf/linkers/msvc_linker.conf b/build/conf/linkers/msvc_linker.conf index 27d3a41b203..5c226298eb5 100644 --- a/build/conf/linkers/msvc_linker.conf +++ b/build/conf/linkers/msvc_linker.conf @@ -1,3 +1,6 @@ +LINK_EXE_CMD=${_WINE_LINK_PREFIX} ${quo:_MSVC_LINK_UNQUOTED} +LINK_LIB_CMD=${_WINE_LIB_PREFIX} ${quo:_MSVC_LIB_UNQUOTED} + _MSVC_ARCH= when ($ARCH_I386 == "yes" || $ARCH_I686 == "yes") { _MSVC_ARCH=x86 @@ -43,9 +46,9 @@ when (!$NO_DEBUGINFO || $NO_DEBUGINFO == "no" || $NO_DEBUGINFO == "0") { _FLAGS_COMMON_LIBPATHS= when ($IDE_MSVS != "yes") { _FLAGS_COMMON_LIBPATHS=\ - /LIBPATH:"$_MSVC_TC_KIT_LIBS/um/$_MSVC_ARCH" \ - /LIBPATH:"$_MSVC_TC_KIT_LIBS/ucrt/$_MSVC_ARCH" \ - /LIBPATH:"$_MSVC_TC_VC_ROOT/lib/$_MSVC_ARCH" + /LIBPATH:\"${quo:_MSVC_TC_KIT_LIBS}/um/$_MSVC_ARCH\" \ + /LIBPATH:\"${quo:_MSVC_TC_KIT_LIBS}/ucrt/$_MSVC_ARCH\" \ + /LIBPATH:\"${quo:_MSVC_TC_VC_ROOT}/lib/$_MSVC_ARCH\" } _FLAGS_COMMON =/NOLOGO /ERRORREPORT:PROMPT /SUBSYSTEM:CONSOLE /TLBID:1 $MSVC_DYNAMICBASE /NXCOMPAT @@ -113,7 +116,7 @@ LINK_EXTRA_OUTPUT=$_LINK_EXTRA_OUTPUT LIB_WRAPPER=${FIX_MSVC_OUTPUT} lib LINK_WRAPPER=${FIX_MSVC_OUTPUT} link -when ($_UNDER_WINE == "yes") { +when ($_UNDER_WINE_TOOLS == "yes") { LIB_WRAPPER= LINK_WRAPPER= } diff --git a/build/conf/toolchains/msvc_toolchain.conf b/build/conf/toolchains/msvc_toolchain.conf index 6b4d6b5c453..5ae213e275b 100644 --- a/build/conf/toolchains/msvc_toolchain.conf +++ b/build/conf/toolchains/msvc_toolchain.conf @@ -2,6 +2,19 @@ # для любых платформ. Нужно унифицировать с GnuToolchain. C_FLAGS_PLATFORM= -when ($_UNDER_WINE == "yes") { - WINE_ENV=${env:"WINEPREFIX_SUFFIX=4.0"} +_WINE_CMD=${YMAKE_PYTHON} ${input:"build/scripts/run_msvc_wine.py"} ${input;hide:"build/scripts/process_command_files.py"} ${input;hide:"build/scripts/process_whole_archive_option.py"} $(WINE_TOOL-sbr:1093314933)/bin/wine64 -v140 ${env:"WINEPREFIX_SUFFIX=4.0"} + +_WINE_C_PREFIX= +_WINE_CXX_PREFIX= +_WINE_LINK_PREFIX= +_WINE_LIB_PREFIX= +_WINE_MASM_PREFIX= +when ($_UNDER_WINE_TOOLS == "yes") { + _WINE_LINK_PREFIX=${_WINE_CMD} link ${ARCADIA_ROOT} ${ARCADIA_BUILD_ROOT} + _WINE_LIB_PREFIX=${_WINE_CMD} lib ${ARCADIA_ROOT} ${ARCADIA_BUILD_ROOT} + _WINE_MASM_PREFIX=${_WINE_CMD} masm ${ARCADIA_ROOT} ${ARCADIA_BUILD_ROOT} +} +when ($_UNDER_WINE_COMPILER == "yes") { + _WINE_C_PREFIX=${_WINE_CMD} c ${ARCADIA_ROOT} ${ARCADIA_BUILD_ROOT} + _WINE_CXX_PREFIX=${_WINE_CMD} cxx ${ARCADIA_ROOT} ${ARCADIA_BUILD_ROOT} } diff --git a/build/ya.conf.json b/build/ya.conf.json index 14b62d870f2..35d846286e1 100644 --- a/build/ya.conf.json +++ b/build/ya.conf.json @@ -1534,8 +1534,7 @@ "use_bundle": true, "use_clang": true, "version": "2019", - "werror_mode": "all", - "wine": "yes" + "werror_mode": "all" }, "platforms": [ { diff --git a/build/ymake_conf.py b/build/ymake_conf.py index 6ed60f33539..87719382e7c 100755 --- a/build/ymake_conf.py +++ b/build/ymake_conf.py @@ -1775,17 +1775,15 @@ class MSVCToolchainOptions(ToolchainOptions): # C:\Program Files (x86)\Windows Kits\10\Lib\10.0.14393.0 self.kit_libs = None - self.under_wine = 'wine' in self.params - self.system_msvc = 'system_msvc' in self.params - self.ide_msvs = 'ide_msvs' in self.params + self.under_wine_compiler = self.params.get('wine', False) + self.under_wine_tools = not build.host.is_windows + self.system_msvc = self.params.get('system_msvc', False) + self.ide_msvs = self.params.get('ide_msvs', False) self.use_clang = self.params.get('use_clang', False) self.use_arcadia_toolchain = self.params.get('use_arcadia_toolchain', False) self.sdk_version = None - if build.host.is_windows: - self.under_wine = False - if self.ide_msvs: bindir = '$(VC_ExecutablePath_x64_x64)\\' self.c_compiler = bindir + 'cl.exe' @@ -1827,12 +1825,11 @@ class MSVCToolchainOptions(ToolchainOptions): else: if self.version_at_least(2019): self.sdk_version = '10.0.18362.0' - sdk_dir = '$(WINDOWS_KITS-sbr:1939557911)' if is_positive('MSVC20'): # XXX: temporary flag, remove after DTCC-123 is completed self.cxx_std = 'c++latest' else: self.sdk_version = '10.0.16299.0' - sdk_dir = '$(WINDOWS_KITS-sbr:1379398385)' + sdk_dir = '$WINDOWS_KITS_RESOURCE_GLOBAL' self.vc_root = self.name_marker if not self.use_clang else '$MSVC_FOR_CLANG_RESOURCE_GLOBAL' self.kit_includes = os.path.join(sdk_dir, 'Include', self.sdk_version) @@ -1852,19 +1849,9 @@ class MSVCToolchainOptions(ToolchainOptions): (build.target.is_armv7, 'armasm.exe'), ]) - def prefix(_type, _path): - if not self.under_wine: - return _path - return '{wine} {type} $WINE_ENV ${{ARCADIA_ROOT}} ${{ARCADIA_BUILD_ROOT}} {path}'.format( - wine='${YMAKE_PYTHON} ${input:\"build/scripts/run_msvc_wine.py\"} $(WINE_TOOL-sbr:1093314933)/bin/wine64 -v140 ' + - '${input;hide:\"build/scripts/process_command_files.py\"} ${input;hide:\"build/scripts/process_whole_archive_option.py\"}', - type=_type, - path=_path - ) - - self.masm_compiler = prefix('masm', os.path.join(bindir, tools_name, asm_name)) - self.link = prefix('link', os.path.join(bindir, tools_name, 'link.exe')) - self.lib = prefix('lib', os.path.join(bindir, tools_name, 'lib.exe')) + self.masm_compiler = os.path.join(bindir, tools_name, asm_name) + self.link = os.path.join(bindir, tools_name, 'link.exe') + self.lib = os.path.join(bindir, tools_name, 'lib.exe') class MSVC(object): @@ -1891,7 +1878,7 @@ class MSVCToolchain(MSVC, Toolchain): if self.tc.from_arcadia and not self.tc.ide_msvs: self.platform_projects.append('build/internal/platform/msvc') - if tc.under_wine: + if tc.under_wine_compiler or tc.under_wine_tools: self.platform_projects.append('build/platform/wine') def print_toolchain(self): @@ -1902,8 +1889,10 @@ class MSVCToolchain(MSVC, Toolchain): if self.tc.sdk_version: emit('WINDOWS_KITS_VERSION', self.tc.sdk_version) - if self.tc.under_wine: - emit('_UNDER_WINE', 'yes') + if self.tc.under_wine_tools: + emit('_UNDER_WINE_TOOLS', 'yes') + if self.tc.under_wine_compiler: + emit('_UNDER_WINE_COMPILER', 'yes') if self.tc.use_clang: emit('CLANG_CL', 'yes') if self.tc.ide_msvs: @@ -2096,9 +2085,9 @@ class MSVCCompiler(MSVC, Compiler): if self.tc.use_arcadia_toolchain: emit('USE_ARCADIA_TOOLCHAIN', 'yes') - emit('CXX_COMPILER', self.tc.cxx_compiler) - emit('C_COMPILER', self.tc.c_compiler) - emit('MASM_COMPILER', self.tc.masm_compiler) + emit('CXX_COMPILER_UNQUOTED', self.tc.cxx_compiler) + emit('C_COMPILER_UNQUOTED', self.tc.c_compiler) + emit('MASM_COMPILER_UNQUOTED', self.tc.masm_compiler) append('C_DEFINES', defines) append('C_WARNING_OPTS', c_warnings) emit('_CXX_DEFINES', cxx_defines) @@ -2139,8 +2128,8 @@ class MSVCLinker(MSVC, Linker): linker = self.tc.link linker_lib = self.tc.lib - emit('LINK_LIB_CMD', linker_lib) - emit('LINK_EXE_CMD', linker) + emit('_MSVC_LIB_UNQUOTED', linker_lib) + emit('_MSVC_LINK_UNQUOTED', linker) if self.build.is_release: emit('LINK_EXE_FLAGS_PER_TYPE', '$LINK_EXE_FLAGS_RELEASE') |