Windows path-length regression due to ninja-multi-rsp topic
Hello,
When I updated from CMake 3.17.3 to 3.18.1 I noticed a strange build failure with the Ninja generator on Windows. Further investigations showed that the same issue also happens with 3.17.4.
After some digging and comparing the issued command lines I noticed that the path to the response files got longer due to !5020 (merged). (spaces to align added by me)
[1/1] cmd.exe /C "cd . && C:\git\localbuilds\ExternalLibs\CMake\3.17.3\Tools_Windows\bin\cmake.exe -E vs_link_exe --intdir=modules\rtcvs\Server\Test\MediaConnectors\MediaConnectorsCommonUnitTests\CMakeFiles\MediaConnectorsCommonUnitTests.dir --rc=C:\PROGRA~2\WI3CF2~1\10\bin\100183~1.0\x64\rc.exe --mt=C:\PROGRA~2\WI3CF2~1\10\bin\100183~1.0\x64\mt.exe --manifests -- C:\PROGRA~2\MIB055~1\2019\PROFES~1\VC\Tools\MSVC\1426~1.288\bin\Hostx64\x64\link.exe /nologo @CMakeFiles\MediaConnectorsCommonUnitTests.rsp /out:bin\MediaConnectorsCommonUnitTests_d.exe /implib:bin\MediaConnectorsCommonUnitTests_d.lib /pdb:bin\MediaConnectorsCommonUnitTests_d.pdb /version:0.0 /machine:x64 /debug /INCREMENTAL /DEBUG /subsystem:console && cmd.exe /C "cd /D C:\git\rtc-platform\_build\modules\rtcvs\Server\Test\MediaConnectors\MediaConnectorsCommonUnitTests && signtool.exe sign /q /sha1 0000000000000000000000000000000000000000 C:/git/rtc-platform/_build/bin/MediaConnectorsCommonUnitTests_d.exe""
[1/1] cmd.exe /C "cd . && C:\git\localbuilds\ExternalLibs\CMake\3.17.4\Tools_Windows\bin\cmake.exe -E vs_link_exe --intdir=modules\rtcvs\Server\Test\MediaConnectors\MediaConnectorsCommonUnitTests\CMakeFiles\MediaConnectorsCommonUnitTests.dir --rc=C:\PROGRA~2\WI3CF2~1\10\bin\100183~1.0\x64\rc.exe --mt=C:\PROGRA~2\WI3CF2~1\10\bin\100183~1.0\x64\mt.exe --manifests -- C:\PROGRA~2\MIB055~1\2019\PROFES~1\VC\Tools\MSVC\1426~1.288\bin\Hostx64\x64\link.exe /nologo @modules\rtcvs\Server\Test\MediaConnectors\MediaConnectorsCommonUnitTests\CMakeFiles\MediaConnectorsCommonUnitTests.rsp /out:bin\MediaConnectorsCommonUnitTests_d.exe /implib:bin\MediaConnectorsCommonUnitTests_d.lib /pdb:bin\MediaConnectorsCommonUnitTests_d.pdb /version:0.0 /machine:x64 /debug /INCREMENTAL /DEBUG /subsystem:console && cmd.exe /C "cd /D C:\git\rtc-platform\_build\modules\rtcvs\Server\Test\MediaConnectors\MediaConnectorsCommonUnitTests && signtool.exe sign /q /sha1 0000000000000000000000000000000000000000 C:/git/rtc-platform/_build/bin/MediaConnectorsCommonUnitTests_d.exe""
If I change the (very long) target name to something shorter the error vanishes.
Would it be possible to revert back to the shorter response file path while keeping the optional suffix? And would it be possible to also move the other command line options like /out
, /pbd
, and /implib
into the response file?
Thanks, Gregor