CMakeLists.txt 2.9 KB

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