project(CTKDICOMWidgets)

#
# See CTK/CMake/ctkMacroBuildLib.cmake for details
#

set(KIT_export_directive "CTK_DICOM_WIDGETS_EXPORT")

# Source files
set(KIT_SRCS
  ctkDICOMAppWidget.cpp
  ctkDICOMAppWidget.h
  ctkDICOMBrowser.cpp
  ctkDICOMBrowser.h
  ctkDICOMObjectModel.cpp
  ctkDICOMObjectModel.h
  ctkDICOMDirectoryListWidget.cpp
  ctkDICOMDirectoryListWidget.h
  ctkDICOMImage.cpp
  ctkDICOMImage.h
  ctkDICOMImportWidget.cpp
  ctkDICOMImportWidget.h
  ctkDICOMItemView.cpp
  ctkDICOMItemView.h
  ctkDICOMJobListWidget.cpp
  ctkDICOMJobListWidget.h
  ctkDICOMListenerWidget.cpp
  ctkDICOMListenerWidget.h
  ctkDICOMMetadataDialog.cpp
  ctkDICOMMetadataDialog.h
  ctkDICOMQueryResultsTabWidget.cpp
  ctkDICOMQueryResultsTabWidget.h
  ctkDICOMQueryRetrieveWidget.cpp
  ctkDICOMQueryRetrieveWidget.h
  ctkDICOMQueryWidget.cpp
  ctkDICOMQueryWidget.h
  ctkDICOMObjectListWidget.cpp
  ctkDICOMObjectListWidget.h
  ctkDICOMPatientDelegate.cpp
  ctkDICOMPatientDelegate.h
  ctkDICOMPatientView.cpp
  ctkDICOMPatientView.h
  ctkDICOMSeriesDelegate.cpp
  ctkDICOMSeriesDelegate.h
  ctkDICOMSeriesTableView.cpp
  ctkDICOMSeriesTableView.h
  ctkDICOMServerNodeWidget.cpp
  ctkDICOMServerNodeWidget.h
  ctkDICOMServerNodeWidget2.cpp
  ctkDICOMServerNodeWidget2.h
  ctkDICOMStudyListView.cpp
  ctkDICOMStudyListView.h
  ctkDICOMStudyDelegate.cpp
  ctkDICOMStudyDelegate.h
  ctkDICOMTableManager.h
  ctkDICOMTableManager.cpp
  ctkDICOMTableView.cpp
  ctkDICOMTableView.h
  ctkDICOMThumbnailListWidget.cpp
  ctkDICOMThumbnailListWidget.h
  ctkDICOMVisualBrowserWidget.cpp
  ctkDICOMVisualBrowserWidget.h
  )

# Headers that should run through moc
set(KIT_MOC_SRCS
  ctkDICOMAppWidget.h
  ctkDICOMBrowser.h
  ctkDICOMItemView.h
  ctkDICOMDirectoryListWidget.h
  ctkDICOMImage.h
  ctkDICOMImportWidget.h
  ctkDICOMJobListWidget.h
  ctkDICOMMetadataDialog.h
  ctkDICOMObjectListWidget.h
  ctkDICOMObjectModel.h
  ctkDICOMQueryRetrieveWidget.h
  ctkDICOMQueryWidget.h
  ctkDICOMPatientDelegate.h
  ctkDICOMPatientView.h
  ctkDICOMSeriesDelegate.h
  ctkDICOMSeriesTableView.h
  ctkDICOMServerNodeWidget.h
  ctkDICOMServerNodeWidget2.h
  ctkDICOMStudyListView.h
  ctkDICOMStudyDelegate.h
  ctkDICOMTableManager.h
  ctkDICOMTableView.h
  ctkDICOMThumbnailListWidget.h
  ctkDICOMVisualBrowserWidget.h
  )

# UI files - includes new widgets
set(KIT_UI_FORMS
  Resources/UI/ctkDICOMAppWidget.ui
  Resources/UI/ctkDICOMBrowser.ui
  Resources/UI/ctkDICOMDirectoryListWidget.ui
  Resources/UI/ctkDICOMImportWidget.ui
  Resources/UI/ctkDICOMJobListWidget.ui
  Resources/UI/ctkDICOMListenerWidget.ui
  Resources/UI/ctkDICOMQueryRetrieveWidget.ui
  Resources/UI/ctkDICOMQueryWidget.ui
  Resources/UI/ctkDICOMObjectListWidget.ui
  Resources/UI/ctkDICOMServerNodeWidget.ui
  Resources/UI/ctkDICOMServerNodeWidget2.ui
  Resources/UI/ctkDICOMTableManager.ui
  Resources/UI/ctkDICOMTableView.ui
  Resources/UI/ctkDICOMVisualBrowserWidget.ui
)

# Resources
set(KIT_resources
  Resources/UI/ctkDICOMWidget.qrc
)

# Target libraries - See CMake/ctkFunctionGetTargetLibraries.cmake
# The following macro will read the target libraries from the file 'target_libraries.cmake'
ctkFunctionGetTargetLibraries(KIT_target_libraries)

list(APPEND KIT_target_libraries Qt${CTK_QT_VERSION}::Svg)

ctkMacroBuildLib(
  NAME ${PROJECT_NAME}
  EXPORT_DIRECTIVE ${KIT_export_directive}
  SRCS ${KIT_SRCS}
  UI_FORMS ${KIT_UI_FORMS}
  TARGET_LIBRARIES ${KIT_target_libraries}
  RESOURCES ${KIT_resources}
  LIBRARY_TYPE ${CTK_LIBRARY_MODE}
  )

if(CTK_WRAP_PYTHONQT_LIGHT)
  ctkMacroBuildLibWrapper(
    TARGET ${PROJECT_NAME}
    SRCS ${KIT_SRCS}
    WRAPPER_LIBRARY_TYPE ${CTK_LIBRARY_MODE}
    )
endif()

# Plugins
if(CTK_BUILD_QTDESIGNER_PLUGINS)
  add_subdirectory(Plugins)
endif()

# Testing
if(BUILD_TESTING)
  add_subdirectory(Testing)
endif()
