CMakeLists.txt 2.9 KB

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