CMakeLists.txt 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122
  1. project(CTKDICOMCore)
  2. #
  3. # See CTK/CMake/ctkMacroBuildLib.cmake for details
  4. #
  5. set(KIT_export_directive "CTK_DICOM_CORE_EXPORT")
  6. # determine the DCMTK version we're using
  7. if(EXISTS ${DCMTK_config_INCLUDE_DIR}/cfunix.h)
  8. set(_DCMTK_CONFIG_HEADER ${DCMTK_config_INCLUDE_DIR}/cfunix.h)
  9. elseif(EXISTS ${DCMTK_config_INCLUDE_DIR}/osconfig.h)
  10. set(_DCMTK_CONFIG_HEADER ${DCMTK_config_INCLUDE_DIR}/osconfig.h)
  11. else()
  12. message(SEND_ERROR "DCMTK version cannot be determined!")
  13. endif()
  14. file(READ ${_DCMTK_CONFIG_HEADER} _DCMTK_CONFIG)
  15. # simple check, we do not expect anything else
  16. if(_DCMTK_CONFIG MATCHES "PACKAGE_VERSION_NUMBER 360")
  17. set(DCMTK_VERSION_IS_360 1)
  18. message(STATUS "Detected DCMTK 3.6.0, will include backported SCU")
  19. endif()
  20. # Source files
  21. set(KIT_SRCS
  22. ctkDICOMAbstractThumbnailGenerator.cpp
  23. ctkDICOMAbstractThumbnailGenerator.h
  24. ctkDICOMDatabase.cpp
  25. ctkDICOMDatabase.h
  26. ctkDICOMDataset.cpp
  27. ctkDICOMDataset.h
  28. ctkDICOMFilterProxyModel.cpp
  29. ctkDICOMFilterProxyModel.h
  30. ctkDICOMIndexer.cpp
  31. ctkDICOMIndexer.h
  32. ctkDICOMIndexer_p.h
  33. ctkDICOMModel.cpp
  34. ctkDICOMModel.h
  35. ctkDICOMPersonName.cpp
  36. ctkDICOMPersonName.h
  37. ctkDICOMQuery.cpp
  38. ctkDICOMQuery.h
  39. ctkDICOMRetrieve.cpp
  40. ctkDICOMRetrieve.h
  41. ctkDICOMTester.cpp
  42. ctkDICOMTester.h
  43. )
  44. if(DCMTK_VERSION_IS_360)
  45. list(APPEND KIT_SRCS ctkDcmSCU.cc)
  46. endif(DCMTK_VERSION_IS_360)
  47. # Abstract class should not be wrapped !
  48. set_source_files_properties(
  49. ctkDICOMAbstractThumbnailGenerator.h
  50. WRAP_EXCLUDE
  51. )
  52. # Headers that should run through moc
  53. set(KIT_MOC_SRCS
  54. ctkDICOMAbstractThumbnailGenerator.h
  55. ctkDICOMDatabase.h
  56. ctkDICOMIndexer.h
  57. ctkDICOMIndexer_p.h
  58. ctkDICOMFilterProxyModel.h
  59. ctkDICOMModel.h
  60. ctkDICOMQuery.h
  61. ctkDICOMRetrieve.h
  62. ctkDICOMTester.h
  63. )
  64. # UI files
  65. set(KIT_UI_FORMS
  66. )
  67. # Resources
  68. set(KIT_resources
  69. Resources/ctkDICOMCore.qrc
  70. )
  71. # Target libraries - See CMake/ctkFunctionGetTargetLibraries.cmake
  72. # The following macro will read the target libraries from the file 'target_libraries.cmake'
  73. ctkFunctionGetTargetLibraries(KIT_target_libraries)
  74. # create a dcm query/retrieve service config file that points to the build dir
  75. set (DCMQRSCP_STORE_DIR ${CMAKE_CURRENT_BINARY_DIR}/Testing)
  76. configure_file( Resources/dcmqrscp.cfg.in dcmqrscp.cfg )
  77. set (DCMQRSCP_CONFIG ${CMAKE_CURRENT_BINARY_DIR}/dcmqrscp.cfg)
  78. ctkMacroBuildLib(
  79. NAME ${PROJECT_NAME}
  80. EXPORT_DIRECTIVE ${KIT_export_directive}
  81. SRCS ${KIT_SRCS}
  82. MOC_SRCS ${KIT_MOC_SRCS}
  83. UI_FORMS ${KIT_UI_FORMS}
  84. TARGET_LIBRARIES ${KIT_target_libraries}
  85. RESOURCES ${KIT_resources}
  86. LIBRARY_TYPE ${CTK_LIBRARY_MODE}
  87. )
  88. if(CTK_WRAP_PYTHONQT_FULL OR CTK_WRAP_PYTHONQT_LIGHT)
  89. ctkMacroBuildLibWrapper(
  90. TARGET ${PROJECT_NAME}
  91. SRCS ${KIT_SRCS}
  92. WRAPPER_LIBRARY_TYPE ${CTK_LIBRARY_MODE}
  93. )
  94. endif()
  95. # Plugins
  96. #if(CTK_BUILD_QTDESIGNER_PLUGINS)
  97. # add_subdirectory(Plugins)
  98. #endif()
  99. # Testing
  100. if(BUILD_TESTING)
  101. add_subdirectory(Testing)
  102. endif()