PCH: Build fails in case-sensitive folder on Windows (VS2019)
Starting with Windows 10 build 17093, Microsoft introduced a new way to handle case sensitive files in Windows: per-directory case sensitivity. Microsoft uses this ability in the Windows Subsystem for Linux to give you better interoperability when using case sensitive files, and you can also use it yourself with regular Windows applications. As of Windows 10 build 17110, this behavior is the default.
CMake generates solution for VS2019 without any errors in the build folder with case-sensitive attribute. But build fails when I enable precompiled headers:
C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\MSBuild\Microsoft\VC\v160\Microsoft.CppCommon.targets(234,5): warning MSB8064: Custom build for item "D:\libs\test\test_pch\build\CMakeFiles\3b418ecacecbd793e2c2f33a71c236
cd\generate.stamp.rule" succeeded, but specified dependency "d:\libs\test\test_pch\build\cmakefiles\3b418ecacecbd793e2c2f33a71c236cd\generate.stamp.rule" does not exist. This may cause incremental build to work incorrectly. [D:\libs\tes
t\test_pch\build\ZERO_CHECK.vcxproj]
C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\MSBuild\Microsoft\VC\v160\Microsoft.CppCommon.targets(234,5): warning MSB8064: Custom build for item "D:\libs\test\test_pch\build\CMakeFiles\3b418ecacecbd793e2c2f33a71c236
cd\generate.stamp.rule" succeeded, but specified dependency "d:\libs\test\test_pch\build\cmakefiles\3.17.1\cmakeccompiler.cmake" does not exist. This may cause incremental build to work incorrectly. [D:\libs\test\test_pch\build\ZERO_CHE
CK.vcxproj]
C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\MSBuild\Microsoft\VC\v160\Microsoft.CppCommon.targets(234,5): warning MSB8064: Custom build for item "D:\libs\test\test_pch\build\CMakeFiles\3b418ecacecbd793e2c2f33a71c236
cd\generate.stamp.rule" succeeded, but specified dependency "d:\libs\test\test_pch\build\cmakefiles\3.17.1\cmakecxxcompiler.cmake" does not exist. This may cause incremental build to work incorrectly. [D:\libs\test\test_pch\build\ZERO_C
HECK.vcxproj]
C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\MSBuild\Microsoft\VC\v160\Microsoft.CppCommon.targets(234,5): warning MSB8064: Custom build for item "D:\libs\test\test_pch\build\CMakeFiles\3b418ecacecbd793e2c2f33a71c236
cd\generate.stamp.rule" succeeded, but specified dependency "d:\libs\test\test_pch\build\cmakefiles\3.17.1\cmakerccompiler.cmake" does not exist. This may cause incremental build to work incorrectly. [D:\libs\test\test_pch\build\ZERO_CH
ECK.vcxproj]
C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\MSBuild\Microsoft\VC\v160\Microsoft.CppCommon.targets(234,5): warning MSB8064: Custom build for item "D:\libs\test\test_pch\build\CMakeFiles\3b418ecacecbd793e2c2f33a71c236
cd\generate.stamp.rule" succeeded, but specified dependency "d:\libs\test\test_pch\build\cmakefiles\3.17.1\cmakesystem.cmake" does not exist. This may cause incremental build to work incorrectly. [D:\libs\test\test_pch\build\ZERO_CHECK.
vcxproj]
C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\MSBuild\Microsoft\VC\v160\Microsoft.CppCommon.targets(234,5): warning MSB8065: Custom build for item "D:\libs\test\test_pch\build\CMakeFiles\3b418ecacecbd793e2c2f33a71c236
cd\generate.stamp.rule" succeeded, but specified output "d:\libs\test\test_pch\build\cmakefiles\generate.stamp" has not been created. This may cause incremental build to work incorrectly. [D:\libs\test\test_pch\build\ZERO_CHECK.vcxproj]
Building Custom Rule D:/libs/test/test_pch/CMakeLists.txt
C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\MSBuild\Microsoft\VC\v160\Microsoft.CppCommon.targets(234,5): warning MSB8064: Custom build for item "D:\libs\test\test_pch\CMakeLists.txt" succeeded, but specified depend
ency "d:\libs\test\test_pch\build\cmakefiles\3.17.1\cmakeccompiler.cmake" does not exist. This may cause incremental build to work incorrectly. [D:\libs\test\test_pch\build\test_exe.vcxproj]
C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\MSBuild\Microsoft\VC\v160\Microsoft.CppCommon.targets(234,5): warning MSB8064: Custom build for item "D:\libs\test\test_pch\CMakeLists.txt" succeeded, but specified depend
ency "d:\libs\test\test_pch\build\cmakefiles\3.17.1\cmakecxxcompiler.cmake" does not exist. This may cause incremental build to work incorrectly. [D:\libs\test\test_pch\build\test_exe.vcxproj]
C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\MSBuild\Microsoft\VC\v160\Microsoft.CppCommon.targets(234,5): warning MSB8064: Custom build for item "D:\libs\test\test_pch\CMakeLists.txt" succeeded, but specified depend
ency "d:\libs\test\test_pch\build\cmakefiles\3.17.1\cmakerccompiler.cmake" does not exist. This may cause incremental build to work incorrectly. [D:\libs\test\test_pch\build\test_exe.vcxproj]
C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\MSBuild\Microsoft\VC\v160\Microsoft.CppCommon.targets(234,5): warning MSB8064: Custom build for item "D:\libs\test\test_pch\CMakeLists.txt" succeeded, but specified depend
ency "d:\libs\test\test_pch\build\cmakefiles\3.17.1\cmakesystem.cmake" does not exist. This may cause incremental build to work incorrectly. [D:\libs\test\test_pch\build\test_exe.vcxproj]
C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\MSBuild\Microsoft\VC\v160\Microsoft.CppCommon.targets(234,5): warning MSB8065: Custom build for item "D:\libs\test\test_pch\CMakeLists.txt" succeeded, but specified output
"d:\libs\test\test_pch\build\cmakefiles\generate.stamp" has not been created. This may cause incremental build to work incorrectly. [D:\libs\test\test_pch\build\test_exe.vcxproj]
cmake_pch.cxx
D:\libs\test\test_pch\build\CMakeFiles\test_exe.dir\cmake_pch.cxx : fatal error C1083: Cannot open compiler intermediate file: 'd:\libs\test\test_pch\build\test_exe.dir\debug\cmake_pch.pch': No such file or directory [D:\libs\test\test_
pch\build\test_exe.vcxproj]
Please find attached minimum example: test_pch.zip
To reproduce this error please unpack attached archive and run build_cs.bat.
Edited by Brad King