diff --git a/guix-systole/packages.scm b/guix-systole/packages.scm index 38f4a2f..cda2621 100644 --- a/guix-systole/packages.scm +++ b/guix-systole/packages.scm @@ -26,13 +26,17 @@ (string-append directory "/packages/patches") directory)) %load-path)) -;; Define a modified %patch-path that includes custom patch directory (define %patch-path - (make-parameter (list systole-patches - (string-append systole-patches "/slicer") - %original-patch-path))) + (make-parameter (append + (list systole-patches + (string-append systole-patches "/ctk") + (string-append systole-patches "/qrestapi") + (string-append systole-patches "/slicer") + (string-append systole-patches "/slicer-openigtlink") + ) + %original-patch-path))) -;; Define search-patch function +;; Define search-patch functio (define (search-patch file-name) "Search the patch FILE-NAME. Raise an error if not found." (or (search-path (%patch-path) file-name) diff --git a/guix-systole/packages/ctk.scm b/guix-systole/packages/ctk.scm index 1d3b7a4..1e47444 100644 --- a/guix-systole/packages/ctk.scm +++ b/guix-systole/packages/ctk.scm @@ -15,79 +15,89 @@ #:use-module (gnu packages tbb) #:use-module (gnu packages xiph) ; Theora lib. #:use-module (gnu packages xml) ; libxml2, expat + #:use-module (gnu packages) ; libxml2, expat #:use-module (guix build-system cmake) #:use-module (guix download) + #:use-module (guix gexp) #:use-module ((guix licenses) #:prefix license:) #:use-module (guix packages) #:use-module (guix-systole packages itk) #:use-module (guix-systole packages maths) - #:use-module (guix-systole packages vtk)) + #:use-module (guix-systole packages vtk) + #:use-module (guix-systole packages)) ;; --------------------------- CTK --------------------------- (define-public ctk (package - (name "ctk") - (version "0.1") - (source - (origin - (method url-fetch) - (uri - "https://github.com/commontk/CTK/archive/82cae5781621845486bad2697aed095f04cfbe76.tar.gz") - (sha256 - (base32 "1g2jv4hjimf4baqbmpmc29ara2f8gk8604g1v8k243x882f0ls9z")))) - (build-system cmake-build-system) - (arguments - '(#:tests? #f - #:parallel-build? #t ; Scheme building using multiple threads. - #:configure-flags - (list ;; --------------------------- Build Flags --------------------------- - "-DCTK_USE_GIT_PROTOCOL:BOOL=OFF" ;turning off git protocol, as it is not supported by modern GitHub - "-DCTK_SUPERBUILD:BOOL=OFF" ;Disable Superbuild - "-DBUILD_TESTING:BOOL=OFF" - "-DCTK_INSTALL_LIB_DIR=lib" ; Hardcoded path for CTK install directory. Fix for CTK-Widgets. + (name "ctk") + (version "0.1") + (source + (origin + (method url-fetch) + (uri + "https://github.com/commontk/CTK/archive/82cae5781621845486bad2697aed095f04cfbe76.tar.gz") + (sha256 + (base32 "1g2jv4hjimf4baqbmpmc29ara2f8gk8604g1v8k243x882f0ls9z")) + (patches (search-patches + "0001-ENH-Fix-locating-DCMTK-when-using-CTK.patch")) + )) + (build-system cmake-build-system) + (arguments + (list #:tests? #f + #:parallel-build? #t ; Scheme building using multiple threads. + #:configure-flags + #~(list ;; --------------------------- Build Flags --------------------------- + "-DCTK_USE_GIT_PROTOCOL:BOOL=OFF" ;turning off git protocol, as it is not supported by modern GitHub + "-DCTK_SUPERBUILD:BOOL=OFF" ;Disable Superbuild + "-DBUILD_TESTING:BOOL=OFF" + "-DCTK_INSTALL_LIB_DIR=lib" ; Hardcoded path for CTK install directory. Fix for CTK-Widgets. - ;; NOTE: (from Slicer) These may need to change in the future. - "-DCTK_BUILD_QTDESIGNER_PLUGINS:BOOL=ON" - ;; "-DCTK_BUILD_QTDESIGNER_PLUGINS:BOOL=${Slicer_BUILD_QT_DESIGNER_PLUGINS}" - ;; "-DCTK_INSTALL_QTPLUGIN_DIR:STRING=${Slicer_INSTALL_QtPlugins_DIR}" - ;; -------------------------- CTKdata flags -------------------------- - ;; NOTE: Testing should be reviewed and added at some point - "-DCTK_ENABLE_CTKDATA:BOOL=OFF" ;CTKData is only needed for testing - ;; ---------------------------- VTK flags ---------------------------- - "-DCTK_USE_SYSTEM_VTK:BOOL=ON" - ;; ---------------------------- ITK flags ---------------------------- - "-DCTK_USE_SYSTEM_ITK:BOOL=ON" - ;; --------------------------- DICOM Flags --------------------------- - "-DCTK_USE_SYSTEM_DCMTK:BOOL=ON" - "-DCTK_APP_ctkDICOM:BOOL=ON" - "-DCTK_LIB_DICOM/Core:BOOL=ON" - "-DCTK_LIB_DICOM/Widgets:BOOL=ON" - ;; ------------------------ CTK Widgets Flags------------------------- - "-DCTK_LIB_Widgets:BOOL=ON" - "-DCTK_LIB_Visualization/VTK/Widgets:BOOL=ON" ; \ - "-DCTK_LIB_Visualization/VTK/Widgets_USE_TRANSFER_FUNCTION_CHARTS:BOOL=ON" ; -> Needs GuiSupportQT - "-DCTK_LIB_ImageProcessing/ITK/Core:BOOL=ON" ; / - "-DCTK_LIB_PluginFramework:BOOL=OFF" - "-DCTK_PLUGIN_org.commontk.eventbus:BOOL=OFF" - ;; ---------------------- PythonQt wrapping ---------------------- - "-DCTK_LIB_Scripting/Python/Core:BOOL=OFF" - "-DCTK_LIB_Scripting/Python/Core_PYTHONQT_USE_VTK:BOOL=OFF" - "-DCTK_LIB_Scripting/Python/Core_PYTHONQT_WRAP_QTCORE:BOOL=OFF" - "-DCTK_LIB_Scripting/Python/Core_PYTHONQT_WRAP_QTGUI:BOOL=OFF" - "-DCTK_LIB_Scripting/Python/Core_PYTHONQT_WRAP_QTUITOOLS:BOOL=OFF" - "-DCTK_LIB_Scripting/Python/Core_PYTHONQT_WRAP_QTNETWORK:BOOL=OFF" - "-DCTK_LIB_Scripting/Python/Core_PYTHONQT_WRAP_QTMULTIMEDIA:BOOL=OFF" - "-DCTK_LIB_Scripting/Python/Core_PYTHONQT_WRAP_QTWEBKIT:BOOL=OFF" - "-DCTK_LIB_Scripting/Python/Widgets:BOOL=OFF" - "-DCTK_ENABLE_Python_Wrapping:BOOL=OFF"))) - (inputs - (list qtbase-5 - qttools-5 - qtsvg-5 - dcmtk - vtk-slicer - itk-slicer + ;; NOTE: (from Slicer) These may need to change in the future. + "-DCTK_BUILD_QTDESIGNER_PLUGINS:BOOL=ON" + ;; "-DCTK_BUILD_QTDESIGNER_PLUGINS:BOOL=${Slicer_BUILD_QT_DESIGNER_PLUGINS}" + ;; "-DCTK_INSTALL_QTPLUGIN_DIR:STRING=${Slicer_INSTALL_QtPlugins_DIR}" + ;; -------------------------- CTKdata flags -------------------------- + ;; NOTE: Testing should be reviewed and added at some point + "-DCTK_ENABLE_CTKDATA:BOOL=OFF" ;CTKData is only needed for testing + ;; ---------------------------- VTK flags ---------------------------- + "-DCTK_USE_SYSTEM_VTK:BOOL=ON" + ;; ---------------------------- ITK flags ---------------------------- + "-DCTK_USE_SYSTEM_ITK:BOOL=ON" + ;; --------------------------- DICOM Flags --------------------------- + "-DCTK_USE_SYSTEM_DCMTK:BOOL=ON" + "-DCTK_APP_ctkDICOM:BOOL=ON" + "-DCTK_LIB_DICOM/Core:BOOL=ON" + "-DCTK_LIB_DICOM/Widgets:BOOL=ON" + ;; ------------------------ CTK Widgets Flags------------------------- + "-DCTK_LIB_Widgets:BOOL=ON" + "-DCTK_LIB_Visualization/VTK/Widgets:BOOL=ON" ; \ + "-DCTK_LIB_Visualization/VTK/Widgets_USE_TRANSFER_FUNCTION_CHARTS:BOOL=ON" ; -> Needs GuiSupportQT + "-DCTK_LIB_ImageProcessing/ITK/Core:BOOL=ON" ; / + "-DCTK_LIB_PluginFramework:BOOL=OFF" + "-DCTK_PLUGIN_org.commontk.eventbus:BOOL=OFF" + ;; ---------------------- PythonQt wrapping ---------------------- + "-DCTK_LIB_Scripting/Python/Core:BOOL=OFF" + "-DCTK_LIB_Scripting/Python/Core_PYTHONQT_USE_VTK:BOOL=OFF" + "-DCTK_LIB_Scripting/Python/Core_PYTHONQT_WRAP_QTCORE:BOOL=OFF" + "-DCTK_LIB_Scripting/Python/Core_PYTHONQT_WRAP_QTGUI:BOOL=OFF" + "-DCTK_LIB_Scripting/Python/Core_PYTHONQT_WRAP_QTUITOOLS:BOOL=OFF" + "-DCTK_LIB_Scripting/Python/Core_PYTHONQT_WRAP_QTNETWORK:BOOL=OFF" + "-DCTK_LIB_Scripting/Python/Core_PYTHONQT_WRAP_QTMULTIMEDIA:BOOL=OFF" + "-DCTK_LIB_Scripting/Python/Core_PYTHONQT_WRAP_QTWEBKIT:BOOL=OFF" + "-DCTK_LIB_Scripting/Python/Widgets:BOOL=OFF" + "-DCTK_ENABLE_Python_Wrapping:BOOL=OFF" + (string-append "-DDCMTK_DIR:PATH=" + #$(this-package-input "dcmtk") + "/lib/cmake/dcmtk") + ))) + (inputs + (list qtbase-5 + qttools-5 + qtsvg-5 + dcmtk + vtk-slicer + itk-slicer ; --- Libraries for Visualization VTK widgets and ITK core --- hdf5-1.10 python @@ -111,8 +121,8 @@ (home-page "github.com/commontk/CTK") (synopsis "A set of common support code for medical imaging, surgical navigation, and related purposes. ") - (description - "The goal of CTK is to support biomedical image computing. CTK + (description + "The goal of CTK is to support biomedical image computing. CTK code is licensed under Apache 2.0. This means that users of CTK are allowed to use the code for academic, commercial, or other purposes without paying license fees or being restricted in their ability to redistribute their code or keep it @@ -122,30 +132,30 @@ CTK works on topics that are not covered by existing toolkits that support the mutual interest and needs of the CTK community. The main scope of current CTK efforts includes the topics DICOM, DICOM Application Hosting, Widgets, and Plugin Framework.") - (license license:asl2.0))) + (license license:asl2.0))) (define-public ctkapplauncher (package - (name "ctkapplauncher") - (version "0.1") - (source - (origin - (method url-fetch) - (uri - "https://github.com/commontk/AppLauncher/archive/8759e03985738b8a8f3eb74ab516ba4e8ef29988.tar.gz") - (sha256 - (base32 "1lrrcg9s39n357z2dhfhv8ff99biivdnwwxaggwvnpv9knppaz83")))) - (build-system cmake-build-system) - (arguments - '(#:tests? #f - #:configure-flags (list "-DBUILD_TESTING=OFF" - "-DCTKAppLauncher_QT_VERSION=5" - "-DCTKAppLauncher_INSTALL_LauncherLibrary=ON" - ))) - (inputs (list qtbase-5)) - (home-page "http://www.commontk.org/") - (synopsis - "Simple and small program allowing to set the environment of any executable.") - (description - "Simple and small program allowing to set the environment of any executable.") - (license license:asl2.0))) + (name "ctkapplauncher") + (version "0.1") + (source + (origin + (method url-fetch) + (uri + "https://github.com/commontk/AppLauncher/archive/8759e03985738b8a8f3eb74ab516ba4e8ef29988.tar.gz") + (sha256 + (base32 "1lrrcg9s39n357z2dhfhv8ff99biivdnwwxaggwvnpv9knppaz83")))) + (build-system cmake-build-system) + (arguments + '(#:tests? #f + #:configure-flags (list "-DBUILD_TESTING=OFF" + "-DCTKAppLauncher_QT_VERSION=5" + "-DCTKAppLauncher_INSTALL_LauncherLibrary=ON" + ))) + (inputs (list qtbase-5)) + (home-page "http://www.commontk.org/") + (synopsis + "Simple and small program allowing to set the environment of any executable.") + (description + "Simple and small program allowing to set the environment of any executable.") + (license license:asl2.0))) diff --git a/guix-systole/packages/itk.scm b/guix-systole/packages/itk.scm index 51c5957..974eb55 100644 --- a/guix-systole/packages/itk.scm +++ b/guix-systole/packages/itk.scm @@ -48,7 +48,6 @@ "-DBUILD_EXAMPLES:BOOL=OFF" "-DITK_WRAPPING:BOOL=OFF" "-DITK_BUILD_DEFAULT_MODULES:BOOL=ON" - "-DITK_INSTALL_NO_DEVELOPMENT:BOOL=ON" "-DITK_WRAP_PYTHON:BOOL=OFF" "-DKWSYS_USE_MD5:BOOL=ON" ;Required by SlicerExecutionModel "-DITK_USE_SYSTEM_DCMTK:BOOL=ON" @@ -71,7 +70,7 @@ "-DITK_LEGACY_REMOVE:BOOL=OFF" ;<-- Allow LEGACY ITKv4 features for now. "-DITK_LEGACY_SILENT:BOOL=OFF" ;<-- Use of legacy code will produce compiler warnings "-DModule_ITKDeprecated:BOOL=ON" ;<-- Needed for ITKv5 now. (itkMultiThreader.h and MutexLock backwards compatibility.) - + ;; Optimization "-DITK_CXX_OPTIMIZATION_FLAGS:STRING=" ;Force compiler-default instruction set to ensure compatibility with older CPUs "-DITK_C_OPTIMIZATION_FLAGS:STRING=" ;Force compiler-default instruction set to ensure compatibility with older CPUs diff --git a/guix-systole/packages/patches/ctk/0001-ENH-Allow-passing-DCMTK_DIR-for-system-DCMTK.patch b/guix-systole/packages/patches/ctk/0001-ENH-Allow-passing-DCMTK_DIR-for-system-DCMTK.patch new file mode 100644 index 0000000..bed4795 --- /dev/null +++ b/guix-systole/packages/patches/ctk/0001-ENH-Allow-passing-DCMTK_DIR-for-system-DCMTK.patch @@ -0,0 +1,52 @@ +From 496cb3feca5b34185382f62a93539f7b810f15e9 Mon Sep 17 00:00:00 2001 +From: Rafael Palomar +Date: Sat, 10 May 2025 13:05:32 +0200 +Subject: [PATCH] ENH: Allow passing DCMTK_DIR for system DCMTK + +--- + CMakeExternals/DCMTK.cmake | 15 ++++++++------- + 1 file changed, 8 insertions(+), 7 deletions(-) + +diff --git a/CMakeExternals/DCMTK.cmake b/CMakeExternals/DCMTK.cmake +index afd37880..32dfbb8c 100644 +--- a/CMakeExternals/DCMTK.cmake ++++ b/CMakeExternals/DCMTK.cmake +@@ -6,13 +6,6 @@ set(proj DCMTK) + + set(${proj}_DEPENDENCIES "") + +-ExternalProject_Include_Dependencies(${proj} +- PROJECT_VAR proj +- DEPENDS_VAR ${proj}_DEPENDENCIES +- EP_ARGS_VAR ${proj}_EXTERNAL_PROJECT_ARGS +- USE_SYSTEM_VAR ${CMAKE_PROJECT_NAME}_USE_SYSTEM_${proj} +- ) +- + # Let the user to chose whether to use libs installed in the system + option(${CMAKE_PROJECT_NAME}_USE_SYSTEM_${proj} "Use installed ${proj} library in the system" OFF) + mark_as_advanced(${CMAKE_PROJECT_NAME}_USE_SYSTEM_${proj}) +@@ -20,6 +13,7 @@ mark_as_advanced(${CMAKE_PROJECT_NAME}_USE_SYSTEM_${proj}) + if(${CMAKE_PROJECT_NAME}_USE_SYSTEM_${proj}) + unset(DCMTK_DIR CACHE) + find_package(DCMTK REQUIRED) ++ message(FATAL_ERROR ${DCMTK_LIBRARIES}) + endif() + + # Sanity checks +@@ -27,6 +21,13 @@ if(DEFINED DCMTK_DIR AND NOT EXISTS ${DCMTK_DIR}) + message(FATAL_ERROR "DCMTK_DIR variable is defined but corresponds to non-existing directory") + endif() + ++ExternalProject_Include_Dependencies(${proj} ++ PROJECT_VAR proj ++ DEPENDS_VAR ${proj}_DEPENDENCIES ++ EP_ARGS_VAR ${proj}_EXTERNAL_PROJECT_ARGS ++ USE_SYSTEM_VAR ${CMAKE_PROJECT_NAME}_USE_SYSTEM_${proj} ++ ) ++ + if(NOT DEFINED DCMTK_DIR AND NOT ${CMAKE_PROJECT_NAME}_USE_SYSTEM_${proj}) + set(revision_tag "11972eaa4ecdbf3aab0f46eff78f33d7e2b16bfe") # patched-DCMTK-3.6.6_20210115 + if(${proj}_REVISION_TAG) +-- +2.49.0 + diff --git a/guix-systole/packages/patches/ctk/0001-ENH-Fix-locating-DCMTK-when-using-CTK.patch b/guix-systole/packages/patches/ctk/0001-ENH-Fix-locating-DCMTK-when-using-CTK.patch new file mode 100644 index 0000000..807ebee --- /dev/null +++ b/guix-systole/packages/patches/ctk/0001-ENH-Fix-locating-DCMTK-when-using-CTK.patch @@ -0,0 +1,57 @@ +From e7cf054817a8bbc1fbd5c17ef31af41a92d376ee Mon Sep 17 00:00:00 2001 +From: Rafael Palomar +Date: Sun, 11 May 2025 07:50:52 +0200 +Subject: [PATCH] ENH: Fix locating DCMTK when using CTK + +--- + CMake/CTKConfig.cmake.in | 4 ++++ + CMakeExternals/DCMTK.cmake | 14 +++++++------- + 2 files changed, 11 insertions(+), 7 deletions(-) + +diff --git a/CMake/CTKConfig.cmake.in b/CMake/CTKConfig.cmake.in +index dc3e5f8c..4e995317 100644 +--- a/CMake/CTKConfig.cmake.in ++++ b/CMake/CTKConfig.cmake.in +@@ -124,3 +124,7 @@ SET(CTK_BUILD_TYPE @CTK_BUILD_TYPE_CONFIG@) + + # CTK external projects variables + @CTK_SUPERBUILD_EP_VARS_CONFIG@ ++ ++set(DCMTK_DIR @DCMTK_DIR@) ++include(CMakeFindDependencyMacro) ++find_dependency(DCMTK) +diff --git a/CMakeExternals/DCMTK.cmake b/CMakeExternals/DCMTK.cmake +index afd37880..2009c487 100644 +--- a/CMakeExternals/DCMTK.cmake ++++ b/CMakeExternals/DCMTK.cmake +@@ -6,13 +6,6 @@ set(proj DCMTK) + + set(${proj}_DEPENDENCIES "") + +-ExternalProject_Include_Dependencies(${proj} +- PROJECT_VAR proj +- DEPENDS_VAR ${proj}_DEPENDENCIES +- EP_ARGS_VAR ${proj}_EXTERNAL_PROJECT_ARGS +- USE_SYSTEM_VAR ${CMAKE_PROJECT_NAME}_USE_SYSTEM_${proj} +- ) +- + # Let the user to chose whether to use libs installed in the system + option(${CMAKE_PROJECT_NAME}_USE_SYSTEM_${proj} "Use installed ${proj} library in the system" OFF) + mark_as_advanced(${CMAKE_PROJECT_NAME}_USE_SYSTEM_${proj}) +@@ -27,6 +20,13 @@ if(DEFINED DCMTK_DIR AND NOT EXISTS ${DCMTK_DIR}) + message(FATAL_ERROR "DCMTK_DIR variable is defined but corresponds to non-existing directory") + endif() + ++ExternalProject_Include_Dependencies(${proj} ++ PROJECT_VAR proj ++ DEPENDS_VAR ${proj}_DEPENDENCIES ++ EP_ARGS_VAR ${proj}_EXTERNAL_PROJECT_ARGS ++ USE_SYSTEM_VAR ${CMAKE_PROJECT_NAME}_USE_SYSTEM_${proj} ++ ) ++ + if(NOT DEFINED DCMTK_DIR AND NOT ${CMAKE_PROJECT_NAME}_USE_SYSTEM_${proj}) + set(revision_tag "11972eaa4ecdbf3aab0f46eff78f33d7e2b16bfe") # patched-DCMTK-3.6.6_20210115 + if(${proj}_REVISION_TAG) +-- +2.49.0 + diff --git a/guix-systole/packages/patches/qrestapi/0001-ENH-Refactor-CMake-project-infrastructure.patch b/guix-systole/packages/patches/qrestapi/0001-ENH-Refactor-CMake-project-infrastructure.patch new file mode 100644 index 0000000..fa82530 --- /dev/null +++ b/guix-systole/packages/patches/qrestapi/0001-ENH-Refactor-CMake-project-infrastructure.patch @@ -0,0 +1,281 @@ +From 53f41c40c0388a35d53a15aea874c9533c24ae65 Mon Sep 17 00:00:00 2001 +From: Rafael Palomar +Date: Sat, 13 Jan 2024 13:16:42 +0100 +Subject: [PATCH] ENH: Refactor CMake project infrastructure + +- Removed old configuration and use CMake files in favor of`qRestAPIConfig.cmake.in` +- Enable install configuration through implementation of qRestAPIInstallConfig.cmake.in +- Enabled installation of development files. + +Source of this patch: +https://github.com/SystoleOS/gentoo-overlay/blob/master/dev-libs/qRestAPI/files/0001-ENH-Refactor-CMake-project-infrastructure.patch + +--- + CMake/GenerateqRestAPIConfig.cmake | 20 ----- + CMake/UseqRestAPI.cmake.in | 16 ---- + CMake/qRestAPIConfig.cmake.in | 14 ---- + CMakeLists.txt | 118 ++++++++++++++++++++++++++++- + qRestAPIConfig.cmake.in | 5 ++ + qRestAPIInstallConfig.cmake.in | 3 + + 6 files changed, 124 insertions(+), 52 deletions(-) + delete mode 100644 CMake/GenerateqRestAPIConfig.cmake + delete mode 100644 CMake/UseqRestAPI.cmake.in + delete mode 100644 CMake/qRestAPIConfig.cmake.in + create mode 100644 qRestAPIConfig.cmake.in + create mode 100644 qRestAPIInstallConfig.cmake.in + +diff --git a/CMake/GenerateqRestAPIConfig.cmake b/CMake/GenerateqRestAPIConfig.cmake +deleted file mode 100644 +index d82da7a..0000000 +--- a/CMake/GenerateqRestAPIConfig.cmake ++++ /dev/null +@@ -1,20 +0,0 @@ +- +-configure_file( +- ${qRestAPI_SOURCE_DIR}/CMake/UseqRestAPI.cmake.in +- ${qRestAPI_BINARY_DIR}/UseqRestAPI.cmake COPYONLY) +- +-# Include directories +-set(qRestAPI_INCLUDE_DIRS_CONFIG ${qRestAPI_INCLUDE_DIRS}) +- +-# Library directories +-set(qRestAPI_LIBRARY_DIRS_CONFIG ${qRestAPI_BINARY_DIR}) +- +-# UseqRestAPI file +-set(qRestAPI_USE_FILE_CONFIG ${qRestAPI_BINARY_DIR}/UseqRestAPI.cmake) +- +-export(TARGETS qRestAPI FILE ${qRestAPI_BINARY_DIR}/qRestAPIExports.cmake) +- +-# Configure qRestAPIConfig.cmake +-configure_file( +- ${qRestAPI_SOURCE_DIR}/CMake/qRestAPIConfig.cmake.in +- ${qRestAPI_BINARY_DIR}/qRestAPIConfig.cmake @ONLY) +diff --git a/CMake/UseqRestAPI.cmake.in b/CMake/UseqRestAPI.cmake.in +deleted file mode 100644 +index 4275caa..0000000 +--- a/CMake/UseqRestAPI.cmake.in ++++ /dev/null +@@ -1,16 +0,0 @@ +-# +-# This module is provided as qCDashAPI_USE_FILE by qCDashAPIConfig.cmake. It can +-# be INCLUDED in a project to load the needed compiler and linker +-# settings to use qRestAPI. +-# +- +-if(NOT qRestAPI_USE_FILE_INCLUDED) +- set(qRestAPI_USE_FILE_INCLUDED 1) +- +- # Add include directories needed to use qRestAPI. +- include_directories(${qRestAPI_INCLUDE_DIRS}) +- +- # Add link directories needed to use qRestAPI. +- link_directories(${qRestAPI_LIBRARY_DIRS}) +- +-endif() +diff --git a/CMake/qRestAPIConfig.cmake.in b/CMake/qRestAPIConfig.cmake.in +deleted file mode 100644 +index ee15dd2..0000000 +--- a/CMake/qRestAPIConfig.cmake.in ++++ /dev/null +@@ -1,14 +0,0 @@ +- +-# Import qRestAPI targets +-if(NOT qRestAPI_EXPORTS_INCLUDED) +- include("@qRestAPI_BINARY_DIR@/qRestAPIExports.cmake") +- set(qRestAPI_EXPORTS_INCLUDED 1) +-endif() +- +-set(qRestAPI_LIBRARIES "qRestAPI") +- +-set(qRestAPI_INCLUDE_DIRS "@qRestAPI_INCLUDE_DIRS_CONFIG@") +-set(qRestAPI_LIBRARY_DIRS "@qRestAPI_LIBRARY_DIRS_CONFIG@") +- +-# The location of the UseqRestAPI.cmake file. +-set(qRestAPI_USE_FILE "@qRestAPI_USE_FILE_CONFIG@") +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 9c3e905..29fe52b 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -2,13 +2,45 @@ cmake_minimum_required(VERSION 3.5.0) + + project(qRestAPI) + ++# -------------------------------------------------------------------------- ++# CMake variables ++# -------------------------------------------------------------------------- + set(CMAKE_INCLUDE_CURRENT_DIR 1) + set(CMAKE_INCLUDE_CURRENT_DIR_IN_INTERFACE 1) + set(CMAKE_POSITION_INDEPENDENT_CODE 1) + ++# -------------------------------------------------------------------------- ++# Directories ++# -------------------------------------------------------------------------- ++# ++# CMake ++# ++set(${PROJECT_NAME}_CMAKE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/CMake) ++set(CMAKE_MODULE_PATH ${qRestAPI_CMAKE_DIR} ${CMAKE_MODULE_PATH}) ++# ++# Include ++# ++set(${PROJECT_NAME}_INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR} ++ CACHE INTERNAL "${PROJECT_NAME} include dirs" FORCE) ++# ++# Library ++# ++set(${PROJECT_NAME}_LIBRARY_DIRS ${CMAKE_CURRENT_BINARY_DIR} ++ CACHE INTERNAL "${PROJECT_NAME} library dirs" FORCE) ++ ++# -------------------------------------------------------------------------- ++# Options ++# -------------------------------------------------------------------------- + option(BUILD_SHARED_LIBS "Build shared library" ON) + option(BUILD_TESTING "Test the project" ON) + ++# -------------------------------------------------------------------------- ++# Dependencies ++# -------------------------------------------------------------------------- ++ ++# ++# Qt ++# + set(qRestAPI_QT_VERSION "4" CACHE STRING "Expected Qt version") + mark_as_advanced(qRestAPI_QT_VERSION) + set_property(CACHE qRestAPI_QT_VERSION PROPERTY STRINGS 4 5 6) +@@ -36,6 +68,9 @@ else() + set(qRestAPI_STATIC ON) + endif() + ++# -------------------------------------------------------------------------- ++# Configure headers ++# -------------------------------------------------------------------------- + configure_file( + qRestAPI_Export.h.in + ${CMAKE_CURRENT_BINARY_DIR}/qRestAPI_Export.h +@@ -53,6 +88,34 @@ set(KIT_SRCS + qRestResult.h + ) + ++# -------------------------------------------------------------------------- ++# Install headers ++# -------------------------------------------------------------------------- ++if(NOT DEFINED ${PROJECT_NAME}_INSTALL_NO_DEVELOPMENT) ++ set(${PROJECT_NAME}_INSTALL_NO_DEVELOPMENT ON) ++endif() ++ ++if(NOT ${PROJECT_NAME}_INSTALL_NO_DEVELOPMENT) ++ ++ if(NOT DEFINED ${PROJECT_NAME}_INSTALL_INCLUDE_DIR) ++ set(${PROJECT_NAME}_INSTALL_INCLUDE_DIR include/${PROJECT_NAME}) ++ endif() ++ ++ file(GLOB headers "${CMAKE_CURRENT_SOURCE_DIR}/*.h") ++ install( ++ FILES ${headers} ++ DESTINATION ${${PROJECT_NAME}_INSTALL_INCLUDE_DIR} COMPONENT Development) ++ ++ file(GLOB headers "${CMAKE_CURRENT_BINARY_DIR}/*.h") ++ install( ++ FILES ${headers} ++ DESTINATION ${${PROJECT_NAME}_INSTALL_INCLUDE_DIR} COMPONENT Development) ++endif() ++ ++# -------------------------------------------------------------------------- ++# Sources ++# -------------------------------------------------------------------------- ++ + set(KIT_MOC_SRCS + qGirderAPI.h + qMidasAPI.h +@@ -69,6 +132,9 @@ else() + QT4_WRAP_CPP(KIT_MOC_OUTPUT ${KIT_MOC_SRCS}) + endif() + ++# -------------------------------------------------------------------------- ++# Build qRestAPI library ++# -------------------------------------------------------------------------- + add_library(${PROJECT_NAME} ${KIT_SRCS} ${KIT_MOC_OUTPUT}) + if(qRestAPI_QT_VERSION VERSION_GREATER "4") + target_link_libraries(${PROJECT_NAME} Qt${qRestAPI_QT_VERSION}::Gui Qt${qRestAPI_QT_VERSION}::Network Qt${qRestAPI_QT_VERSION}::Qml) +@@ -76,9 +142,57 @@ else() + target_link_libraries(${PROJECT_NAME} ${QT_LIBRARIES}) + endif() + +-include(CTest) ++# -------------------------------------------------------------------------- ++# Install library ++# -------------------------------------------------------------------------- ++if(NOT DEFINED ${PROJECT_NAME}_INSTALL_BIN_DIR) ++ set(${PROJECT_NAME}_INSTALL_BIN_DIR bin) ++endif() ++if(NOT DEFINED ${PROJECT_NAME}_INSTALL_LIB_DIR) ++ set(${PROJECT_NAME}_INSTALL_LIB_DIR lib) ++endif() ++ ++install(TARGETS ${PROJECT_NAME} ++ RUNTIME DESTINATION ${${PROJECT_NAME}_INSTALL_BIN_DIR} COMPONENT RuntimeLibraries ++ LIBRARY DESTINATION ${${PROJECT_NAME}_INSTALL_LIB_DIR} COMPONENT RuntimeLibraries ++ ARCHIVE DESTINATION ${${PROJECT_NAME}_INSTALL_LIB_DIR} COMPONENT Development ++ ) ++ ++# -------------------------------------------------------------------------- ++# Configure support files ++# -------------------------------------------------------------------------- ++# Set qRestAPI_INSTALL_CMAKE_DIR ++if(NOT DEFINED ${PROJECT_NAME}_INSTALL_CMAKE_DIR) ++ set(${PROJECT_NAME}_INSTALL_CMAKE_DIR lib/cmake/${PROJECT_NAME}) ++endif() ++ ++export(TARGETS qRestAPI FILE ${qRestAPI_BINARY_DIR}/qRestAPIExports.cmake) ++ ++# Configure qRestAPIConfig.cmake ++configure_file( ++ ${qRestAPI_SOURCE_DIR}/qRestAPIConfig.cmake.in ++ ${qRestAPI_BINARY_DIR}/qRestAPIConfig.cmake @ONLY) ++ ++# Configure qRestAPIConfig.cmake ++configure_file( ++ ${qRestAPI_SOURCE_DIR}/qRestAPIInstallConfig.cmake.in ++ ${qRestAPI_BINARY_DIR}/install/qRestAPIConfig.cmake @ONLY) ++ ++# -------------------------------------------------------------------------- ++# Install configuration files ++# -------------------------------------------------------------------------- ++ ++# Install qRestAPIConfig cmake files ++install( ++ FILES ++ ${CMAKE_CURRENT_BINARY_DIR}/install/qRestAPIConfig.cmake ++ DESTINATION ${${PROJECT_NAME}_INSTALL_CMAKE_DIR} COMPONENT Development ++ ) ++ ++# -------------------------------------------------------------------------- ++# Testing + if(BUILD_TESTING) ++include(CTest) + add_subdirectory(Testing) + endif() + +-include(CMake/GenerateqRestAPIConfig.cmake) +diff --git a/qRestAPIConfig.cmake.in b/qRestAPIConfig.cmake.in +new file mode 100644 +index 0000000..627aca1 +--- /dev/null ++++ b/qRestAPIConfig.cmake.in +@@ -0,0 +1,5 @@ ++include("${CMAKE_CURRENT_BINARY_DIR}/qRestAPIExports.cmake") ++ ++set(qRestAPI_CMAKE_DIR "@qRestAPI_CMAKE_DIR@") ++set(qRestAPI_INCLUDE_DIRS "@qRestAPI_INCLUDE_DIRS@") ++set(qRestAPI_LIBRARY_DIRS "@qRestAPI_LIBRARY_DIRS@") +diff --git a/qRestAPIInstallConfig.cmake.in b/qRestAPIInstallConfig.cmake.in +new file mode 100644 +index 0000000..87be75d +--- /dev/null ++++ b/qRestAPIInstallConfig.cmake.in +@@ -0,0 +1,3 @@ ++set(qRestAPI_CMAKE_DIR "@CMAKE_INSTALL_PREFIX@/@qRestAPI_INSTALL_CMAKE_DIR@") ++set(qRestAPI_INCLUDE_DIRS "@CMAKE_INSTALL_PREFIX@/@qRestAPI_INSTALL_INCLUDE_DIR@") ++set(qRestAPI_LIB_DIR "@CMAKE_INSTALL_PREFIX@/@qRestAPI_INSTALL_LIB_DIR@") +-- +2.43.0 diff --git a/guix-systole/packages/patches/slicer/0001-COMP-Add-vtk-CommonSystem-component-as-requirement.patch b/guix-systole/packages/patches/slicer/0001-COMP-Add-vtk-CommonSystem-component-as-requirement.patch index fc98565..5825fad 100644 --- a/guix-systole/packages/patches/slicer/0001-COMP-Add-vtk-CommonSystem-component-as-requirement.patch +++ b/guix-systole/packages/patches/slicer/0001-COMP-Add-vtk-CommonSystem-component-as-requirement.patch @@ -1,7 +1,7 @@ From 223dd2e2c11d13c1f2944eb0a3cdb93491cf301e Mon Sep 17 00:00:00 2001 From: Rafael Palomar Date: Tue, 24 Jan 2023 09:51:51 +0100 -Subject: [PATCH 1/8] COMP: Add vtk CommonSystem component as requirement +Subject: [PATCH 01/11] COMP: Add vtk CommonSystem component as requirement --- CMakeLists.txt | 1 + diff --git a/guix-systole/packages/patches/slicer/0001-COMP-Fix-path-for-SlicerConfig.cmake-and-SlicerConfi.patch b/guix-systole/packages/patches/slicer/0001-COMP-Fix-path-for-SlicerConfig.cmake-and-SlicerConfi.patch new file mode 100644 index 0000000..255ec76 --- /dev/null +++ b/guix-systole/packages/patches/slicer/0001-COMP-Fix-path-for-SlicerConfig.cmake-and-SlicerConfi.patch @@ -0,0 +1,351 @@ +From 02ddeaff44292c3c9118f78bf227802f37f6aaec Mon Sep 17 00:00:00 2001 +From: Rafael Palomar +Date: Tue, 6 May 2025 19:01:32 +0200 +Subject: [PATCH 1/2] COMP: Fix path for SlicerConfig.cmake and + SlicerConfigVersion.cmake + +--- + CMake/SlicerInstallConfig.cmake.in | 79 ++++++++++++++++++-------- + CMake/SlicerMacroBuildModuleMRML.cmake | 4 +- + CMake/UseSlicer.cmake.in | 19 ++++++- + CMakeLists.txt | 55 ++++++++++++------ + SuperBuild/External_VTK.cmake | 2 +- + 5 files changed, 113 insertions(+), 46 deletions(-) + +diff --git a/CMake/SlicerInstallConfig.cmake.in b/CMake/SlicerInstallConfig.cmake.in +index 4d13a50a23..dc9c251818 100644 +--- a/CMake/SlicerInstallConfig.cmake.in ++++ b/CMake/SlicerInstallConfig.cmake.in +@@ -39,8 +39,41 @@ get_filename_component(Slicer_CONFIG_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH) + set(Slicer_HOME "${Slicer_CONFIG_DIR}/../..") + get_filename_component(Slicer_HOME ${Slicer_HOME} ABSOLUTE) + +-# The CMake macros dir. ++# The CMake macros directories. + set(Slicer_CMAKE_DIR "${Slicer_HOME}/@Slicer_INSTALL_LIB_DIR@/CMake") ++set(CTK_CMAKE_DIR "@CTK_CMAKE_DIR@") ++ ++# Set the CMake module path ++list(APPEND CMAKE_MODULE_PATH ++ "${Slicer_CMAKE_DIR}" ++ "${CTK_CMAKE_DIR}" ++ "@vtkAddon_CMAKE_DIR@" ++) ++ ++set(Slicer_USE_TBB "@Slicer_USE_TBB@") ++set(Slicer_SUPERBUILD "@Slicer_SUPERBUILD@") ++ ++if(NOT Slicer_SUPERBUILD) ++ set(Slicer_REQUIRED_QT_MODULES "@Slicer_REQUIRED_QT_MODULES@") ++ set(Qt5_DIR "@Qt5_DIR@") ++ set(Slicer_VTK_VERSION_MAJOR "@Slicer_VTK_VERSION_MAJOR@") ++ set(Slicer_VTK_VERSION_MINOR "@Slicer_VTK_VERSION_MINOR@") ++ set(Slicer_VTK_COMPONENTS "@Slicer_VTK_COMPONENTS@") ++ set(VTK_DIR "@VTK_DIR@") ++ set(ITK_DIR "@ITK_DIR@") ++ set(HDF5_LIBRARIES "@HDF5_LIBRARIES@") ++ set(HDF5_INCLUDE_DIRS "@HDF5_INCLUDE_DIRS@") ++ set(vtkAddon_DIR "@vtkAddon_DIR@") ++ if(Slicer_USE_TBB) ++ set(TBB_DIR "@TBB_DIR@") ++ endif() ++ set(CTK_DIR "@CTK_DIR@") ++endif() ++ ++# Set the Slicer_EXPORT_HEADER_TEMPLATE to the install dir ++set(Slicer_EXPORT_HEADER_TEMPLATE "@Slicer_INSTALL_TEMPLATES_DIR@/qSlicerExport.h.in") ++ ++set(Slicer_BUILD_CLI_SUPPORT "@Slicer_BUILD_CLI_SUPPORT@") + + # Slicer Libs library directories. + set(Slicer_Libs_LIBRARY_DIRS +@@ -64,19 +97,17 @@ set(Slicer_Libs_LIBRARY_DIRS + + # Slicer Libs include file directories. + set(Slicer_Libs_INCLUDE_DIRS +- "${Slicer_HOME}/include/IGT" +- "${Slicer_HOME}/include/ITKCommandIO" +- "${Slicer_HOME}/include/LoadableModule" +- "${Slicer_HOME}/include/MGHImageIO" +- "${Slicer_HOME}/include/MRML" +- "${Slicer_HOME}/include/MRMLIDImageIO" +- "${Slicer_HOME}/include/ModuleDescriptionParser" +- "${Slicer_HOME}/include/Qdec" +- "${Slicer_HOME}/include/tclap" +- "${Slicer_HOME}/include/vtkAddon" ++ "${Slicer_HOME}/include/ITKFactoryRegistration" ++ "${Slicer_HOME}/include/MRMLCore" ++ "${Slicer_HOME}/include/MRMLDisplayableManager" ++ "${Slicer_HOME}/include/MRMLLogic" ++ "${Slicer_HOME}/include/qMRMLWidgets" ++ "${Slicer_HOME}/include/RemoteIO" + "${Slicer_HOME}/include/vtkITK" + "${Slicer_HOME}/include/vtkSegmentationCore" + "${Slicer_HOME}/include/vtkTeem" ++ "${Slicer_HOME}/include/qSlicerBaseQTGUI" ++ "@vtkAddon_INCLUDE_DIRS@" + ) + + # Slicer Base library directories. +@@ -119,16 +150,16 @@ endif() + + # Components needed to build modules from outside a Slicer build tree or + # from outside a Slicer installation tree +-set(TCLAP_DIR "${Slicer_HOME}/lib/tclap") +-set(ModuleDescriptionParser_DIR "${Slicer_HOME}/lib/ModuleDescriptionParser") +-set(GenerateCLP_DIR "${Slicer_HOME}/lib/GenerateCLP") +-set(GenerateLM_DIR "${Slicer_HOME}/lib/GenerateLM") +-set(ITK_DIR "${Slicer_HOME}/lib/${ITK_LIB_DIR}") +-set(LoadableModule_DIR "${Slicer_HOME}/lib/LoadableModule") +-set(Teem_DIR "${Slicer_HOME}/lib/Teem-@Teem_VERSION_MAJOR@.@Teem_VERSION_MINOR@.@Teem_VERSION_PATCH@") +-set(VTK_DIR "${Slicer_HOME}/lib/vtk-@VTK_MAJOR_VERSION@.@VTK_MINOR_VERSION@") +-set(PYTHON_INCLUDE_PATH "@PYTHON_INCLUDE_PATH@") +-get_filename_component(PYTHON_LIB_FILE "${PYTHON_LIBRARY}" NAME) +-set(PYTHON_LIBRARIES "${Slicer_HOME}/lib/Python/lib/${PYTHON_LIB_FILE}") +-get_filename_component(PYTHON_INCLUDE_DIR "${PYTHON_INCLUDE_PATH}" NAME) +-set(PYTHON_INCLUDE_PATH "${Slicer_HOME}/lib/Python/include/${PYTHON_INCLUDE_DIR}") ++# set(TCLAP_DIR "${Slicer_HOME}/lib/tclap") ++# set(ModuleDescriptionParser_DIR "${Slicer_HOME}/lib/ModuleDescriptionParser") ++# set(GenerateCLP_DIR "${Slicer_HOME}/lib/GenerateCLP") ++# set(GenerateLM_DIR "${Slicer_HOME}/lib/GenerateLM") ++# set(ITK_DIR "${Slicer_HOME}/lib/${ITK_LIB_DIR}") ++# set(LoadableModule_DIR "${Slicer_HOME}/lib/LoadableModule") ++# set(Teem_DIR "${Slicer_HOME}/lib/Teem-@Teem_VERSION_MAJOR@.@Teem_VERSION_MINOR@.@Teem_VERSION_PATCH@") ++# set(VTK_DIR "${Slicer_HOME}/lib/vtk-@VTK_MAJOR_VERSION@.@VTK_MINOR_VERSION@") ++# set(PYTHON_INCLUDE_PATH "@PYTHON_INCLUDE_PATH@") ++# get_filename_component(PYTHON_LIB_FILE "${PYTHON_LIBRARY}" NAME) ++# set(PYTHON_LIBRARIES "${Slicer_HOME}/lib/Python/lib/${PYTHON_LIB_FILE}") ++# get_filename_component(PYTHON_INCLUDE_DIR "${PYTHON_INCLUDE_PATH}" NAME) ++# set(PYTHON_INCLUDE_PATH "${Slicer_HOME}/lib/Python/include/${PYTHON_INCLUDE_DIR}") +diff --git a/CMake/SlicerMacroBuildModuleMRML.cmake b/CMake/SlicerMacroBuildModuleMRML.cmake +index 061cf2f126..b48552c950 100644 +--- a/CMake/SlicerMacroBuildModuleMRML.cmake ++++ b/CMake/SlicerMacroBuildModuleMRML.cmake +@@ -68,7 +68,7 @@ macro(SlicerMacroBuildModuleMRML) + FOLDER ${MODULEMRML_FOLDER} + SRCS ${MODULEMRML_SRCS} + INCLUDE_DIRECTORIES ${MODULEMRML_INCLUDE_DIRECTORIES} +- TARGET_LIBRARIES ${MODULEMRML_TARGET_LIBRARIES} ++ TARGET_LIBRARIES ${MODULEMRML_TARGET_LIBRARIES} ${VTK_LIBRARIES} ${MRML_LIBRARIES} + ${MODULEMRML_NO_INSTALL_OPTION} + ) + +@@ -81,6 +81,8 @@ macro(SlicerMacroBuildModuleMRML) + ${Slicer_ModuleMRML_INCLUDE_DIRS} + ${CMAKE_CURRENT_SOURCE_DIR} + ${CMAKE_CURRENT_BINARY_DIR} ++ ${VTK_INCLUDE_DIRS} ++ ${MRML_INCLUDE_DIRS} + CACHE INTERNAL "Slicer Module MRML includes" FORCE) + + # -------------------------------------------------------------------------- +diff --git a/CMake/UseSlicer.cmake.in b/CMake/UseSlicer.cmake.in +index f80bd6884c..63eca84c5e 100644 +--- a/CMake/UseSlicer.cmake.in ++++ b/CMake/UseSlicer.cmake.in +@@ -53,6 +53,21 @@ function(_slicer_skip_message text) + endif() + endfunction() + ++# -------------------------------------------------------------------------- ++# Finding required packages ++# -------------------------------------------------------------------------- ++if(NOT Slicer_SUPERBUILD) ++ find_package(Qt5 COMPONENTS ${Slicer_REQUIRED_QT_MODULES} REQUIRED PATHS ${Qt5_DIR}) ++ find_package(VTK ${Slicer_VTK_VERSION_MAJOR} COMPONENTS ${Slicer_VTK_COMPONENTS} REQUIRED PATHS ${VTK_DIR}) ++ find_package(ITK REQUIRED PATHS ${ITK_DIR}) ++ include(${ITK_USE_FILE}) ++ find_package(vtkAddon REQUIRED PATHS ${vtkAddon_DIR}) ++ if(Slicer_USE_TBB) ++ find_package(TBB REQUIRED PATHS ${TBB_DIR}) ++ endif() ++ find_package(CTK REQUIRED PATHS ${CTK_DIR}) ++ include(${CTK_USE_FILE}) ++endif() + # -------------------------------------------------------------------------- + # Setting and checking EXTENSION_NAME + # -------------------------------------------------------------------------- +@@ -293,7 +308,7 @@ if(NOT Slicer_DONT_USE_EXTENSION) + # Set Slicer_EXTENSION_CMAKE_GENERATOR and EXTENSION_{COMPILER, ARCHITECTURE, BITNESS, OPERATING_SYSTEM} + #----------------------------------------------------------------------------- + +- include(SlicerBlockUploadExtensionPrerequisites) ++ #include(SlicerBlockUploadExtensionPrerequisites) + endif() + + #----------------------------------------------------------------------------- +@@ -409,7 +424,7 @@ if(NOT Slicer_DONT_USE_EXTENSION) + slicer_setting_variable_message("EXTENSION_BUILD_SUBDIRECTORY" SKIP_TRUNCATE) + + #----------------------------------------------------------------------------- +- include(SlicerExtensionDescriptionSpec) ++ #include(SlicerExtensionDescriptionSpec) + + foreach(var IN LISTS Slicer_EXT_OPTIONAL_METADATA_NAMES) + slicer_setting_variable_message(EXTENSION_${var}) +diff --git a/CMakeLists.txt b/CMakeLists.txt +index f7fdc5646c..bf0d4c903c 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -50,7 +50,10 @@ endif() + #----------------------------------------------------------------------------- + set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/CMake" ${CMAKE_MODULE_PATH}) + set(SUPERBUILD_TOPLEVEL_PROJECT Slicer) +-list(APPEND EXTERNAL_PROJECT_ADDITIONAL_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/SuperBuild) ++ ++if(Slicer_SUPERBUILD) ++ list(APPEND EXTERNAL_PROJECT_ADDITIONAL_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/SuperBuild) ++endif() + include(ExternalProject) + include(ExternalProjectDependency) + include(ExternalProjectDependencyForPython) +@@ -61,10 +64,11 @@ if(APPLE) + # Note: By setting CMAKE_OSX_* variables before any enable_language() or project() calls, + # we ensure that the bitness, and C++ standard library will be properly detected. + include(SlicerInitializeOSXVariables) ++ + mark_as_superbuild( + VARS CMAKE_OSX_ARCHITECTURES:STRING CMAKE_OSX_SYSROOT:PATH CMAKE_OSX_DEPLOYMENT_TARGET:STRING + ALL_PROJECTS +- ) ++ ) + + set(CMAKE_INSTALL_NAME_TOOL "" CACHE FILEPATH "" FORCE) + # Due to the possibility of external projects (e.g., LibFFI) enabling languages (e.g., ASM) +@@ -111,13 +115,6 @@ option(Slicer_SUPERBUILD "Build ${PROJECT_NAME} and the projects it depends on." + mark_as_advanced(Slicer_SUPERBUILD) + set(Slicer_BINARY_INNER_SUBDIR Slicer-build) + +-#----------------------------------------------------------------------------- +-# Include essential packages in non-superbuild +-#----------------------------------------------------------------------------- +-if(NOT SLICER_SUPERBUILD) +- find_package(ITK REQUIRED) +-endif() +- + #----------------------------------------------------------------------------- + include(CTestUseLaunchers OPTIONAL) + if(${CTEST_USE_LAUNCHERS}) +@@ -170,6 +167,7 @@ include(SlicerInitializeReleaseType) + # Set the header template which defines custom export/import macros + # for shared libraries + #----------------------------------------------------------------------------- ++set(Slicer_INSTALL_TEMPLATES_DIR "${CMAKE_INSTALL_PREFIX}/${Slicer_SHARE_DIR}/templates") + set(Slicer_EXPORT_HEADER_TEMPLATE "${Slicer_SOURCE_DIR}/CMake/qSlicerExport.h.in") + set(Slicer_LOGOS_RESOURCE "${Slicer_SOURCE_DIR}/Resources/qSlicer.qrc") + +@@ -214,14 +212,15 @@ if(NOT DEFINED Slicer_REQUIRED_QT_VERSION) + endif() + set(Slicer_REQUIRED_QT_VERSION ${_required_qt_version} CACHE STRING "Minimum required Qt version" FORCE) + endif() +-mark_as_superbuild(Slicer_REQUIRED_QT_VERSION) + ++mark_as_superbuild(Slicer_REQUIRED_QT_VERSION) + #----------------------------------------------------------------------------- + # Python requirements + #----------------------------------------------------------------------------- + if(NOT DEFINED Slicer_REQUIRED_PYTHON_VERSION) + set(Slicer_REQUIRED_PYTHON_VERSION "3.9.10") + endif() ++ + mark_as_superbuild(Slicer_REQUIRED_PYTHON_VERSION) + + if(NOT Slicer_REQUIRED_PYTHON_VERSION MATCHES "([0-9]+)\\.([0-9]+)\\.([0-9]+)") +@@ -672,6 +671,7 @@ endif() + WebChannel + ) + endif() ++ + # Both "extension manager" and "application update" require qRestApi external + # project itself depending on Qt's Qml module + if(Slicer_BUILD_EXTENSIONMANAGER_SUPPORT OR Slicer_BUILD_APPLICATIONUPDATE_SUPPORT) +@@ -891,6 +891,17 @@ endif() + # This means that moving forward most of the find_package calls listed below + # will be removed. + ++#----------------------------------------------------------------------------- ++# Include essential packages in non-superbuild ++#----------------------------------------------------------------------------- ++if(NOT Slicer_SUPERBUILD) ++ find_package(ITK REQUIRED) ++ find_package(vtkAddon REQUIRED) ++ if(Slicer_USE_TBB) ++ find_package(TBB REQUIRED) ++ endif() ++endif() ++ + #----------------------------------------------------------------------------- + # VTK + #----------------------------------------------------------------------------- +@@ -1122,7 +1133,7 @@ set(extensions_build_dir "${Slicer_BINARY_DIR}/E") + # Configure a no-op SlicerConfig and SlicerConfigVersion for bundled projects + set(Slicer_DIR ${extensions_build_dir}) + configure_file( +- ${Slicer_SOURCE_DIR}/CMake/SlicerConfig.cmake.in ++ ${Slicer_SOURCE_DIR}/CMake/SlicerInstallConfig.cmake.in + ${Slicer_DIR}/SlicerConfig.cmake @ONLY) + + configure_file( +@@ -1221,12 +1232,12 @@ add_dependencies(MRMLCore SlicerConfigureVersionHeader) + list(APPEND files vtkSlicerVersionConfigure.h) + + if(NOT Slicer_INSTALL_NO_DEVELOPMENT) +-foreach(f ${files}) +- install( +- FILES ${CMAKE_CURRENT_BINARY_DIR}/${f} +- DESTINATION ${Slicer_INSTALL_INCLUDE_DIR} COMPONENT Development ++ foreach(f ${files}) ++ install( ++ FILES ${CMAKE_CURRENT_BINARY_DIR}/${f} ++ DESTINATION ${Slicer_INSTALL_INCLUDE_DIR} COMPONENT Development + ) +-endforeach() ++ endforeach() + endif() + + #----------------------------------------------------------------------------- +@@ -1277,6 +1288,7 @@ endif() + # Install CMake modules + #----------------------------------------------------------------------------- + if(NOT Slicer_INSTALL_NO_DEVELOPMENT) ++ + file(GLOB cmake_files "${CMAKE_CURRENT_SOURCE_DIR}/CMake/*.cmake") + install( + FILES ${cmake_files} +@@ -1285,11 +1297,18 @@ if(NOT Slicer_INSTALL_NO_DEVELOPMENT) + + install(FILES + ${Slicer_BINARY_DIR}/UseSlicer.cmake +- ${Slicer_BINARY_DIR}/SlicerConfig.cmake +- ${Slicer_BINARY_DIR}/SlicerConfigVersion.cmake ++ ${extensions_build_dir}/SlicerConfig.cmake ++ ${extensions_build_dir}/SlicerConfigVersion.cmake + DESTINATION ${Slicer_INSTALL_LIB_DIR} + COMPONENT Development + ) ++ ++ install(FILES ++ ${CMAKE_CURRENT_SOURCE_DIR}/CMake/qSlicerExport.h.in ++ DESTINATION ${Slicer_INSTALL_TEMPLATES_DIR} ++ COMPONENT Development ++ ) ++ + endif() + + #----------------------------------------------------------------------------- +diff --git a/SuperBuild/External_VTK.cmake b/SuperBuild/External_VTK.cmake +index 375f490983..f7a1aca06c 100644 +--- a/SuperBuild/External_VTK.cmake ++++ b/SuperBuild/External_VTK.cmake +@@ -12,7 +12,7 @@ endif() + + # Include dependent projects if any + ExternalProject_Include_Dependencies(${proj} PROJECT_VAR proj DEPENDS_VAR ${proj}_DEPENDENCIES) +- ++message(FATAL_ERROR "pff") + if(Slicer_USE_SYSTEM_${proj}) + unset(VTK_DIR CACHE) + unset(VTK_SOURCE_DIR CACHE) +-- +2.49.0 + diff --git a/guix-systole/packages/patches/slicer/0002-COMP-Find-Eigen-required.patch b/guix-systole/packages/patches/slicer/0002-COMP-Find-Eigen-required.patch index 824d05f..bf56ab3 100644 --- a/guix-systole/packages/patches/slicer/0002-COMP-Find-Eigen-required.patch +++ b/guix-systole/packages/patches/slicer/0002-COMP-Find-Eigen-required.patch @@ -1,7 +1,7 @@ From 4e41ebe79d438074ad9150f6fc650d3a5e2454e4 Mon Sep 17 00:00:00 2001 From: Rafael Palomar Date: Tue, 24 Jan 2023 09:55:32 +0100 -Subject: [PATCH 2/8] COMP: Find Eigen (required) +Subject: [PATCH 02/11] COMP: Find Eigen (required) --- CMakeLists.txt | 5 +++++ diff --git a/guix-systole/packages/patches/slicer/0002-ENH-Fix-installation-of-development-files.patch b/guix-systole/packages/patches/slicer/0002-ENH-Fix-installation-of-development-files.patch new file mode 100644 index 0000000..35a8b44 --- /dev/null +++ b/guix-systole/packages/patches/slicer/0002-ENH-Fix-installation-of-development-files.patch @@ -0,0 +1,59 @@ +From 29a285739fd99e9fe6168164fa4dd8f1aa99e158 Mon Sep 17 00:00:00 2001 +From: Rafael Palomar +Date: Fri, 9 May 2025 23:04:34 +0200 +Subject: [PATCH 2/2] ENH: Fix installation of development files + +--- + CMake/SlicerInstallConfig.cmake.in | 2 +- + CMake/SlicerMacroBuildModuleQtLibrary.cmake | 4 ++-- + CMake/SlicerMacroBuildModuleVTKLibrary.cmake | 4 ++-- + 3 files changed, 5 insertions(+), 5 deletions(-) + +diff --git a/CMake/SlicerInstallConfig.cmake.in b/CMake/SlicerInstallConfig.cmake.in +index dc9c251818..127a09cf49 100644 +--- a/CMake/SlicerInstallConfig.cmake.in ++++ b/CMake/SlicerInstallConfig.cmake.in +@@ -106,7 +106,7 @@ set(Slicer_Libs_INCLUDE_DIRS + "${Slicer_HOME}/include/vtkITK" + "${Slicer_HOME}/include/vtkSegmentationCore" + "${Slicer_HOME}/include/vtkTeem" +- "${Slicer_HOME}/include/qSlicerBaseQTGUI" ++ "${Slicer_HOME}/include/Slicer-5.8/qSlicerBaseQTGUI" + "@vtkAddon_INCLUDE_DIRS@" + ) + +diff --git a/CMake/SlicerMacroBuildModuleQtLibrary.cmake b/CMake/SlicerMacroBuildModuleQtLibrary.cmake +index c32949dab6..d2bb43c10b 100644 +--- a/CMake/SlicerMacroBuildModuleQtLibrary.cmake ++++ b/CMake/SlicerMacroBuildModuleQtLibrary.cmake +@@ -195,9 +195,9 @@ macro(SlicerMacroBuildModuleQtLibrary) + # -------------------------------------------------------------------------- + # Install headers + # -------------------------------------------------------------------------- +- if(DEFINED Slicer_DEVELOPMENT_INSTALL) ++ if(DEFINED Slicer_INSTALL_DEVELOPMENT) + if(NOT DEFINED ${MODULEQTLIBRARY_NAME}_DEVELOPMENT_INSTALL) +- set(${MODULEQTLIBRARY_NAME}_DEVELOPMENT_INSTALL ${Slicer_DEVELOPMENT_INSTALL}) ++ set(${MODULEQTLIBRARY_NAME}_DEVELOPMENT_INSTALL ${Slicer_INSTALL_DEVELOPMENT}) + endif() + else() + if(NOT DEFINED ${MODULEQTLIBRARY_NAME}_DEVELOPMENT_INSTALL) +diff --git a/CMake/SlicerMacroBuildModuleVTKLibrary.cmake b/CMake/SlicerMacroBuildModuleVTKLibrary.cmake +index a08ebefbd5..9e7246a936 100644 +--- a/CMake/SlicerMacroBuildModuleVTKLibrary.cmake ++++ b/CMake/SlicerMacroBuildModuleVTKLibrary.cmake +@@ -155,9 +155,9 @@ macro(SlicerMacroBuildModuleVTKLibrary) + # -------------------------------------------------------------------------- + # Install headers + # -------------------------------------------------------------------------- +- if(DEFINED Slicer_DEVELOPMENT_INSTALL) ++ if(DEFINED Slicer_INSTALL_DEVELOPMENT) + if(NOT DEFINED ${MODULEVTKLIBRARY_NAME}_DEVELOPMENT_INSTALL) +- set(${MODULEVTKLIBRARY_NAME}_DEVELOPMENT_INSTALL ${Slicer_DEVELOPMENT_INSTALL}) ++ set(${MODULEVTKLIBRARY_NAME}_DEVELOPMENT_INSTALL ${Slicer_INSTALL_DEVELOPMENT}) + endif() + else() + if(NOT DEFINED ${MODULEVTKLIBRARY_NAME}_DEVELOPMENT_INSTALL) +-- +2.49.0 + diff --git a/guix-systole/packages/patches/slicer/0003-COMP-Adapt-to-new-qRestAPI-cmake.patch b/guix-systole/packages/patches/slicer/0003-COMP-Adapt-to-new-qRestAPI-cmake.patch index b290ecf..b7f7434 100644 --- a/guix-systole/packages/patches/slicer/0003-COMP-Adapt-to-new-qRestAPI-cmake.patch +++ b/guix-systole/packages/patches/slicer/0003-COMP-Adapt-to-new-qRestAPI-cmake.patch @@ -1,7 +1,7 @@ From e267853ea68a6f938a7167fa1253aa9110e93cd6 Mon Sep 17 00:00:00 2001 From: Rafael Palomar Date: Tue, 24 Jan 2023 10:01:23 +0100 -Subject: [PATCH 3/8] COMP: Adapt to new qRestAPI cmake +Subject: [PATCH 03/11] COMP: Adapt to new qRestAPI cmake This removes the use of the old `qRestAPI_USE_FILE`. As of today, this is a SystoleOS adaptation that should not reach the official Slicer diff --git a/guix-systole/packages/patches/slicer/0004-COMP-Hard-code-path-to-teem-library.patch b/guix-systole/packages/patches/slicer/0004-COMP-Hard-code-path-to-teem-library.patch index f9256b0..5ff9c78 100644 --- a/guix-systole/packages/patches/slicer/0004-COMP-Hard-code-path-to-teem-library.patch +++ b/guix-systole/packages/patches/slicer/0004-COMP-Hard-code-path-to-teem-library.patch @@ -1,7 +1,7 @@ From a9f016e35698b28f7d8cf3caf651e2c4bf1a9056 Mon Sep 17 00:00:00 2001 From: Rafael Palomar Date: Tue, 6 May 2025 10:13:19 +0200 -Subject: [PATCH 4/8] COMP: Hard-code path to teem library +Subject: [PATCH 04/11] COMP: Hard-code path to teem library Co-authored-by: Khai Duong --- diff --git a/guix-systole/packages/patches/slicer/0005-COMP-Add-vtk-dependency-to-MRMLWidgets.patch b/guix-systole/packages/patches/slicer/0005-COMP-Add-vtk-dependency-to-MRMLWidgets.patch index 48c0d3d..2c93ff9 100644 --- a/guix-systole/packages/patches/slicer/0005-COMP-Add-vtk-dependency-to-MRMLWidgets.patch +++ b/guix-systole/packages/patches/slicer/0005-COMP-Add-vtk-dependency-to-MRMLWidgets.patch @@ -1,7 +1,7 @@ From f311611aa6b98b66bbb0600afe1044f92cd15b7b Mon Sep 17 00:00:00 2001 From: Rafael Palomar Date: Tue, 6 May 2025 10:14:00 +0200 -Subject: [PATCH 5/8] COMP: Add vtk dependency to MRMLWidgets +Subject: [PATCH 05/11] COMP: Add vtk dependency to MRMLWidgets Co-authored-by: Khai Duong --- diff --git a/guix-systole/packages/patches/slicer/0006-COMP-Find-itk-on-non-superbuild.patch b/guix-systole/packages/patches/slicer/0006-COMP-Find-itk-on-non-superbuild.patch index c9b27b2..bd9e47f 100644 --- a/guix-systole/packages/patches/slicer/0006-COMP-Find-itk-on-non-superbuild.patch +++ b/guix-systole/packages/patches/slicer/0006-COMP-Find-itk-on-non-superbuild.patch @@ -1,7 +1,7 @@ From b59dc04c1f2a96035fed948bbe5a70ac6a5f205c Mon Sep 17 00:00:00 2001 From: Rafael Palomar Date: Tue, 6 May 2025 10:14:46 +0200 -Subject: [PATCH 6/8] COMP: Find itk on non-superbuild +Subject: [PATCH 06/11] COMP: Find itk on non-superbuild Co-authored-by: Khai Duong --- diff --git a/guix-systole/packages/patches/slicer/0007-COMP-Scope-CPack-blocks.patch b/guix-systole/packages/patches/slicer/0007-COMP-Scope-CPack-blocks.patch index 8f5ddff..1deeeb2 100644 --- a/guix-systole/packages/patches/slicer/0007-COMP-Scope-CPack-blocks.patch +++ b/guix-systole/packages/patches/slicer/0007-COMP-Scope-CPack-blocks.patch @@ -1,7 +1,7 @@ From 13b8b2f6b1f00a4b77facce50b2896a6c924db21 Mon Sep 17 00:00:00 2001 From: Rafael Palomar Date: Tue, 6 May 2025 10:15:52 +0200 -Subject: [PATCH 7/8] COMP: Scope CPack blocks +Subject: [PATCH 07/11] COMP: Scope CPack blocks Co-authored-by: Khai Duong --- diff --git a/guix-systole/packages/patches/slicer/0008-COMP-Remove-LastConfigureStep.patch b/guix-systole/packages/patches/slicer/0008-COMP-Remove-LastConfigureStep.patch index c3e4862..0c037f2 100644 --- a/guix-systole/packages/patches/slicer/0008-COMP-Remove-LastConfigureStep.patch +++ b/guix-systole/packages/patches/slicer/0008-COMP-Remove-LastConfigureStep.patch @@ -1,7 +1,7 @@ From f45ed525878e829d6347ca6383d7568150241344 Mon Sep 17 00:00:00 2001 From: Rafael Palomar Date: Tue, 6 May 2025 10:17:52 +0200 -Subject: [PATCH 8/8] COMP: Remove LastConfigureStep +Subject: [PATCH 08/11] COMP: Remove LastConfigureStep Co-authored-by: Khai Duong --- diff --git a/guix-systole/packages/patches/slicer/0009-COMP-Fix-path-for-SlicerConfig.cmake-and-SlicerConfi.patch b/guix-systole/packages/patches/slicer/0009-COMP-Fix-path-for-SlicerConfig.cmake-and-SlicerConfi.patch new file mode 100644 index 0000000..2d64efa --- /dev/null +++ b/guix-systole/packages/patches/slicer/0009-COMP-Fix-path-for-SlicerConfig.cmake-and-SlicerConfi.patch @@ -0,0 +1,351 @@ +From 02ddeaff44292c3c9118f78bf227802f37f6aaec Mon Sep 17 00:00:00 2001 +From: Rafael Palomar +Date: Tue, 6 May 2025 19:01:32 +0200 +Subject: [PATCH 09/11] COMP: Fix path for SlicerConfig.cmake and + SlicerConfigVersion.cmake + +--- + CMake/SlicerInstallConfig.cmake.in | 79 ++++++++++++++++++-------- + CMake/SlicerMacroBuildModuleMRML.cmake | 4 +- + CMake/UseSlicer.cmake.in | 19 ++++++- + CMakeLists.txt | 55 ++++++++++++------ + SuperBuild/External_VTK.cmake | 2 +- + 5 files changed, 113 insertions(+), 46 deletions(-) + +diff --git a/CMake/SlicerInstallConfig.cmake.in b/CMake/SlicerInstallConfig.cmake.in +index 4d13a50a23..dc9c251818 100644 +--- a/CMake/SlicerInstallConfig.cmake.in ++++ b/CMake/SlicerInstallConfig.cmake.in +@@ -39,8 +39,41 @@ get_filename_component(Slicer_CONFIG_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH) + set(Slicer_HOME "${Slicer_CONFIG_DIR}/../..") + get_filename_component(Slicer_HOME ${Slicer_HOME} ABSOLUTE) + +-# The CMake macros dir. ++# The CMake macros directories. + set(Slicer_CMAKE_DIR "${Slicer_HOME}/@Slicer_INSTALL_LIB_DIR@/CMake") ++set(CTK_CMAKE_DIR "@CTK_CMAKE_DIR@") ++ ++# Set the CMake module path ++list(APPEND CMAKE_MODULE_PATH ++ "${Slicer_CMAKE_DIR}" ++ "${CTK_CMAKE_DIR}" ++ "@vtkAddon_CMAKE_DIR@" ++) ++ ++set(Slicer_USE_TBB "@Slicer_USE_TBB@") ++set(Slicer_SUPERBUILD "@Slicer_SUPERBUILD@") ++ ++if(NOT Slicer_SUPERBUILD) ++ set(Slicer_REQUIRED_QT_MODULES "@Slicer_REQUIRED_QT_MODULES@") ++ set(Qt5_DIR "@Qt5_DIR@") ++ set(Slicer_VTK_VERSION_MAJOR "@Slicer_VTK_VERSION_MAJOR@") ++ set(Slicer_VTK_VERSION_MINOR "@Slicer_VTK_VERSION_MINOR@") ++ set(Slicer_VTK_COMPONENTS "@Slicer_VTK_COMPONENTS@") ++ set(VTK_DIR "@VTK_DIR@") ++ set(ITK_DIR "@ITK_DIR@") ++ set(HDF5_LIBRARIES "@HDF5_LIBRARIES@") ++ set(HDF5_INCLUDE_DIRS "@HDF5_INCLUDE_DIRS@") ++ set(vtkAddon_DIR "@vtkAddon_DIR@") ++ if(Slicer_USE_TBB) ++ set(TBB_DIR "@TBB_DIR@") ++ endif() ++ set(CTK_DIR "@CTK_DIR@") ++endif() ++ ++# Set the Slicer_EXPORT_HEADER_TEMPLATE to the install dir ++set(Slicer_EXPORT_HEADER_TEMPLATE "@Slicer_INSTALL_TEMPLATES_DIR@/qSlicerExport.h.in") ++ ++set(Slicer_BUILD_CLI_SUPPORT "@Slicer_BUILD_CLI_SUPPORT@") + + # Slicer Libs library directories. + set(Slicer_Libs_LIBRARY_DIRS +@@ -64,19 +97,17 @@ set(Slicer_Libs_LIBRARY_DIRS + + # Slicer Libs include file directories. + set(Slicer_Libs_INCLUDE_DIRS +- "${Slicer_HOME}/include/IGT" +- "${Slicer_HOME}/include/ITKCommandIO" +- "${Slicer_HOME}/include/LoadableModule" +- "${Slicer_HOME}/include/MGHImageIO" +- "${Slicer_HOME}/include/MRML" +- "${Slicer_HOME}/include/MRMLIDImageIO" +- "${Slicer_HOME}/include/ModuleDescriptionParser" +- "${Slicer_HOME}/include/Qdec" +- "${Slicer_HOME}/include/tclap" +- "${Slicer_HOME}/include/vtkAddon" ++ "${Slicer_HOME}/include/ITKFactoryRegistration" ++ "${Slicer_HOME}/include/MRMLCore" ++ "${Slicer_HOME}/include/MRMLDisplayableManager" ++ "${Slicer_HOME}/include/MRMLLogic" ++ "${Slicer_HOME}/include/qMRMLWidgets" ++ "${Slicer_HOME}/include/RemoteIO" + "${Slicer_HOME}/include/vtkITK" + "${Slicer_HOME}/include/vtkSegmentationCore" + "${Slicer_HOME}/include/vtkTeem" ++ "${Slicer_HOME}/include/qSlicerBaseQTGUI" ++ "@vtkAddon_INCLUDE_DIRS@" + ) + + # Slicer Base library directories. +@@ -119,16 +150,16 @@ endif() + + # Components needed to build modules from outside a Slicer build tree or + # from outside a Slicer installation tree +-set(TCLAP_DIR "${Slicer_HOME}/lib/tclap") +-set(ModuleDescriptionParser_DIR "${Slicer_HOME}/lib/ModuleDescriptionParser") +-set(GenerateCLP_DIR "${Slicer_HOME}/lib/GenerateCLP") +-set(GenerateLM_DIR "${Slicer_HOME}/lib/GenerateLM") +-set(ITK_DIR "${Slicer_HOME}/lib/${ITK_LIB_DIR}") +-set(LoadableModule_DIR "${Slicer_HOME}/lib/LoadableModule") +-set(Teem_DIR "${Slicer_HOME}/lib/Teem-@Teem_VERSION_MAJOR@.@Teem_VERSION_MINOR@.@Teem_VERSION_PATCH@") +-set(VTK_DIR "${Slicer_HOME}/lib/vtk-@VTK_MAJOR_VERSION@.@VTK_MINOR_VERSION@") +-set(PYTHON_INCLUDE_PATH "@PYTHON_INCLUDE_PATH@") +-get_filename_component(PYTHON_LIB_FILE "${PYTHON_LIBRARY}" NAME) +-set(PYTHON_LIBRARIES "${Slicer_HOME}/lib/Python/lib/${PYTHON_LIB_FILE}") +-get_filename_component(PYTHON_INCLUDE_DIR "${PYTHON_INCLUDE_PATH}" NAME) +-set(PYTHON_INCLUDE_PATH "${Slicer_HOME}/lib/Python/include/${PYTHON_INCLUDE_DIR}") ++# set(TCLAP_DIR "${Slicer_HOME}/lib/tclap") ++# set(ModuleDescriptionParser_DIR "${Slicer_HOME}/lib/ModuleDescriptionParser") ++# set(GenerateCLP_DIR "${Slicer_HOME}/lib/GenerateCLP") ++# set(GenerateLM_DIR "${Slicer_HOME}/lib/GenerateLM") ++# set(ITK_DIR "${Slicer_HOME}/lib/${ITK_LIB_DIR}") ++# set(LoadableModule_DIR "${Slicer_HOME}/lib/LoadableModule") ++# set(Teem_DIR "${Slicer_HOME}/lib/Teem-@Teem_VERSION_MAJOR@.@Teem_VERSION_MINOR@.@Teem_VERSION_PATCH@") ++# set(VTK_DIR "${Slicer_HOME}/lib/vtk-@VTK_MAJOR_VERSION@.@VTK_MINOR_VERSION@") ++# set(PYTHON_INCLUDE_PATH "@PYTHON_INCLUDE_PATH@") ++# get_filename_component(PYTHON_LIB_FILE "${PYTHON_LIBRARY}" NAME) ++# set(PYTHON_LIBRARIES "${Slicer_HOME}/lib/Python/lib/${PYTHON_LIB_FILE}") ++# get_filename_component(PYTHON_INCLUDE_DIR "${PYTHON_INCLUDE_PATH}" NAME) ++# set(PYTHON_INCLUDE_PATH "${Slicer_HOME}/lib/Python/include/${PYTHON_INCLUDE_DIR}") +diff --git a/CMake/SlicerMacroBuildModuleMRML.cmake b/CMake/SlicerMacroBuildModuleMRML.cmake +index 061cf2f126..b48552c950 100644 +--- a/CMake/SlicerMacroBuildModuleMRML.cmake ++++ b/CMake/SlicerMacroBuildModuleMRML.cmake +@@ -68,7 +68,7 @@ macro(SlicerMacroBuildModuleMRML) + FOLDER ${MODULEMRML_FOLDER} + SRCS ${MODULEMRML_SRCS} + INCLUDE_DIRECTORIES ${MODULEMRML_INCLUDE_DIRECTORIES} +- TARGET_LIBRARIES ${MODULEMRML_TARGET_LIBRARIES} ++ TARGET_LIBRARIES ${MODULEMRML_TARGET_LIBRARIES} ${VTK_LIBRARIES} ${MRML_LIBRARIES} + ${MODULEMRML_NO_INSTALL_OPTION} + ) + +@@ -81,6 +81,8 @@ macro(SlicerMacroBuildModuleMRML) + ${Slicer_ModuleMRML_INCLUDE_DIRS} + ${CMAKE_CURRENT_SOURCE_DIR} + ${CMAKE_CURRENT_BINARY_DIR} ++ ${VTK_INCLUDE_DIRS} ++ ${MRML_INCLUDE_DIRS} + CACHE INTERNAL "Slicer Module MRML includes" FORCE) + + # -------------------------------------------------------------------------- +diff --git a/CMake/UseSlicer.cmake.in b/CMake/UseSlicer.cmake.in +index f80bd6884c..63eca84c5e 100644 +--- a/CMake/UseSlicer.cmake.in ++++ b/CMake/UseSlicer.cmake.in +@@ -53,6 +53,21 @@ function(_slicer_skip_message text) + endif() + endfunction() + ++# -------------------------------------------------------------------------- ++# Finding required packages ++# -------------------------------------------------------------------------- ++if(NOT Slicer_SUPERBUILD) ++ find_package(Qt5 COMPONENTS ${Slicer_REQUIRED_QT_MODULES} REQUIRED PATHS ${Qt5_DIR}) ++ find_package(VTK ${Slicer_VTK_VERSION_MAJOR} COMPONENTS ${Slicer_VTK_COMPONENTS} REQUIRED PATHS ${VTK_DIR}) ++ find_package(ITK REQUIRED PATHS ${ITK_DIR}) ++ include(${ITK_USE_FILE}) ++ find_package(vtkAddon REQUIRED PATHS ${vtkAddon_DIR}) ++ if(Slicer_USE_TBB) ++ find_package(TBB REQUIRED PATHS ${TBB_DIR}) ++ endif() ++ find_package(CTK REQUIRED PATHS ${CTK_DIR}) ++ include(${CTK_USE_FILE}) ++endif() + # -------------------------------------------------------------------------- + # Setting and checking EXTENSION_NAME + # -------------------------------------------------------------------------- +@@ -293,7 +308,7 @@ if(NOT Slicer_DONT_USE_EXTENSION) + # Set Slicer_EXTENSION_CMAKE_GENERATOR and EXTENSION_{COMPILER, ARCHITECTURE, BITNESS, OPERATING_SYSTEM} + #----------------------------------------------------------------------------- + +- include(SlicerBlockUploadExtensionPrerequisites) ++ #include(SlicerBlockUploadExtensionPrerequisites) + endif() + + #----------------------------------------------------------------------------- +@@ -409,7 +424,7 @@ if(NOT Slicer_DONT_USE_EXTENSION) + slicer_setting_variable_message("EXTENSION_BUILD_SUBDIRECTORY" SKIP_TRUNCATE) + + #----------------------------------------------------------------------------- +- include(SlicerExtensionDescriptionSpec) ++ #include(SlicerExtensionDescriptionSpec) + + foreach(var IN LISTS Slicer_EXT_OPTIONAL_METADATA_NAMES) + slicer_setting_variable_message(EXTENSION_${var}) +diff --git a/CMakeLists.txt b/CMakeLists.txt +index f7fdc5646c..bf0d4c903c 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -50,7 +50,10 @@ endif() + #----------------------------------------------------------------------------- + set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/CMake" ${CMAKE_MODULE_PATH}) + set(SUPERBUILD_TOPLEVEL_PROJECT Slicer) +-list(APPEND EXTERNAL_PROJECT_ADDITIONAL_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/SuperBuild) ++ ++if(Slicer_SUPERBUILD) ++ list(APPEND EXTERNAL_PROJECT_ADDITIONAL_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/SuperBuild) ++endif() + include(ExternalProject) + include(ExternalProjectDependency) + include(ExternalProjectDependencyForPython) +@@ -61,10 +64,11 @@ if(APPLE) + # Note: By setting CMAKE_OSX_* variables before any enable_language() or project() calls, + # we ensure that the bitness, and C++ standard library will be properly detected. + include(SlicerInitializeOSXVariables) ++ + mark_as_superbuild( + VARS CMAKE_OSX_ARCHITECTURES:STRING CMAKE_OSX_SYSROOT:PATH CMAKE_OSX_DEPLOYMENT_TARGET:STRING + ALL_PROJECTS +- ) ++ ) + + set(CMAKE_INSTALL_NAME_TOOL "" CACHE FILEPATH "" FORCE) + # Due to the possibility of external projects (e.g., LibFFI) enabling languages (e.g., ASM) +@@ -111,13 +115,6 @@ option(Slicer_SUPERBUILD "Build ${PROJECT_NAME} and the projects it depends on." + mark_as_advanced(Slicer_SUPERBUILD) + set(Slicer_BINARY_INNER_SUBDIR Slicer-build) + +-#----------------------------------------------------------------------------- +-# Include essential packages in non-superbuild +-#----------------------------------------------------------------------------- +-if(NOT SLICER_SUPERBUILD) +- find_package(ITK REQUIRED) +-endif() +- + #----------------------------------------------------------------------------- + include(CTestUseLaunchers OPTIONAL) + if(${CTEST_USE_LAUNCHERS}) +@@ -170,6 +167,7 @@ include(SlicerInitializeReleaseType) + # Set the header template which defines custom export/import macros + # for shared libraries + #----------------------------------------------------------------------------- ++set(Slicer_INSTALL_TEMPLATES_DIR "${CMAKE_INSTALL_PREFIX}/${Slicer_SHARE_DIR}/templates") + set(Slicer_EXPORT_HEADER_TEMPLATE "${Slicer_SOURCE_DIR}/CMake/qSlicerExport.h.in") + set(Slicer_LOGOS_RESOURCE "${Slicer_SOURCE_DIR}/Resources/qSlicer.qrc") + +@@ -214,14 +212,15 @@ if(NOT DEFINED Slicer_REQUIRED_QT_VERSION) + endif() + set(Slicer_REQUIRED_QT_VERSION ${_required_qt_version} CACHE STRING "Minimum required Qt version" FORCE) + endif() +-mark_as_superbuild(Slicer_REQUIRED_QT_VERSION) + ++mark_as_superbuild(Slicer_REQUIRED_QT_VERSION) + #----------------------------------------------------------------------------- + # Python requirements + #----------------------------------------------------------------------------- + if(NOT DEFINED Slicer_REQUIRED_PYTHON_VERSION) + set(Slicer_REQUIRED_PYTHON_VERSION "3.9.10") + endif() ++ + mark_as_superbuild(Slicer_REQUIRED_PYTHON_VERSION) + + if(NOT Slicer_REQUIRED_PYTHON_VERSION MATCHES "([0-9]+)\\.([0-9]+)\\.([0-9]+)") +@@ -672,6 +671,7 @@ endif() + WebChannel + ) + endif() ++ + # Both "extension manager" and "application update" require qRestApi external + # project itself depending on Qt's Qml module + if(Slicer_BUILD_EXTENSIONMANAGER_SUPPORT OR Slicer_BUILD_APPLICATIONUPDATE_SUPPORT) +@@ -891,6 +891,17 @@ endif() + # This means that moving forward most of the find_package calls listed below + # will be removed. + ++#----------------------------------------------------------------------------- ++# Include essential packages in non-superbuild ++#----------------------------------------------------------------------------- ++if(NOT Slicer_SUPERBUILD) ++ find_package(ITK REQUIRED) ++ find_package(vtkAddon REQUIRED) ++ if(Slicer_USE_TBB) ++ find_package(TBB REQUIRED) ++ endif() ++endif() ++ + #----------------------------------------------------------------------------- + # VTK + #----------------------------------------------------------------------------- +@@ -1122,7 +1133,7 @@ set(extensions_build_dir "${Slicer_BINARY_DIR}/E") + # Configure a no-op SlicerConfig and SlicerConfigVersion for bundled projects + set(Slicer_DIR ${extensions_build_dir}) + configure_file( +- ${Slicer_SOURCE_DIR}/CMake/SlicerConfig.cmake.in ++ ${Slicer_SOURCE_DIR}/CMake/SlicerInstallConfig.cmake.in + ${Slicer_DIR}/SlicerConfig.cmake @ONLY) + + configure_file( +@@ -1221,12 +1232,12 @@ add_dependencies(MRMLCore SlicerConfigureVersionHeader) + list(APPEND files vtkSlicerVersionConfigure.h) + + if(NOT Slicer_INSTALL_NO_DEVELOPMENT) +-foreach(f ${files}) +- install( +- FILES ${CMAKE_CURRENT_BINARY_DIR}/${f} +- DESTINATION ${Slicer_INSTALL_INCLUDE_DIR} COMPONENT Development ++ foreach(f ${files}) ++ install( ++ FILES ${CMAKE_CURRENT_BINARY_DIR}/${f} ++ DESTINATION ${Slicer_INSTALL_INCLUDE_DIR} COMPONENT Development + ) +-endforeach() ++ endforeach() + endif() + + #----------------------------------------------------------------------------- +@@ -1277,6 +1288,7 @@ endif() + # Install CMake modules + #----------------------------------------------------------------------------- + if(NOT Slicer_INSTALL_NO_DEVELOPMENT) ++ + file(GLOB cmake_files "${CMAKE_CURRENT_SOURCE_DIR}/CMake/*.cmake") + install( + FILES ${cmake_files} +@@ -1285,11 +1297,18 @@ if(NOT Slicer_INSTALL_NO_DEVELOPMENT) + + install(FILES + ${Slicer_BINARY_DIR}/UseSlicer.cmake +- ${Slicer_BINARY_DIR}/SlicerConfig.cmake +- ${Slicer_BINARY_DIR}/SlicerConfigVersion.cmake ++ ${extensions_build_dir}/SlicerConfig.cmake ++ ${extensions_build_dir}/SlicerConfigVersion.cmake + DESTINATION ${Slicer_INSTALL_LIB_DIR} + COMPONENT Development + ) ++ ++ install(FILES ++ ${CMAKE_CURRENT_SOURCE_DIR}/CMake/qSlicerExport.h.in ++ DESTINATION ${Slicer_INSTALL_TEMPLATES_DIR} ++ COMPONENT Development ++ ) ++ + endif() + + #----------------------------------------------------------------------------- +diff --git a/SuperBuild/External_VTK.cmake b/SuperBuild/External_VTK.cmake +index 375f490983..f7a1aca06c 100644 +--- a/SuperBuild/External_VTK.cmake ++++ b/SuperBuild/External_VTK.cmake +@@ -12,7 +12,7 @@ endif() + + # Include dependent projects if any + ExternalProject_Include_Dependencies(${proj} PROJECT_VAR proj DEPENDS_VAR ${proj}_DEPENDENCIES) +- ++message(FATAL_ERROR "pff") + if(Slicer_USE_SYSTEM_${proj}) + unset(VTK_DIR CACHE) + unset(VTK_SOURCE_DIR CACHE) +-- +2.49.0 + diff --git a/guix-systole/packages/patches/slicer/0010-ENH-Fix-installation-of-development-files.patch b/guix-systole/packages/patches/slicer/0010-ENH-Fix-installation-of-development-files.patch new file mode 100644 index 0000000..4cc2d64 --- /dev/null +++ b/guix-systole/packages/patches/slicer/0010-ENH-Fix-installation-of-development-files.patch @@ -0,0 +1,79 @@ +From 719973dfa60441d8e62e7ae20cddfeb804a63b73 Mon Sep 17 00:00:00 2001 +From: Rafael Palomar +Date: Fri, 9 May 2025 23:04:34 +0200 +Subject: [PATCH 10/11] ENH: Fix installation of development files + +--- + CMake/SlicerInstallConfig.cmake.in | 15 ++++++++++++++- + CMake/SlicerMacroBuildModuleQtLibrary.cmake | 4 ++-- + CMake/SlicerMacroBuildModuleVTKLibrary.cmake | 4 ++-- + 3 files changed, 18 insertions(+), 5 deletions(-) + +diff --git a/CMake/SlicerInstallConfig.cmake.in b/CMake/SlicerInstallConfig.cmake.in +index dc9c251818..19eeef67cf 100644 +--- a/CMake/SlicerInstallConfig.cmake.in ++++ b/CMake/SlicerInstallConfig.cmake.in +@@ -74,6 +74,17 @@ endif() + set(Slicer_EXPORT_HEADER_TEMPLATE "@Slicer_INSTALL_TEMPLATES_DIR@/qSlicerExport.h.in") + + set(Slicer_BUILD_CLI_SUPPORT "@Slicer_BUILD_CLI_SUPPORT@") ++# Slicer Core library ++set(Slicer_CORE_LIBRARY "@Slicer_CORE_LIBRARY_CONFIG@") ++ ++# Slicer GUI library ++set(Slicer_GUI_LIBRARY "@Slicer_GUI_LIBRARY_CONFIG@") ++ ++# MRML libraries - This variable regroup all related MRML libraries ++set(MRML_LIBRARIES "@MRML_LIBRARIES@") ++ ++# Slicer Libs VTK wrapped libraries ++set(Slicer_Libs_VTK_WRAPPED_LIBRARIES "@Slicer_Libs_VTK_WRAPPED_LIBRARIES@") + + # Slicer Libs library directories. + set(Slicer_Libs_LIBRARY_DIRS +@@ -106,7 +117,9 @@ set(Slicer_Libs_INCLUDE_DIRS + "${Slicer_HOME}/include/vtkITK" + "${Slicer_HOME}/include/vtkSegmentationCore" + "${Slicer_HOME}/include/vtkTeem" +- "${Slicer_HOME}/include/qSlicerBaseQTGUI" ++ "${Slicer_HOME}/include/Slicer-5.8/qSlicerBaseQTGUI" ++ "${Slicer_HOME}/include/Slicer-5.8/qSlicerBaseQTCore" ++ + "@vtkAddon_INCLUDE_DIRS@" + ) + +diff --git a/CMake/SlicerMacroBuildModuleQtLibrary.cmake b/CMake/SlicerMacroBuildModuleQtLibrary.cmake +index c32949dab6..d2bb43c10b 100644 +--- a/CMake/SlicerMacroBuildModuleQtLibrary.cmake ++++ b/CMake/SlicerMacroBuildModuleQtLibrary.cmake +@@ -195,9 +195,9 @@ macro(SlicerMacroBuildModuleQtLibrary) + # -------------------------------------------------------------------------- + # Install headers + # -------------------------------------------------------------------------- +- if(DEFINED Slicer_DEVELOPMENT_INSTALL) ++ if(DEFINED Slicer_INSTALL_DEVELOPMENT) + if(NOT DEFINED ${MODULEQTLIBRARY_NAME}_DEVELOPMENT_INSTALL) +- set(${MODULEQTLIBRARY_NAME}_DEVELOPMENT_INSTALL ${Slicer_DEVELOPMENT_INSTALL}) ++ set(${MODULEQTLIBRARY_NAME}_DEVELOPMENT_INSTALL ${Slicer_INSTALL_DEVELOPMENT}) + endif() + else() + if(NOT DEFINED ${MODULEQTLIBRARY_NAME}_DEVELOPMENT_INSTALL) +diff --git a/CMake/SlicerMacroBuildModuleVTKLibrary.cmake b/CMake/SlicerMacroBuildModuleVTKLibrary.cmake +index a08ebefbd5..9e7246a936 100644 +--- a/CMake/SlicerMacroBuildModuleVTKLibrary.cmake ++++ b/CMake/SlicerMacroBuildModuleVTKLibrary.cmake +@@ -155,9 +155,9 @@ macro(SlicerMacroBuildModuleVTKLibrary) + # -------------------------------------------------------------------------- + # Install headers + # -------------------------------------------------------------------------- +- if(DEFINED Slicer_DEVELOPMENT_INSTALL) ++ if(DEFINED Slicer_INSTALL_DEVELOPMENT) + if(NOT DEFINED ${MODULEVTKLIBRARY_NAME}_DEVELOPMENT_INSTALL) +- set(${MODULEVTKLIBRARY_NAME}_DEVELOPMENT_INSTALL ${Slicer_DEVELOPMENT_INSTALL}) ++ set(${MODULEVTKLIBRARY_NAME}_DEVELOPMENT_INSTALL ${Slicer_INSTALL_DEVELOPMENT}) + endif() + else() + if(NOT DEFINED ${MODULEVTKLIBRARY_NAME}_DEVELOPMENT_INSTALL) +-- +2.49.0 + diff --git a/guix-systole/packages/patches/slicer/0011-ENH-Add-installation-of-Slicer-base-development-file.patch b/guix-systole/packages/patches/slicer/0011-ENH-Add-installation-of-Slicer-base-development-file.patch new file mode 100644 index 0000000..fc5860c --- /dev/null +++ b/guix-systole/packages/patches/slicer/0011-ENH-Add-installation-of-Slicer-base-development-file.patch @@ -0,0 +1,195 @@ +From 251d91ea23ad9dea17802471a1acd1b35f03349b Mon Sep 17 00:00:00 2001 +From: Rafael Palomar +Date: Mon, 12 May 2025 11:23:55 +0200 +Subject: [PATCH 11/11] ENH: Add installation of Slicer base development files + +--- + Base/CMakeLists.txt | 40 +++++++++++++++++++++++++----- + Base/QTApp/CMakeLists.txt | 19 ++++++++++++++ + Base/QTCLI/CMakeLists.txt | 17 +++++++++++++ + Base/QTGUI/CMakeLists.txt | 35 ++++++++++++++++++++++++++ + CMake/SlicerInstallConfig.cmake.in | 1 + + 5 files changed, 106 insertions(+), 6 deletions(-) + +diff --git a/Base/CMakeLists.txt b/Base/CMakeLists.txt +index 87b56a1678..f6db47f78d 100644 +--- a/Base/CMakeLists.txt ++++ b/Base/CMakeLists.txt +@@ -7,17 +7,45 @@ include_directories( + ${CMAKE_CURRENT_BINARY_DIR}/QTCore + ) + +-add_subdirectory(Logic) +-add_subdirectory(QTCore) +-add_subdirectory(QTGUI) ++ set(Slicer_BASE_SUBDIRS ++ Logic ++ ) ++ ++ set(qSlicer_BASE_SUBDIRS ++ QTCore ++ QTGUI ++ ) ++ + if(Slicer_BUILD_CLI_SUPPORT) +- add_subdirectory(QTCLI) +- add_subdirectory(CLI) ++ list(APPEND Slicer_BASE_SUBDIRS ++ CLI ++ ) ++ ++ list(APPEND qSlicer_BASE_SUBDIRS ++ QTCLI ++ ) + endif() + + if(Slicer_USE_PYTHONQT) +- add_subdirectory(Python) ++ list(APPEND Slicer_BASE_SUBDIRS ++ Python ++ ) + endif() + ++foreach(SUBDIR ${Slicer_BASE_SUBDIRS}) ++ if(NOT Slicer_INSTALL_NO_DEVELOPMENT) ++ set(SlicerBase${SUBDIR}_INSTALL_NO_DEVELOPMENT 0) ++ add_subdirectory(${SUBDIR}) ++ endif() ++endforeach() ++ ++foreach(SUBDIR ${qSlicer_BASE_SUBDIRS}) ++ if(NOT Slicer_INSTALL_NO_DEVELOPMENT) ++ set(qSlicerBase${SUBDIR}_INSTALL_NO_DEVELOPMENT 0) ++ add_subdirectory(${SUBDIR}) ++ endif() ++endforeach() ++ ++ + # Since "QTApp" depends on "Modules/Core", the folder is included in the top-level CMakeLists.txt + # after "Modules/Core" folder. +diff --git a/Base/QTApp/CMakeLists.txt b/Base/QTApp/CMakeLists.txt +index 5eb8d19639..41ff88b918 100644 +--- a/Base/QTApp/CMakeLists.txt ++++ b/Base/QTApp/CMakeLists.txt +@@ -71,6 +71,25 @@ SlicerMacroBuildBaseQtLibrary( + WRAP_PYTHONQT + ) + ++# -------------------------------------------------------------------------- ++# Install ui_headers ++# -------------------------------------------------------------------------- ++# ui_header files are generated in build time and are not listed by ++# the globbing mechanims in the Slicer build macros. Here we list them and make ++# the installation explicit ++if(NOT DEFINED ${PROJECT_NAME}_INSTALL_NO_DEVELOPMENT) ++ set(${PROJECT_NAME}_INSTALL_NO_DEVELOPMENT ON) ++endif() ++if(NOT ${PROJECT_NAME}_INSTALL_NO_DEVELOPMENT) ++ set(ui_headers ++ "${CMAKE_CURRENT_BINARY_DIR}/ui_qSlicerMainWindow.h" ++ "${CMAKE_CURRENT_BINARY_DIR}/ui_qSlicerErrorReportDialog.h" ++ "${CMAKE_CURRENT_BINARY_DIR}/ui_qSlicerAboutDialog.h") ++ install( ++ FILES ${ui_headers} ++ DESTINATION ${Slicer_INSTALL_INCLUDE_DIR}/${PROJECT_NAME} COMPONENT Development) ++endif() ++ + # -------------------------------------------------------------------------- + if(BUILD_TESTING) + add_subdirectory(Testing) +diff --git a/Base/QTCLI/CMakeLists.txt b/Base/QTCLI/CMakeLists.txt +index 65a09ccce2..e78d475db9 100644 +--- a/Base/QTCLI/CMakeLists.txt ++++ b/Base/QTCLI/CMakeLists.txt +@@ -129,6 +129,23 @@ if(Slicer_BUILD_QT_DESIGNER_PLUGINS) + add_subdirectory(DesignerPlugins) + endif() + ++# ----------------------------------------------------- ++# Install ui_headers ++# -------------------------------------------------------------------------- ++# ui_header files are generated in build time and are not listed by ++# the globbing mechanims in the Slicer build macros. Here we list them and make ++# the installation explicit ++if(NOT DEFINED ${PROJECT_NAME}_INSTALL_NO_DEVELOPMENT) ++ set(${PROJECT_NAME}_INSTALL_NO_DEVELOPMENT ON) ++endif() ++if(NOT ${PROJECT_NAME}_INSTALL_NO_DEVELOPMENT) ++ set(ui_headers ++ "${CMAKE_CURRENT_BINARY_DIR}/ui_qSlicerCLIModuleWidget.h") ++ install( ++ FILES ${ui_headers} ++ DESTINATION ${Slicer_INSTALL_INCLUDE_DIR}/${PROJECT_NAME} COMPONENT Development) ++endif() ++ + # -------------------------------------------------------------------------- + # Python Wrapping + # -------------------------------------------------------------------------- +diff --git a/Base/QTGUI/CMakeLists.txt b/Base/QTGUI/CMakeLists.txt +index d5413d555d..333b39c955 100644 +--- a/Base/QTGUI/CMakeLists.txt ++++ b/Base/QTGUI/CMakeLists.txt +@@ -14,6 +14,7 @@ set(KIT_include_directories + ${qSlicerBaseQTCore_BINARY_DIR} + ) + ++ + # Source files + set(KIT_SRCS + qSlicerAbstractModule.cxx +@@ -367,6 +368,40 @@ SlicerMacroBuildBaseQtLibrary( + WRAP_PYTHONQT + ) + ++# ----------------------------------------------------- ++# Install ui_headers ++# -------------------------------------------------------------------------- ++# ui_header files are generated in build time and are not listed by ++# the globbing mechanims in the Slicer build macros. Here we list them and make ++# the installation explicit ++if(NOT DEFINED ${PROJECT_NAME}_INSTALL_NO_DEVELOPMENT) ++ set(${PROJECT_NAME}_INSTALL_NO_DEVELOPMENT ON) ++endif() ++if(NOT ${PROJECT_NAME}_INSTALL_NO_DEVELOPMENT) ++ set(ui_headers ++ "${CMAKE_CURRENT_BINARY_DIR}/ui_qSlicerWebWidget.h" ++ "${CMAKE_CURRENT_BINARY_DIR}/ui_qSlicerSettingsViewsPanel.h" ++ "${CMAKE_CURRENT_BINARY_DIR}/ui_qSlicerSettingsUserInformationPanel.h" ++ "${CMAKE_CURRENT_BINARY_DIR}/ui_qSlicerSettingsStylesPanel.h" ++ "${CMAKE_CURRENT_BINARY_DIR}/ui_qSlicerSettingsModulesPanel.h" ++ "${CMAKE_CURRENT_BINARY_DIR}/ui_qSlicerSettingsInternationalizationPanel.h" ++ "${CMAKE_CURRENT_BINARY_DIR}/ui_qSlicerSettingsGeneralPanel.h" ++ "${CMAKE_CURRENT_BINARY_DIR}/ui_qSlicerSettingsDeveloperPanel.h" ++ "${CMAKE_CURRENT_BINARY_DIR}/ui_qSlicerSettingsCachePanel.h" ++ "${CMAKE_CURRENT_BINARY_DIR}/ui_qSlicerSaveDataDialog.h" ++ "${CMAKE_CURRENT_BINARY_DIR}/ui_qSlicerNodeWriterOptionsWidget.h" ++ "${CMAKE_CURRENT_BINARY_DIR}/ui_qSlicerModulePanel.h" ++ "${CMAKE_CURRENT_BINARY_DIR}/ui_qSlicerModuleFinderDialog.h" ++ "${CMAKE_CURRENT_BINARY_DIR}/ui_qSlicerModelsDialog.h" ++ "${CMAKE_CURRENT_BINARY_DIR}/ui_qSlicerExportNodeDialog.h" ++ "${CMAKE_CURRENT_BINARY_DIR}/ui_qSlicerDataDialog.h" ++ "${CMAKE_CURRENT_BINARY_DIR}/ui_qSlicerActionsDialog.h" ++ "${CMAKE_CURRENT_BINARY_DIR}/ui_qSlicerNodeWriterOptionsWidget.h") ++ install( ++ FILES ${ui_headers} ++ DESTINATION ${Slicer_INSTALL_INCLUDE_DIR}/${PROJECT_NAME} COMPONENT Development) ++endif() ++ + #----------------------------------------------------------------------------- + # Slicer icon engine + #----------------------------------------------------------------------------- +diff --git a/CMake/SlicerInstallConfig.cmake.in b/CMake/SlicerInstallConfig.cmake.in +index 19eeef67cf..d2df6b945a 100644 +--- a/CMake/SlicerInstallConfig.cmake.in ++++ b/CMake/SlicerInstallConfig.cmake.in +@@ -116,6 +116,7 @@ set(Slicer_Libs_INCLUDE_DIRS + "${Slicer_HOME}/include/RemoteIO" + "${Slicer_HOME}/include/vtkITK" + "${Slicer_HOME}/include/vtkSegmentationCore" ++ "${Slicer_HOME}/include/SlicerBaseLogic" + "${Slicer_HOME}/include/vtkTeem" + "${Slicer_HOME}/include/Slicer-5.8/qSlicerBaseQTGUI" + "${Slicer_HOME}/include/Slicer-5.8/qSlicerBaseQTCore" +-- +2.49.0 + diff --git a/guix-systole/packages/qrestapi.scm b/guix-systole/packages/qrestapi.scm index 9eb6e63..944ee74 100644 --- a/guix-systole/packages/qrestapi.scm +++ b/guix-systole/packages/qrestapi.scm @@ -20,7 +20,8 @@ (sha256 (base32 "0jfnja3frcm4vkibi1vygdh7f4dmhqxni43bbb3rmlcl6jlyaibl")) (patches (search-patches - "0001-ENH-packages-slicer-Refactor-CMake-project-infrastructure.patch")))) + "0001-ENH-Refactor-CMake-project-infrastructure.patch")) + )) (build-system cmake-build-system) (arguments '(#:tests? #f diff --git a/guix-systole/packages/slicer.scm b/guix-systole/packages/slicer.scm index ad2e2ca..67e774d 100644 --- a/guix-systole/packages/slicer.scm +++ b/guix-systole/packages/slicer.scm @@ -54,183 +54,175 @@ (sha256 (base32 "05rz797ddci3a2m8297zyzv2g2hp6bd6djmwa1n0gbsla8b175bx")) (patches (search-patches - "0001-COMP-Add-vtk-CommonSystem-component-as-requirement.patch" + "0001-COMP-Add-vtk-CommonSystem-component-as-requirement.patch" "0002-COMP-Find-Eigen-required.patch" "0003-COMP-Adapt-to-new-qRestAPI-cmake.patch" "0004-COMP-Hard-code-path-to-teem-library.patch" "0005-COMP-Add-vtk-dependency-to-MRMLWidgets.patch" "0006-COMP-Find-itk-on-non-superbuild.patch" "0007-COMP-Scope-CPack-blocks.patch" - "0008-COMP-Remove-LastConfigureStep.patch")))) + "0008-COMP-Remove-LastConfigureStep.patch" + "0009-COMP-Fix-path-for-SlicerConfig.cmake-and-SlicerConfi.patch" + "0010-ENH-Fix-installation-of-development-files.patch" + "0011-ENH-Add-installation-of-Slicer-base-development-file.patch" + )))) (build-system cmake-build-system) (arguments - `(#:tests? #f - #:validate-runpath? #f - #:configure-flags (list - ;; Compiler info - ;; https://stackoverflow.com/a/41361741 - "-DCMAKE_BUILD_TYPE:STRING=Release" - "-DCMAKE_CXX_COMPILER:STRING=g++" - "-DCMAKE_C_COMPILER:STRING=gcc" - "-DCMAKE_CXX_STANDARD:STRING=17" + (list #:tests? #f + #:validate-runpath? #f + #:configure-flags + #~(list + ;; Compiler info + ;; https://stackoverflow.com/a/41361741 + "-DCMAKE_BUILD_TYPE:STRING=Release" + "-DCMAKE_CXX_COMPILER:STRING=g++" + "-DCMAKE_C_COMPILER:STRING=gcc" + "-DCMAKE_CXX_STANDARD:STRING=17" - ;; Compiler flags - "-DCMAKE_EXE_LINKER_FLAGS=-pthread" - "-DSlicer_SUPERBUILD:BOOL=OFF" - "-DBUILD_TESTING:BOOL=OFF" - "-DBUILD_SHARED_LIBS:BOOL=ON" - "-DSlicer_BUILD_EXTENSIONMANAGER_SUPPORT:BOOL=OFF" - "-DSlicer_DONT_USE_EXTENSION:BOOL=ON" - "-DSlicer_REQUIRED_QT_VERSION:STRING=5" - ;; "-DSlicer_BUILD_DICOM_SUPPORT:BOOL=$(usex DICOM ON OFF)" - "-DSlicer_BUILD_ITKPython:BOOL=OFF" + ;; Compiler flags + "-DCMAKE_EXE_LINKER_FLAGS=-pthread" + "-DSlicer_SUPERBUILD:BOOL=OFF" + "-DBUILD_TESTING:BOOL=OFF" + "-DBUILD_SHARED_LIBS:BOOL=ON" + "-DSlicer_BUILD_EXTENSIONMANAGER_SUPPORT:BOOL=OFF" + "-DSlicer_DONT_USE_EXTENSION:BOOL=ON" + "-DSlicer_REQUIRED_QT_VERSION:STRING=5" + ;; "-DSlicer_BUILD_DICOM_SUPPORT:BOOL=$(usex DICOM ON OFF)" + "-DSlicer_BUILD_ITKPython:BOOL=OFF" - ;; CLI - "-DSlicer_BUILD_CLI:BOOL=OFF" - "-DSlicer_BUILD_CLI_SUPPORT:BOOL=ON" + ;; CLI + "-DSlicer_BUILD_CLI:BOOL=OFF" + "-DSlicer_BUILD_CLI_SUPPORT:BOOL=OFF" - ;; QT - "-DSlicer_BUILD_QTLOADABLEMODULES:BOOL=OFF" - "-DSlicer_BUILD_QTSCRIPTEDMODULES:BOOL=OFF" - "-DSlicer_BUILD_QT_DESIGNER_PLUGINS:BOOL=OFF" ;Turn ON? - "-DSlicer_USE_QtTesting:BOOL=OFF" - "-DSlicer_USE_SlicerITK:BOOL=ON" - "-DSlicer_USE_CTKAPPLAUNCHER:BOOL=ON" - "-DSlicer_BUILD_WEBENGINE_SUPPORT:BOOL=OFF" + ;; QT + "-DSlicer_BUILD_QTLOADABLEMODULES:BOOL=ON" + "-DSlicer_BUILD_QTSCRIPTEDMODULES:BOOL=OFF" + "-DSlicer_BUILD_QT_DESIGNER_PLUGINS:BOOL=OFF" ;Turn ON? + "-DSlicer_USE_QtTesting:BOOL=OFF" + "-DSlicer_USE_SlicerITK:BOOL=ON" + "-DSlicer_USE_CTKAPPLAUNCHER:BOOL=ON" + "-DSlicer_BUILD_WEBENGINE_SUPPORT:BOOL=OFF" + (string-append "-DQt5_DIR:PATH=" + #$(this-package-input "qtbase")) + ;; "-DSlicer_USE_SimpleITK:BOOL=OFF" + ;; "-DSlicer_VTK_RENDERING_BACKEND:STRING=OpenGL2" + "-DSlicer_VTK_VERSION_MAJOR:STRING=9" + "-DSlicer_BUILD_vtkAddon:BOOL=OFF" ;This should be OFF, so Slicer uses the system installed one. - ;; "-DSlicer_USE_SimpleITK:BOOL=OFF" - ;; "-DSlicer_VTK_RENDERING_BACKEND:STRING=OpenGL2" - "-DSlicer_VTK_VERSION_MAJOR:STRING=9" - "-DSlicer_BUILD_vtkAddon:BOOL=OFF" ;This should be OFF, so Slicer uses the system installed one. + "-DSlicer_INSTALL_DEVELOPMENT:BOOL=ON" + "-DSlicer_INSTALL_DEVELOPMENT:BOOL=ON" + "-DSlicer_USE_TBB:BOOL=ON" - "-DSlicer_INSTALL_DEVELOPMENT:BOOL=OFF" - "-DSlicer_USE_TBB:BOOL=ON" + ;; "-DCTK_INSTALL_QTPLUGIN_DIR:STRING=/usr/lib64/qt5/plugins" + ;; "-DQT_PLUGINS_DIR:STRING=/usr/lib64/designer" + ;; "-DSlicer_QtPlugins_DIR:STRING=/usr/lib64/designer" + ;; "-DjqPlot_DIR:STRING=/usr/share/jqPlot" + ;; "-DSlicer_VTK_WRAP_HIERARCHY_DIR:STRING=#{$\x7b;BUILD_DIR\x7d;}#" + ;; "-DSlicer_USE_SimpleITK:BOOL=OFF" + "-DSlicer_BUILD_DICOM_SUPPORT:BOOL=OFF" ;Disabled as we do not have IODCMTK support yet - ;; "-DCTK_INSTALL_QTPLUGIN_DIR:STRING=/usr/lib64/qt5/plugins" - ;; "-DQT_PLUGINS_DIR:STRING=/usr/lib64/designer" - ;; "-DSlicer_QtPlugins_DIR:STRING=/usr/lib64/designer" - ;; "-DjqPlot_DIR:STRING=/usr/share/jqPlot" - ;; "-DSlicer_VTK_WRAP_HIERARCHY_DIR:STRING=#{$\x7b;BUILD_DIR\x7d;}#" - ;; "-DSlicer_USE_SimpleITK:BOOL=OFF" - "-DSlicer_BUILD_DICOM_SUPPORT:BOOL=OFF" ;Disabled as we do not have IODCMTK support yet + ;; Python + ;; "-DPython3_INCLUDE_DIR:FILEPATH=" + ;; "-DPython3_LIBRARY:FILEPATH=" + ;; "-DPython3_EXECUTABLE:FILEPATH=" + "-DVTK_WRAP_PYTHON:BOOL=OFF" + "-DSlicer_USE_PYTHONQT:BOOL=OFF" + "-DSlicer_USE_SYSTEM_python:BOOL=OFF" - ;; Python - ;; "-DPython3_INCLUDE_DIR:FILEPATH=" - ;; "-DPython3_LIBRARY:FILEPATH=" - ;; "-DPython3_EXECUTABLE:FILEPATH=" - "-DVTK_WRAP_PYTHON:BOOL=OFF" - "-DSlicer_USE_PYTHONQT:BOOL=OFF" - "-DSlicer_USE_SYSTEM_python:BOOL=OFF" + ;; Other required external modules. These are required, otherwise Slicer tries to download them. + "-DSlicer_USE_SYSTEM_bzip2:BOOL=ON" + "-DSlicer_USE_SYSTEM_CTK:BOOL=ON" + "-DSlicer_USE_SYSTEM_TBB:BOOL=ON" + "-DSlicer_USE_SYSTEM_teem:BOOL=ON" + "-DSlicer_USE_SYSTEM_QT:BOOL=ON" + "-DSlicer_USE_SYSTEM_curl:BOOL=ON" + "-DSlicer_USE_SYSTEM_DCMTK:BOOL=ON" + "-DSlicer_USE_SYSTEM_ITK:BOOL=ON" + "-DSlicer_USE_SYSTEM_LibArchive:BOOL=ON" + "-DSlicer_USE_SYSTEM_LibFFI:BOOL=ON" + "-DSlicer_USE_SYSTEM_LZMA:BOOL=ON" + "-DSlicer_USE_SYSTEM_RapidJSON:BOOL=ON" + "-DSlicer_USE_SYSTEM_sqlite:BOOL=ON" + "-DSlicer_USE_SYSTEM_VTK:BOOL=ON" + "-DSlicer_USE_SYSTEM_zlib:BOOL=ON" - ;; Other required external modules. These are required, otherwise Slicer tries to download them. - "-DSlicer_USE_SYSTEM_bzip2:BOOL=ON" - "-DSlicer_USE_SYSTEM_CTK:BOOL=ON" - "-DSlicer_USE_SYSTEM_TBB:BOOL=ON" - "-DSlicer_USE_SYSTEM_teem:BOOL=ON" - "-DSlicer_USE_SYSTEM_QT:BOOL=ON" - "-DSlicer_USE_SYSTEM_curl:BOOL=ON" - "-DSlicer_USE_SYSTEM_DCMTK:BOOL=ON" - "-DSlicer_USE_SYSTEM_ITK:BOOL=ON" - "-DSlicer_USE_SYSTEM_LibArchive:BOOL=ON" - "-DSlicer_USE_SYSTEM_LibFFI:BOOL=ON" - "-DSlicer_USE_SYSTEM_LZMA:BOOL=ON" - "-DSlicer_USE_SYSTEM_RapidJSON:BOOL=ON" - "-DSlicer_USE_SYSTEM_sqlite:BOOL=ON" - "-DSlicer_USE_SYSTEM_VTK:BOOL=ON" - "-DSlicer_USE_SYSTEM_zlib:BOOL=ON" + ;; Hack to fix error "Variable Slicer_WC_LAST_CHANGED_DATE is expected to be defined." + "-DSlicer_WC_LAST_CHANGED_DATE:STRING=2025-3-2 19:58:36 -0500") + #:out-of-source? #t + #:phases + #~(modify-phases %standard-phases + (add-before 'configure 'set-cmake-paths + (lambda* (#:key inputs #:allow-other-keys) + ;; Make 'vtkaddon' discoverable by CMake - ;; Hack to fix error "Variable Slicer_WC_LAST_CHANGED_DATE is expected to be defined." - "-DSlicer_WC_LAST_CHANGED_DATE:STRING=2025-3-2 19:58:36 -0500") - #:out-of-source? #t - #:phases (modify-phases %standard-phases - (add-before 'configure 'set-cmake-paths - (lambda* (#:key inputs #:allow-other-keys) - ;; Make 'vtkaddon' discoverable by CMake + (setenv "CMAKE_PREFIX_PATH" + (string-append (assoc-ref inputs "vtkaddon") + "/lib/cmake:" - (setenv "CMAKE_PREFIX_PATH" - (string-append (assoc-ref inputs "vtkaddon") - "/lib/cmake:" + ;; (assoc-ref inputs + ;; "slicerexecutionmodel") + ;; "/lib/CMake:" - (assoc-ref inputs - "slicerexecutionmodel") - "/lib/CMake:" + (or (getenv "CMAKE_PREFIX_PATH") + ""))) #t)) - (or (getenv "CMAKE_PREFIX_PATH") - ""))) #t)) + (add-after 'install 'symlink-slicer-applauncher + (lambda* (#:key outputs #:allow-other-keys) + (symlink (string-append (assoc-ref outputs "out") + "/Slicer") + (string-append (string-append (assoc-ref + outputs "out") + "/bin/Slicer"))) + #t))))) + (inputs + (list libxt + eigen + expat + openssl-3.0 + git + hdf5-1.10 + libffi + libjpeg-turbo + libxinerama + mesa ;libGL equivalent + rapidjson + tbb - (add-after 'install 'symlink-slicer-applauncher - (lambda* (#:key outputs #:allow-other-keys) - (symlink (string-append (assoc-ref outputs "out") - "/Slicer") - (string-append (string-append (assoc-ref - outputs "out") - "/bin/Slicer"))) - #t)) - (add-after 'install 'desktop-entry - (lambda* (#:key outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (apps-dir (string-append out - "/share/applications")) - (desktop (string-append apps-dir - "/slicer.desktop"))) - (mkdir-p apps-dir) - (make-desktop-entry-file desktop - #:name "3dslicer" - #:comment - "A free, open source and multi-platform software package widely used for medical, biomedical, and related imaging research" - ;; #:exec (string-append out "/bin/Slicer") - #:exec (string-append out "/Slicer") - #:categories '("Graphics" "Medical" "Science") - #:startup-notify #f - #:terminal #f)) #t))))) - (inputs (list libxt - eigen - expat - openssl-3.0 - git - hdf5-1.10 - libffi - libjpeg-turbo - libxinerama - mesa ;libGL equivalent - rapidjson - tbb + ;; QT5 + qtbase-5 + qtmultimedia-5 + qtxmlpatterns + qtdeclarative-5 + qtsvg-5 + qtx11extras + qtwebengine-5 + qtwebchannel-5 + qttools-5 - ;; QT5 - qtbase-5 - qtmultimedia-5 - qtxmlpatterns - qtdeclarative-5 - qtsvg-5 - qtx11extras - qtwebengine-5 - qtwebchannel-5 - qttools-5 + ;; VTK + vtk-slicer + double-conversion + freetype + gl2ps + glew + jsoncpp + libharu + libtheora + libxml++ + lz4 + mpich + netcdf + proj - ;; VTK - vtk-slicer - double-conversion - freetype - gl2ps - glew - jsoncpp - libharu - libtheora - libxml++ - lz4 - mpich - netcdf-slicer - proj - - ;; Other Slicer modules - ctk - ctkapplauncher - itk-slicer - libarchive-slicer - teem-slicer - vtkaddon - slicerexecutionmodel - qrestapi)) + ;; Other Slicer modules + ctk + ctkapplauncher + itk-slicer + libarchive-slicer + teem-slicer + vtkaddon + ;;slicerexecutionmodel + qrestapi)) (native-inputs (list pkg-config)) (synopsis "3D Slicer - Medical visualization and computing environment") (description @@ -245,65 +237,65 @@ visualization and medical image computing. It provides capabilities for: (home-page "https://www.slicer.org/") (license license:bsd-3))) -(define slicerexecutionmodel - (package - (name "slicerexecutionmodel") - (version "2.0.0") - (source - (origin - (method url-fetch) - (uri - "https:///github.com/Slicer/SlicerExecutionModel/archive/91b921bd5977c3384916ba4b03705d87b26067f7.tar.gz") - (sha256 - (base32 "10k1m3impplv9hwhxx06wfmvlx9h54avhibv4id1pjlqjn5gjjza")) - (patches (search-patches - "0011-COMP-packages-slicer-Add-GNUInstallDirs-for-execution-model.patch" - "0012-COMP-packages-slicer-Generate-configuration-file-for-execution-model.patch" - "0013-ENH-packages-slicer-Generate-configuration-file-for-install-ModuleDe.patch" - "0014-COMP-packages-slicer-Install-GenerateCLP.cmake-GenerateCLP-and-Gener.patch")))) - (build-system cmake-build-system) - (arguments - `(#:tests? #f - #:parallel-build? #f - #:configure-flags (list "-DBUILD_TESTING:BOOL=OFF" - "-DSlicerExecutionModel_USE_UTF8:BOOL=ON" - "-DSlicerExecutionModel_INSTALL_NO_DEVELOPMENT:BOOL=OFF" - "-DSlicerExecutionModel_DEFAULT_CLI_TARGETS_FOLDER_PREFIX:STRING=Module-"))) - (inputs (list - ;; Slicer modules - itk-slicer +;; (define slicerexecutionmodel +;; (package +;; (name "slicerexecutionmodel") +;; (version "2.0.0") +;; (source +;; (origin +;; (method url-fetch) +;; (uri +;; "https:///github.com/Slicer/SlicerExecutionModel/archive/91b921bd5977c3384916ba4b03705d87b26067f7.tar.gz") +;; (sha256 +;; (base32 "10k1m3impplv9hwhxx06wfmvlx9h54avhibv4id1pjlqjn5gjjza")) +;; (patches (search-patches +;; "0011-COMP-packages-slicer-Add-GNUInstallDirs-for-execution-model.patch" +;; "0012-COMP-packages-slicer-Generate-configuration-file-for-execution-model.patch" +;; "0013-ENH-packages-slicer-Generate-configuration-file-for-install-ModuleDe.patch" +;; "0014-COMP-packages-slicer-Install-GenerateCLP.cmake-GenerateCLP-and-Gener.patch")))) +;; (build-system cmake-build-system) +;; (arguments +;; `(#:tests? #f +;; #:parallel-build? #f +;; #:configure-flags (list "-DBUILD_TESTING:BOOL=OFF" +;; "-DSlicerExecutionModel_USE_UTF8:BOOL=ON" +;; "-DSlicerExecutionModel_INSTALL_NO_DEVELOPMENT:BOOL=OFF" +;; "-DSlicerExecutionModel_DEFAULT_CLI_TARGETS_FOLDER_PREFIX:STRING=Module-"))) +;; (inputs (list +;; ;; Slicer modules +;; itk-slicer - ;; Libraries - double-conversion - eigen - expat - freetype - gl2ps - glew - hdf5-1.10 - libharu - libjpeg-turbo - libogg - libpng - libtheora - libxml2 - lz4 - jsoncpp - mpich - netcdf-slicer - proj - qtbase-5 - tbb)) - (home-page - "https://www.slicer.org/wiki/Documentation/Nightly/Developers/SlicerExecutionModel/") - (synopsis - "The SlicerExecutionModel is a CMake-based project providing -macros and associated tools allowing to easily build Slicer CLI (Command line -module).") - (description - "It is designed to improve the acceptance and productivity of Slicer -application developers. The Execution Model provides a simple mechanism for -incorporating command line programs as Slicer modules. These command line -modules are self-describing, emitting an XML description of its command line -arguments. Slicer uses this XML description to construct a GUI for the module.") - (license license:bsd-2))) +;; ;; Libraries +;; double-conversion +;; eigen +;; expat +;; freetype +;; gl2ps +;; glew +;; hdf5-1.10 +;; libharu +;; libjpeg-turbo +;; libogg +;; libpng +;; libtheora +;; libxml2 +;; lz4 +;; jsoncpp +;; mpich +;; netcdf-slicer +;; proj +;; qtbase-5 +;; tbb)) +;; (home-page +;; "https://www.slicer.org/wiki/Documentation/Nightly/Developers/SlicerExecutionModel/") +;; (synopsis +;; "The SlicerExecutionModel is a CMake-based project providing +;; macros and associated tools allowing to easily build Slicer CLI (Command line +;; module).") +;; (description +;; "It is designed to improve the acceptance and productivity of Slicer +;; application developers. The Execution Model provides a simple mechanism for +;; incorporating command line programs as Slicer modules. These command line +;; modules are self-describing, emitting an XML description of its command line +;; arguments. Slicer uses this XML description to construct a GUI for the module.") +;; (license license:bsd-2))) diff --git a/guix-systole/packages/vtk.scm b/guix-systole/packages/vtk.scm index 2190baa..c3bed5a 100644 --- a/guix-systole/packages/vtk.scm +++ b/guix-systole/packages/vtk.scm @@ -73,6 +73,7 @@ "-DVTK_SMP_ENABLE_TBB:BOOL=ON" "-DVTK_USE_MPI:BOOL=ON" "-DVTK_USE_TK:BOOL=OFF" + "-DVTK_INSTALL_NO_DEVELOPMENT:BOOL=OFF" ;; Enable VTK modules "-DVTK_MODULE_ENABLE_VTK_ChartsCore:STRING=YES"