CMakeLists.txt 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128
  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. ctkDICOMItem.h
  27. ctkDICOMFilterProxyModel.cpp
  28. ctkDICOMFilterProxyModel.h
  29. ctkDICOMIndexer.cpp
  30. ctkDICOMIndexer.h
  31. ctkDICOMIndexer_p.h
  32. ctkDICOMItem.cpp
  33. ctkDICOMItem.h
  34. ctkDICOMModel.cpp
  35. ctkDICOMModel.h
  36. ctkDICOMObjectModel.cpp
  37. ctkDICOMObjectModel.h
  38. ctkDICOMPersonName.cpp
  39. ctkDICOMPersonName.h
  40. ctkDICOMQuery.cpp
  41. ctkDICOMQuery.h
  42. ctkDICOMRetrieve.cpp
  43. ctkDICOMRetrieve.h
  44. ctkDICOMTester.cpp
  45. ctkDICOMTester.h
  46. ctkDICOMUtil.cpp
  47. ctkDICOMUtil.h
  48. )
  49. if(DCMTK_VERSION_IS_360)
  50. list(APPEND KIT_SRCS ctkDcmSCU.cc)
  51. endif(DCMTK_VERSION_IS_360)
  52. # Abstract class should not be wrapped !
  53. set_source_files_properties(
  54. ctkDICOMAbstractThumbnailGenerator.h
  55. WRAP_EXCLUDE
  56. )
  57. # Headers that should run through moc
  58. set(KIT_MOC_SRCS
  59. ctkDICOMAbstractThumbnailGenerator.h
  60. ctkDICOMDatabase.h
  61. ctkDICOMIndexer.h
  62. ctkDICOMIndexer_p.h
  63. ctkDICOMFilterProxyModel.h
  64. ctkDICOMModel.h
  65. ctkDICOMObjectModel.h
  66. ctkDICOMQuery.h
  67. ctkDICOMRetrieve.h
  68. ctkDICOMTester.h
  69. )
  70. # UI files
  71. set(KIT_UI_FORMS
  72. )
  73. # Resources
  74. set(KIT_resources
  75. Resources/ctkDICOMCore.qrc
  76. )
  77. # Target libraries - See CMake/ctkFunctionGetTargetLibraries.cmake
  78. # The following macro will read the target libraries from the file 'target_libraries.cmake'
  79. ctkFunctionGetTargetLibraries(KIT_target_libraries)
  80. # create a dcm query/retrieve service config file that points to the build dir
  81. set (DCMQRSCP_STORE_DIR ${CMAKE_CURRENT_BINARY_DIR}/Testing)
  82. configure_file( Resources/dcmqrscp.cfg.in dcmqrscp.cfg )
  83. set (DCMQRSCP_CONFIG ${CMAKE_CURRENT_BINARY_DIR}/dcmqrscp.cfg)
  84. ctkMacroBuildLib(
  85. NAME ${PROJECT_NAME}
  86. EXPORT_DIRECTIVE ${KIT_export_directive}
  87. SRCS ${KIT_SRCS}
  88. MOC_SRCS ${KIT_MOC_SRCS}
  89. UI_FORMS ${KIT_UI_FORMS}
  90. TARGET_LIBRARIES ${KIT_target_libraries}
  91. RESOURCES ${KIT_resources}
  92. LIBRARY_TYPE ${CTK_LIBRARY_MODE}
  93. )
  94. if(CTK_WRAP_PYTHONQT_FULL OR CTK_WRAP_PYTHONQT_LIGHT)
  95. ctkMacroBuildLibWrapper(
  96. TARGET ${PROJECT_NAME}
  97. SRCS ${KIT_SRCS}
  98. WRAPPER_LIBRARY_TYPE ${CTK_LIBRARY_MODE}
  99. )
  100. endif()
  101. # Plugins
  102. #if(CTK_BUILD_QTDESIGNER_PLUGINS)
  103. # add_subdirectory(Plugins)
  104. #endif()
  105. # Testing
  106. if(BUILD_TESTING)
  107. add_subdirectory(Testing)
  108. endif()