Setting CMAKE_RC_STANDARD_INCLUDE_DIRECTORIES triggers a `fatal error RC1106: invalid option: -ologo` in cmcldeps.exe call
The actual error message is now described in this comment:
CMAKE_<LANG>_STANDARD_INCLUDE_DIRECTORIES
is ignored by cmcldeps.exe
Original issue description: I'm currently working on a MSVC toolchain file. I set CMAKE_CXX_STANDARD_INCLUDE_DIRECTORIES
and CMAKE_C_STANDARD_INCLUDE_DIRECTORIES
to:
C:/Program Files (x86)/Microsoft Visual Studio/2019/Professional/VC/Tools/MSVC/14.29.30133/ATLMFC/include;C:/Program Files (x86)/Microsoft Visual Studio/2019/Professional/VC/Tools/MSVC/14.29.30133/include;C:/Program Files (x86)/Windows Kits/10/include/10.0.19041.0/ucrt;C:/Program Files (x86)/Windows Kits/10/include/10.0.19041.0/shared;C:/Program Files (x86)/Windows Kits/10/include/10.0.19041.0/um;C:/Program Files (x86)/Windows Kits/10/include/10.0.19041.0/winrt;C:/Program Files (x86)/Windows Kits/10/include/10.0.19041.0/cppwinrt
These include the Windows Kits which containes windows.h
.
However, when I try to compile Qt I get an error that windows.h
is not found withhin a cmcldeps.exe
call.
FAILED: qtbase/src/tools/moc/CMakeFiles/moc.dir/moc_resource.rc.res
C:/Temp/202306~1/CMAKE-~1.4-W/bin/cmcldeps.exe RC C:\Temp\20230605_115055\build_tools\build\qt\qtbase\src\tools\moc\moc_resource.rc qtbase\src\tools\moc\CMakeFiles\moc.dir\moc_resource.rc.res.d qtbase\src\tools\moc\CMakeFiles\moc.dir\moc_resource.rc.res "Hinweis: Einlesen der Datei: " "C:/Program Files (x86)/Microsoft Visual Studio/2019/Professional/VC/Tools/MSVC/14.29.30133/bin/Hostx64/x64/cl.exe" C:\PROGRA~2\WI3CF2~1\10\bin\100190~1.0\x64\rc.exe -DPCRE2_STATIC -DQT_BOOTSTRAPPED -DQT_DISABLE_DEPRECATED_UP_TO=0x040800 -DQT_EXPLICIT_QFILE_CONSTRUCTION_FROM_PATH -DQT_LEAN_HEADERS=1 -DQT_MOC -DQT_NO_AS_CONST=1 -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_FROM_BYTEARRAY -DQT_NO_CAST_TO_ASCII -DQT_NO_DEBUG -DQT_NO_EXCEPTIONS -DQT_NO_FOREACH -DQT_NO_JAVA_STYLE_ITERATORS -DQT_NO_NARROWING_CONVERSIONS_IN_CONNECT -DQT_USE_QSTRINGBUILDER -DQT_VERSION_MAJOR=6 -DQT_VERSION_MINOR=5 -DQT_VERSION_PATCH=1 -DQT_VERSION_STR=\"6.5.1\" -DQT_WARN_DEPRECATED_UP_TO=0x070000 -DUNICODE -DWIN32 -DWIN64 -D_CRT_SECURE_NO_WARNINGS -D_ENABLE_EXTENDED_ALIGNED_STORAGE -D_UNICODE -D_WIN64 -I C:\Temp\20230605_115055\build_tools\src\qt\qt-everywhere-src-6.5.1\qtbase\src\tools\moc -I C:\Temp\20230605_115055\build_tools\build\qt\qtbase\src\tools\moc -I C:\Temp\20230605_115055\build_tools\src\qt\qt-everywhere-src-6.5.1\qtbase\src\tools\moc\..\..\3rdparty\tinycbor\src -I C:\Temp\20230605_115055\build_tools\src\qt\qt-everywhere-src-6.5.1\qtbase\src\tools\moc\..\shared -I C:\Temp\20230605_115055\build_tools\src\qt\qt-everywhere-src-6.5.1\qtbase\mkspecs\win32-msvc -I C:\Temp\20230605_115055\build_tools\build\qt\qtbase\include -I C:\Temp\20230605_115055\build_tools\build\qt\qtbase\src\corelib\Core_autogen\include -I C:\Temp\20230605_115055\build_tools\build\qt\qtbase\include\QtCore -I C:\Temp\20230605_115055\build_tools\src\qt\qt-everywhere-src-6.5.1\qtbase\src\corelib -I C:\Temp\20230605_115055\build_tools\build\qt\qtbase\src\corelib -I C:\Temp\20230605_115055\build_tools\build\qt\qtbase\src\corelib\global -I C:\Temp\20230605_115055\build_tools\build\qt\qtbase\src\corelib\kernel -I C:\Temp\20230605_115055\build_tools\src\qt\qt-everywhere-src-6.5.1\qtbase\src\corelib\..\3rdparty\tinycbor\src -I C:\Temp\20230605_115055\build_tools\build\qt\qtbase\include\QtCore\6.5.1 -I C:\Temp\20230605_115055\build_tools\build\qt\qtbase\include\QtCore\6.5.1\QtCore -I C:\Temp\20230605_115055\build_tools\src\qt\qt-everywhere-src-6.5.1\qtbase\src\corelib\..\3rdparty\double-conversion\double-conversion -I C:\Temp\20230605_115055\build_tools\src\qt\qt-everywhere-src-6.5.1\qtbase\src\corelib\..\3rdparty\double-conversion -I C:\Temp\20230605_115055\build_tools\build\qt\qtbase\src\corelib\.rcc -I C:\Temp\20230605_115055\build_tools\build\qt\qtbase\include\QtZlib -I C:\Temp\20230605_115055\build_tools\src\qt\qt-everywhere-src-6.5.1\qtbase\src\3rdparty\zlib -I C:\Temp\20230605_115055\build_tools\build\qt\qtbase\src\3rdparty\zlib -I C:\Temp\20230605_115055\build_tools\src\qt\qt-everywhere-src-6.5.1\qtbase\src\3rdparty\pcre2\src -I C:\Temp\20230605_115055\build_tools\src\qt\qt-everywhere-src-6.5.1\qtbase\src\tools\bootstrap\..\..\corelib\global -I C:\Temp\20230605_115055\build_tools\src\qt\qt-everywhere-src-6.5.1\qtbase\src\tools\bootstrap\..\..\3rdparty\pcre2\src /nologo -c65001 -DWIN32 -nologo /fo qtbase\src\tools\moc\CMakeFiles\moc.dir\moc_resource.rc.res C:\Temp\20230605_115055\build_tools\build\qt\qtbase\src\tools\moc\moc_resource.rc
cl : Command line warning D9035 : option 'o' has been deprecated and will be removed in a future release
cl : Command line warning D9002 : ignoring unknown option '-c65001'
C:\Temp\20230605_115055\build_tools\build\qt\qtbase\src\tools\moc\moc_resource.rc(1): fatal error C1083: Cannot open include file: 'windows.h': No such file or directory
The includes from CMAKE_CXX_STANDARD_INCLUDE_DIRECTORIES
and CMAKE_C_STANDARD_INCLUDE_DIRECTORIES
don't appear in this call.
I can see that the resource compiler is also involved here, but I'm not sure how to read this call.
But it looks to me like the C++ compiler is called without CMAKE_CXX_STANDARD_INCLUDE_DIRECTORIES
.
Toolchain: The toolchain stuff I set is:
CMAKE_VS_WINDOWS_TARGET_PLATFORM_VERSION = 10.0.19041.0
CMAKE_HOST_SYSTEM_NAME = Windows
CMAKE_C_COMPILER = C:/Program Files (x86)/Microsoft Visual Studio/2019/Professional/VC/Tools/MSVC/14.29.30133/bin/Hostx64/x64/cl.exe
CMAKE_CXX_COMPILER = C:/Program Files (x86)/Microsoft Visual Studio/2019/Professional/VC/Tools/MSVC/14.29.30133/bin/Hostx64/x64/cl.exe
CMAKE_RC_COMPILER = C:/Program Files (x86)/Windows Kits/10/bin/10.0.19041.0/x64/rc.exe
CMAKE_MT = C:/Program Files (x86)/Windows Kits/10/bin/10.0.19041.0/x64/mt.exe
MIDL_COMPILER = C:/Program Files (x86)/Windows Kits/10/bin/10.0.19041.0/x64/midl.exe
WIN32 = 1
MSVC = 1
MSVC_VERSION = 930148
MDMERGE_TOOL = C:/Program Files (x86)/Windows Kits/10/bin/10.0.19041.0/x64/mdmerge.exe
WINDOWS_KITS_BIN_PATH = C:/Program Files (x86)/Windows Kits/10/bin/10.0.19041.0
WINDOWS_KITS_INCLUDE_PATH = C:/Program Files (x86)/Windows Kits/10/include/10.0.19041.0
WINDOWS_KITS_LIB_PATH = C:/Program Files (x86)/Windows Kits/10/lib/10.0.19041.0
WINDOWS_KITS_REFERENCES_PATH = C:/Program Files (x86)/Windows Kits/10/References
Additionall I set CMAKE_CXX_STANDARD_INCLUDE_DIRECTORIES
and CMAKE_C_STANDARD_INCLUDE_DIRECTORIES
and add some library paths via link_directories
because of #18222 (closed).
Note: In normal MSVC call they are used and anything works as expected:
[5/5768] C:\PROGRA~2\MICROS~2\2019\PROFES~1\VC\Tools\MSVC\1429~1.301\bin\Hostx64\x64\cl.exe -DHAVE_CONFIG_H -DPCRE2_CODE_UNIT_WIDTH=16 -DPCRE2_STATIC -DQT_EXPLICIT_QFILE_CONSTRUCTION_FROM_PATH -DQT_NO_DEBUG -DQT_NO_EXCEPTIONS -DQT_NO_JAVA_STYLE_ITERATORS -DQT_NO_NARROWING_CONVERSIONS_IN_CONNECT -DUNICODE -DWIN32 -DWIN64 -D_CRT_SECURE_NO_WARNINGS -D_ENABLE_EXTENDED_ALIGNED_STORAGE -D_UNICODE -D_USE_MATH_DEFINES -D_WIN64 -IC:\Temp\20230605_115055\build_tools\src\qt\qt-everywhere-src-6.5.1\qtbase\src\3rdparty\pcre2\src -IC:\Temp\20230605_115055\build_tools\src\qt\qt-everywhere-src-6.5.1\qtbase\mkspecs\win32-msvc -IC:\Temp\20230605_115055\build_tools\build\qt\qtbase\include -external:I"C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Tools\MSVC\14.29.30133\ATLMFC\include" -external:I"C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Tools\MSVC\14.29.30133\include" -external:I"C:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\ucrt" -external:I"C:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\shared" -external:I"C:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\um" -external:I"C:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\winrt" -external:I"C:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\cppwinrt" -external:W0 /DWIN32 /D_WINDOWS /DNDEBUG -O2 -std:c11 -MD /external:anglebrackets /external:W0 -W0 /EHs-c- /wd4530 /wd4577 -FS -Zc:rvalueCast -Zc:inline -Zc:strictStrings -Zc:throwingNew -Zc:referenceBinding -Zc:ternary -Zc:externConstexpr -Zc:wchar_t -bigobj -guard:cf -Gw -utf-8 /showIncludes /Foqtbase\src\3rdparty\pcre2\CMakeFiles\BundledPcre2.dir\src\pcre2_chartables.c.obj /Fdqtbase\lib\Qt6BundledPcre2.pdb /FS -c C:\Temp\20230605_115055\build_tools\src\qt\qt-everywhere-src-6.5.1\qtbase\src\3rdparty\pcre2\src\pcre2_chartables.c