Many extensions are not getting updates for Slicer Stable Release

Nightly build of many extensions for Slicer-5.6 have build errors on Windows and macOS. The errors started to show up a few weeks ago.

For example, SlicerHeart extension failures:

https://slicer.cdash.org/index.php?project=SlicerStable&begin=2024-01-01&end=2024-02-15&filtercount=1&showfilters=1&field1=buildname&compare1=63&value1=SlicerHeart

We did not modify anything in SlicerHeart extension’s main branch, so most likely something has changed on the factory machines.

@Sam_Horvath @jcfr could you please have a look?

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.

Build of macOS Stable extensions

The macOS Stable extension build starting to fail after January 9th.

We are working on addressing this and will follow-up shortly.

SlicerHeart

Link: CDash

SlicerRT

Link: CDash

1 Like

Build of macOS Stable extensions

The build of macOS stable extensions has been restored :white_check_mark:

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.

Fix applied

% pushd /Applications/Xcode-14.2.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/

% sudo ln -s MacOSX.sdk MacOSX14.0.sdk
BeforeAfter

Analysis

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.sdkMacOSX.sdk


  1. https://xcodereleases.com/ ↩︎

Build of Windows Stable extensions

The build of Windows stable extensions has been restored :white_check_mark:

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

Great, thanks a lot!

Inspecting today’s results confirmed the Stable extensions are built :white_check_mark:

1 Like