PROJECT(qSlicerBaseQTCore)

#
# See CMake/Slicer3QTBaseLibraryMacros.cmake for details
#

SET(KIT_export_directive "Q_SLICER_BASE_QTCORE_EXPORT")

# Additional directories to include
SET(KIT_include_directories
  ${qSlicerBaseQTBase_SOURCE_DIR}
  ${qSlicerBaseQTBase_BINARY_DIR}
  ${ModuleDescriptionParser_SOURCE_DIR}
  ${ModuleDescriptionParser_BINARY_DIR}
  ${MRMLCLI_SOURCE_DIR}
  ${MRMLCLI_BINARY_DIR}
  ${FreeSurfer_SOURCE_DIR} # for qSlicerXcedeCatalogIO
  ${FreeSurfer_BINARY_DIR} # for qSlicerXcedeCatalogIO
  )
  
# Source files
SET(KIT_SRCS
  qSlicerCoreApplication.cxx
  qSlicerCoreApplication.h
  qSlicerCoreCommandOptions.cxx
  qSlicerCoreCommandOptions.h
  qSlicerCoreIOManager.cxx
  qSlicerCoreIOManager.h
  qSlicerIO.cxx
  qSlicerIO.h
  qSlicerIOOptions.cxx
  qSlicerIOOptions.h
  qSlicerLoadableModuleFactory.cxx
  qSlicerLoadableModuleFactory.h
  qSlicerModuleManager.cxx
  qSlicerModuleManager.h
  qSlicerModuleFactoryManager.cxx
  qSlicerModuleFactoryManager.h
  qSlicerSceneIO.cxx
  qSlicerSceneIO.h
  qSlicerSlicer2SceneReader.cxx
  qSlicerSlicer2SceneReader.h
  qSlicerXcedeCatalogIO.cxx
  qSlicerXcedeCatalogIO.h
  )

# Headers that should run through moc
SET(KIT_MOC_SRCS
  qSlicerCoreApplication.h
  qSlicerCoreIOManager.h
  qSlicerIO.h
  qSlicerModuleManager.h
  qSlicerSceneIO.h
  qSlicerSlicer2SceneReader.h
  qSlicerXcedeCatalogIO.h
  )

# PythonQt decorator
IF(Slicer3_USE_PYTHONQT)
  LIST(APPEND KIT_MOC_SRCS qSlicerBaseQTBasePythonQtDecorators.h)
ENDIF(Slicer3_USE_PYTHONQT)

# Additional Target libraries (QT libs already included)
SET(KIT_target_libraries
  ModuleDescriptionParser
  MRMLCLI
  qSlicerBaseQTBase
  FreeSurfer # for qSlicerXcedeCatalogIO
  )

# Resources
SET(KIT_resources
  Resources/qSlicerBaseQTCore.qrc
)

# Python wrap 
IF(Slicer3_USE_PYTHONQT)

  LIST(APPEND KIT_target_libraries
    CTKScriptingPythonCore
    )
  # Sources
  LIST(APPEND KIT_SRCS
    qSlicerPythonManager.cxx
    qSlicerPythonManager.h
    )

  # Headers that should run through moc
  LIST(APPEND KIT_MOC_SRCS
    qSlicerPythonManager.h
    )
    
ENDIF(Slicer3_USE_PYTHONQT)

Slicer3_build_slicer_qtbase_library(
  NAME ${PROJECT_NAME}
  EXPORT_DIRECTIVE ${KIT_export_directive}
  INCLUDE_DIRECTORIES ${KIT_include_directories}
  SRCS ${KIT_SRCS}
  MOC_SRCS ${KIT_MOC_SRCS}
  TARGET_LIBRARIES ${KIT_target_libraries}
  RESOURCES ${KIT_resources}
  )

# Plugins
#ADD_SUBDIRECTORY(Plugins)

# Testing
IF(BUILD_TESTING)
  ADD_SUBDIRECTORY(Testing)
ENDIF(BUILD_TESTING)
