It appears that around Tuesday January 30th, during Slicer Project week, there were some changes to the factory build machines.
Based on the Slicer Stable cDash configure errors, my guess is that Slicer 5.6.1 stable was built with MSVC 14.35.32215 (Visual Studio 17.5). Then Visual Studio was updated to 17.8 which brought in MSVC 14.38.33130 and resulted in compiled Slicer extensions complaining about a mismatch when trying to build against the Slicer Stable build tree.
The build of macOS stable extensions has been restored
The fixes applied should address errors like the following:
CMake Error in KretzFileReader/Logic/CMakeLists.txt:
Imported target "qSlicerBaseQTCLI" includes non-existent path
"/Applications/Xcode-14.2.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX14.0.sdk/System/Library/Frameworks/OpenGL.framework"
in its INTERFACE_INCLUDE_DIRECTORIES. Possible reasons include:
* The path was deleted, renamed, or moved to another location.
* An install or uninstall procedure did not complete successfully.
* The installation package was faulty and references files it does not
provide.
Inspecting /Library/Receipts/InstallHistory.plist indicated that XCode was updated to 15.2 on January 9th, this is consistent with the release date[1] of XCode 15.2 being January 8th 2024.
Looking at the content of the directory /Applications/Xcode-14.2.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/, we could see that the date at which the symlinks were updated was also January 9th:
% pushd /Applications/Xcode-14.2.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/
% ls -aslh
total 0
0 drwxr-xr-x 5 root wheel 160B Jan 9 13:27 .
0 drwxr-xr-x 6 root wheel 192B Dec 10 23:33 ..
0 drwxr-xr-x 7 root wheel 224B Nov 13 13:25 MacOSX.sdk
0 lrwxr-xr-x 1 root wheel 10B Jan 9 13:24 MacOSX14.2.sdk -> MacOSX.sdk
0 lrwxr-xr-x 1 root wheel 10B Jan 9 13:24 MacOSX14.sdk -> MacOSX.sdk
We fixed it by creating a new symlink MacOSX14.2.sdk → MacOSX.sdk
The build of Windows stable extensions has been restored
The fixes applied should address errors like the following:
7>-- Configuring Scripted module: ValveView
7>-- Configuring Scripted module: Philips4dUsDicomPatcher
7>CMake Error at KretzFileReader/Logic/CMakeLists.txt:1 (project):
7> The CMAKE_C_COMPILER:
7>
7> C:/Program Files/Microsoft Visual Studio/2022/Community/VC/Tools/MSVC/14.35.32215/bin/Hostx64/x64/cl.exe
7>
7> is not a full path to an existing compiler tool.
7>
7>CMake Error at KretzFileReader/Logic/CMakeLists.txt:1 (project):
7> The CMAKE_CXX_COMPILER:
7>
7> C:/Program Files/Microsoft Visual Studio/2022/Community/VC/Tools/MSVC/14.35.32215/bin/Hostx64/x64/cl.exe
7>
7> is not a full path to an existing compiler tool.
7>
7>-- Configuring incomplete, errors occurred!
Fix applied
Updated the file SlicerConfig.cmake associated with the Stable Slicer build tree applying the following patch:
-set(Slicer_CMAKE_CXX_COMPILER "C:/Program Files/Microsoft Visual Studio/2022/Community/VC/Tools/MSVC/14.35.32215/bin/Hostx64/x64/cl.exe")
+set(Slicer_CMAKE_CXX_COMPILER "C:/Program Files/Microsoft Visual Studio/2022/Community/VC/Tools/MSVC/14.38.33130/bin/Hostx64/x64/cl.exe")
-set(Slicer_CMAKE_C_COMPILER "C:/Program Files/Microsoft Visual Studio/2022/Community/VC/Tools/MSVC/14.35.32215/bin/Hostx64/x64/cl.exe")
+set(Slicer_CMAKE_C_COMPILER "C:/Program Files/Microsoft Visual Studio/2022/Community/VC/Tools/MSVC/14.38.33130/bin/Hostx64/x64/cl.exe")
[...]
-slicer_config_set_compiler_ep( CMAKE_C_COMPILER "C:/Program Files/Microsoft Visual Studio/2022/Community/VC/Tools/MSVC/14.35.32215/bin/Hostx64/x64/cl.exe"
+slicer_config_set_compiler_ep( CMAKE_C_COMPILER "C:/Program Files/Microsoft Visual Studio/2022/Community/VC/Tools/MSVC/14.38.33130/bin/Hostx64/x64/cl.exe"
CACHE PATH "Path to C compiler used in Slicer build" FORCE )
-slicer_config_set_compiler_ep( CMAKE_CXX_COMPILER "C:/Program Files/Microsoft Visual Studio/2022/Community/VC/Tools/MSVC/14.35.32215/bin/Hostx64/x64/cl.exe"
+slicer_config_set_compiler_ep( CMAKE_CXX_COMPILER "C:/Program Files/Microsoft Visual Studio/2022/Community/VC/Tools/MSVC/14.38.33130/bin/Hostx64/x64/cl.exe"
CACHE PATH "Path to CXX compiler used in Slicer build" FORCE )
Analysis
While attending the 40th Project week, while working on BUG: Ensure packaging of the latest d3dcompiler_47.dll for SlicerVirtualReality (PR-7571), on January 30th, we indeed updated Visual Studio.
This is confirmed by the following:
#ar-in-slicer discord entry
Modified date of directories with installed VS 2022 compilers