Skip to content

Commit d476888

Browse files
ENH: Slicer lib adaptation
- Convert the Logic, MRML and MRMLDM modules to vtk.module - Add flag for VTK module auto init
1 parent 9c3349c commit d476888

11 files changed

Lines changed: 99 additions & 200 deletions

LayerDM/CMakeLists.txt

Lines changed: 4 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -6,21 +6,12 @@ set(MODULE_TITLE ${MODULE_NAME})
66
string(TOUPPER ${MODULE_NAME} MODULE_NAME_UPPER)
77

88
#-----------------------------------------------------------------------------
9-
add_subdirectory(MRML)
10-
add_subdirectory(Logic)
119
add_subdirectory(MRMLDM)
1210

1311
#-----------------------------------------------------------------------------
1412
set(MODULE_EXPORT_DIRECTIVE "Q_SLICER_QTMODULES_${MODULE_NAME_UPPER}_EXPORT")
1513

16-
# Current_{source,binary} and Slicer_{Libs,Base} already included
17-
set(MODULE_INCLUDE_DIRECTORIES
18-
${CMAKE_CURRENT_SOURCE_DIR}/Logic
19-
${CMAKE_CURRENT_BINARY_DIR}/Logic
20-
${CMAKE_CURRENT_SOURCE_DIR}/MRML
21-
${CMAKE_CURRENT_BINARY_DIR}/MRML
22-
${CMAKE_CURRENT_SOURCE_DIR}/MRMLDM
23-
${CMAKE_CURRENT_BINARY_DIR}/MRMLDM
14+
set(MODULE_INCLUDE_DIRECTORIES
2415
)
2516

2617
set(MODULE_SRCS
@@ -32,10 +23,10 @@ set(MODULE_MOC_SRCS
3223
qSlicer${MODULE_NAME}Module.h
3324
)
3425

26+
set(MODULE_UI_SRCS
27+
)
28+
3529
set(MODULE_TARGET_LIBRARIES
36-
vtkSlicer${MODULE_NAME}ModuleLogic
37-
vtkSlicer${MODULE_NAME}ModuleMRML
38-
vtkSlicer${MODULE_NAME}ModuleMRMLDisplayableManager
3930
)
4031

4132
set(MODULE_RESOURCES

LayerDM/Logic/CMakeLists.txt

Lines changed: 11 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -1,43 +1,23 @@
1-
project(vtkSlicer${MODULE_NAME}ModuleLogic)
2-
3-
set(KIT ${PROJECT_NAME})
4-
set(${KIT}_EXPORT_DIRECTIVE "VTK_SLICER_${MODULE_NAME_UPPER}_MODULE_LOGIC_EXPORT")
5-
set(${KIT}_INCLUDE_DIRECTORIES)
6-
1+
set(classes
2+
vtkSlicerLayerDMLogic
3+
)
74
set(LayerDM_VERSION_MAJOR 1)
85
set(LayerDM_VERSION_MINOR 1)
96
set(LayerDM_VERSION_PATCH 0)
107
set(LayerDM_VERSION "${LayerDM_VERSION_MAJOR}.${LayerDM_VERSION_MINOR}.${LayerDM_VERSION_PATCH}")
118

129
configure_file(
13-
${CMAKE_CURRENT_SOURCE_DIR}/vtkSlicerLayerDMVersion.h.in
14-
${CMAKE_CURRENT_BINARY_DIR}/vtkSlicerLayerDMVersion.h
10+
"${CMAKE_CURRENT_SOURCE_DIR}/vtkSlicerLayerDMVersion.h.in"
11+
"${CMAKE_CURRENT_BINARY_DIR}/vtkSlicerLayerDMVersion.h"
1512
@ONLY
1613
)
1714

18-
set(${KIT}_SRCS
19-
vtkSlicer${MODULE_NAME}Logic.cxx
20-
vtkSlicer${MODULE_NAME}Logic.h
21-
)
22-
23-
set(${KIT}_TARGET_LIBRARIES
24-
vtkSlicer${MODULE_NAME}ModuleMRML
25-
SlicerBaseLogic
26-
)
27-
28-
#-----------------------------------------------------------------------------
29-
SlicerMacroBuildModuleLogic(
30-
NAME ${KIT}
31-
EXPORT_DIRECTIVE ${${KIT}_EXPORT_DIRECTIVE}
32-
INCLUDE_DIRECTORIES ${${KIT}_INCLUDE_DIRECTORIES}
33-
SRCS ${${KIT}_SRCS}
34-
TARGET_LIBRARIES ${${KIT}_TARGET_LIBRARIES}
15+
set(headers
16+
"${CMAKE_CURRENT_BINARY_DIR}/vtkSlicerLayerDMVersion.h"
3517
)
3618

37-
target_include_directories(
38-
${KIT}
39-
PUBLIC
40-
${${KIT}_SOURCE_DIR}
41-
${${KIT}_BINARY_DIR}
42-
${Slicer_Base_INCLUDE_DIRS}
19+
vtk_module_add_module(VTK::SlicerLayerDMModuleLogic
20+
EXPORT_MACRO_PREFIX VTK_SLICER_LAYERDM_MODULE_LOGIC
21+
CLASSES ${classes}
22+
HEADERS ${headers}
4323
)

LayerDM/Logic/vtk.module

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
NAME
2+
VTK::SlicerLayerDMModuleLogic
3+
LIBRARY_NAME
4+
vtkSlicerLayerDMModuleLogic
5+
DEPENDS
6+
VTK::SlicerLayerDMModuleMRML
7+
DESCRIPTION
8+
"vtkSlicerLayerDMModuleLogic"
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
#pragma once
2+
3+
#include "vtkSlicerLayerDMModuleLogicModule.h"

LayerDM/MRML/CMakeLists.txt

Lines changed: 11 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -1,53 +1,19 @@
1-
project(vtkSlicer${MODULE_NAME}ModuleMRML)
2-
3-
set(KIT ${PROJECT_NAME})
4-
5-
set(${KIT}_EXPORT_DIRECTIVE "VTK_SLICER_${MODULE_NAME_UPPER}_MODULE_MRML_EXPORT")
6-
7-
set(${KIT}_INCLUDE_DIRECTORIES
8-
)
9-
10-
set(${KIT}_SRCS
11-
vtkMRMLLayerDMNodeReferenceObserver.cxx
12-
vtkMRMLLayerDMNodeReferenceObserver.h
13-
vtkMRMLLayerDMObjectEventObserver.cxx
14-
vtkMRMLLayerDMObjectEventObserver.h
15-
vtkMRMLLayerDMSelectionObserver.cxx
16-
vtkMRMLLayerDMSelectionObserver.h
17-
vtkMRMLLayerDMWidgetEventTranslationNode.cxx
18-
vtkMRMLLayerDMWidgetEventTranslationNode.h
1+
set(classes
2+
vtkMRMLLayerDMNodeReferenceObserver
3+
vtkMRMLLayerDMObjectEventObserver
4+
vtkMRMLLayerDMWidgetEventTranslationNode
5+
vtkMRMLLayerDMSelectionObserver
196
)
207

21-
228
if (VTK_WRAP_PYTHON)
23-
list(APPEND ${KIT}_SRCS
24-
vtkMRMLLayerDMObjectEventObserverScripted.cxx
25-
vtkMRMLLayerDMObjectEventObserverScripted.h
26-
vtkMRMLLayerDMPythonUtil.cxx
27-
vtkMRMLLayerDMPythonUtil.h
9+
list(APPEND classes
10+
vtkMRMLLayerDMObjectEventObserverScripted
11+
vtkMRMLLayerDMPythonUtil
2812
)
2913
endif ()
3014

31-
set(${KIT}_TARGET_LIBRARIES
32-
${MRML_LIBRARIES}
33-
)
34-
35-
#-----------------------------------------------------------------------------
36-
SlicerMacroBuildModuleMRML(
37-
NAME ${KIT}
38-
EXPORT_DIRECTIVE ${${KIT}_EXPORT_DIRECTIVE}
39-
INCLUDE_DIRECTORIES ${${KIT}_INCLUDE_DIRECTORIES}
40-
SRCS ${${KIT}_SRCS}
41-
TARGET_LIBRARIES ${${KIT}_TARGET_LIBRARIES}
42-
)
43-
44-
target_compile_features(${KIT} PUBLIC cxx_std_17)
4515

46-
target_include_directories(
47-
${KIT}
48-
PUBLIC
49-
${${KIT}_SOURCE_DIR}
50-
${${KIT}_BINARY_DIR}
51-
${MRMLCore_INCLUDE_DIRS}
52-
${MRMLLogic_INCLUDE_DIRS}
16+
vtk_module_add_module(VTK::SlicerLayerDMModuleMRML
17+
EXPORT_MACRO_PREFIX VTK_SLICER_LAYERDM_MODULE_MRML
18+
CLASSES ${classes}
5319
)

LayerDM/MRML/vtk.module

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
NAME
2+
VTK::SlicerLayerDMModuleMRML
3+
LIBRARY_NAME
4+
vtkSlicerLayerDMModuleMRML
5+
DEPENDS
6+
VTK::SlicerBaseLogic
7+
VTK::MRMLCore
8+
DESCRIPTION
9+
"vtkSlicerLayerDMModuleMRML"
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
#pragma once
2+
3+
#include "vtkSlicerLayerDMModuleMRMLModule.h"

LayerDM/MRMLDM/CMakeLists.txt

Lines changed: 34 additions & 73 deletions
Original file line numberDiff line numberDiff line change
@@ -1,85 +1,46 @@
1-
project(vtkSlicer${MODULE_NAME}ModuleMRMLDisplayableManager)
2-
3-
set(KIT ${PROJECT_NAME})
4-
5-
set(${KIT}_EXPORT_DIRECTIVE "VTK_SLICER_${MODULE_NAME_UPPER}_MODULE_MRMLDISPLAYABLEMANAGER_EXPORT")
6-
7-
set(${KIT}_INCLUDE_DIRECTORIES)
8-
9-
set(displayable_manager_SRCS
10-
vtkMRMLLayerDisplayableManager.cxx
11-
)
12-
13-
SlicerConfigureDisplayableManagerObjectFactory(
14-
TARGET_NAME ${KIT}
15-
SRCS "${displayable_manager_SRCS}"
16-
EXPORT_MACRO "${${KIT}_EXPORT_DIRECTIVE}"
17-
EXPORT_HEADER "${KIT}Export.h"
18-
OUTPUT_SRCS_VAR displayable_manager_instantiator_SRCS
19-
)
20-
21-
set(${KIT}_SRCS
22-
${displayable_manager_instantiator_SRCS}
23-
${displayable_manager_SRCS}
24-
vtkMRMLLayerDMCameraSynchronizer.cxx
25-
vtkMRMLLayerDMCameraSynchronizer.h
26-
vtkMRMLLayerDMInteractionLogic.cxx
27-
vtkMRMLLayerDMInteractionLogic.h
28-
vtkMRMLLayerDMLayerManager.cxx
29-
vtkMRMLLayerDMLayerManager.h
30-
vtkMRMLLayerDMPipelineCallbackCreator.cxx
31-
vtkMRMLLayerDMPipelineCallbackCreator.h
32-
vtkMRMLLayerDMPipelineCreateHelper.h
33-
vtkMRMLLayerDMPipelineCreatorI.cxx
34-
vtkMRMLLayerDMPipelineCreatorI.h
35-
vtkMRMLLayerDMPipelineFactory.cxx
36-
vtkMRMLLayerDMPipelineFactory.h
37-
vtkMRMLLayerDMPipelineI.cxx
38-
vtkMRMLLayerDMPipelineI.h
39-
vtkMRMLLayerDMPipelineManager.cxx
40-
vtkMRMLLayerDMPipelineManager.h
41-
vtkMRMLLayerDisplayableManager.h
1+
set(classes
2+
vtkMRMLLayerDMCameraSynchronizer
3+
vtkMRMLLayerDMInteractionLogic
4+
vtkMRMLLayerDMLayerManager
5+
vtkMRMLLayerDMPipelineCallbackCreator
6+
vtkMRMLLayerDMPipelineCreatorI
7+
vtkMRMLLayerDMPipelineFactory
8+
vtkMRMLLayerDMPipelineI
9+
vtkMRMLLayerDMPipelineManager
10+
vtkMRMLLayerDisplayableManager
4211
)
4312

4413
if (VTK_WRAP_PYTHON)
45-
list(APPEND ${KIT}_SRCS
46-
vtkMRMLLayerDMPipelineScriptedCreator.cxx
47-
vtkMRMLLayerDMPipelineScriptedCreator.h
48-
vtkMRMLLayerDMScriptedPipelineBridge.cxx
49-
vtkMRMLLayerDMScriptedPipelineBridge.h
14+
list(APPEND classes
15+
vtkMRMLLayerDMPipelineScriptedCreator
16+
vtkMRMLLayerDMScriptedPipelineBridge
5017
)
5118

5219
add_subdirectory(Python)
5320
endif ()
5421

55-
56-
set(${KIT}_TARGET_LIBRARIES
57-
${MRML_LIBRARIES}
58-
vtkSlicer${MODULE_NAME}ModuleMRML
59-
)
60-
61-
#-----------------------------------------------------------------------------
62-
63-
SlicerMacroBuildModuleLogic(
64-
NAME ${KIT}
65-
EXPORT_DIRECTIVE ${${KIT}_EXPORT_DIRECTIVE}
66-
INCLUDE_DIRECTORIES ${${KIT}_INCLUDE_DIRECTORIES}
67-
SRCS ${${KIT}_SRCS}
68-
TARGET_LIBRARIES ${${KIT}_TARGET_LIBRARIES}
22+
# Handle factory registration
23+
set(factory_classes
24+
vtkMRMLLayerDisplayableManager
6925
)
7026

71-
target_include_directories(
72-
${KIT}
73-
PUBLIC
74-
${${KIT}_SOURCE_DIR}
75-
${${KIT}_BINARY_DIR}
27+
foreach(class IN LISTS factory_classes)
28+
vtk_object_factory_declare(BASE ${class} OVERRIDE ${class})
29+
endforeach()
30+
31+
set_property(GLOBAL PROPERTY "_vtk_module_autoinit_include" "\"vtkAutoInit.h\"")
32+
vtk_object_factory_configure(
33+
SOURCE_FILE vtk_object_factory_source
34+
HEADER_FILE vtk_object_factory_header
35+
EXPORT_MACRO "")
36+
37+
# Module configuration
38+
vtk_module_add_module(VTK::SlicerLayerDMModuleMRMLDisplayableManager
39+
EXPORT_MACRO_PREFIX VTK_SLICER_LAYERDM_MODULE_MRMLDISPLAYABLEMANAGER
40+
CLASSES ${classes}
41+
SOURCES ${vtk_object_factory_source}
42+
PRIVATE_HEADERS ${vtk_object_factory_header}
7643
)
7744

78-
if(${KIT}_AUTOINIT)
79-
set_property(TARGET ${KIT}
80-
APPEND PROPERTY COMPILE_DEFINITIONS
81-
"${KIT}_AUTOINIT=1(${KIT})"
82-
)
83-
endif()
84-
85-
target_compile_features(${KIT} PUBLIC cxx_std_17)
45+
vtk_module_definitions(VTK::SlicerLayerDMModuleMRMLDisplayableManager PRIVATE
46+
"vtkSlicerLayerDMModuleMRMLDisplayableManager_AUTOINIT=1(vtkSlicerLayerDMModuleMRMLDisplayableManager)")
Lines changed: 4 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,5 @@
1-
set(LayerDM_PYTHON_SCRIPTS
2-
__init__.py
3-
vtkMRMLLayerDMScriptedPipeline.py
4-
)
5-
6-
set(LayerDM_PYTHON_RESOURCES
7-
)
8-
9-
ctkMacroCompilePythonScript(
10-
TARGET_NAME LayerDMLib
11-
SCRIPTS "${LayerDM_PYTHON_SCRIPTS}"
12-
RESOURCES "${LayerDM_PYTHON_RESOURCES}"
13-
DESTINATION_DIR ${Slicer_BINARY_DIR}/${Slicer_QTSCRIPTEDMODULES_LIB_DIR}/LayerDMLib
14-
INSTALL_DIR ${Slicer_INSTALL_QTSCRIPTEDMODULES_LIB_DIR}/LayerDMLib
15-
NO_INSTALL_SUBDIR
1+
install(FILES
2+
${CMAKE_CURRENT_SOURCE_DIR}/__init__.py
3+
${CMAKE_CURRENT_SOURCE_DIR}/vtkMRMLLayerDMScriptedPipeline.py
4+
DESTINATION LayerDMLib
165
)

LayerDM/MRMLDM/vtk.module

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
NAME
2+
VTK::SlicerLayerDMModuleMRMLDisplayableManager
3+
LIBRARY_NAME
4+
vtkSlicerLayerDMModuleMRMLDisplayableManager
5+
IMPLEMENTABLE
6+
DEPENDS
7+
VTK::MRMLDisplayableManager
8+
VTK::SlicerLayerDMModuleMRML
9+
DESCRIPTION
10+
"vtkSlicerLayerDMModuleMRMLDisplayableManager"

0 commit comments

Comments
 (0)