CMakeLists.txt 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  1. project(CTKDICOMCore)
  2. #
  3. # See CTK/CMake/ctkMacroBuildLib.cmake for details
  4. #
  5. set(KIT_export_directive "CTK_DICOM_CORE_EXPORT")
  6. # Source files
  7. set(KIT_SRCS
  8. ctkDICOMAbstractThumbnailGenerator.cpp
  9. ctkDICOMAbstractThumbnailGenerator.h
  10. ctkDICOMDatabase.cpp
  11. ctkDICOMDatabase.h
  12. ctkDICOMItem.h
  13. ctkDICOMFilterProxyModel.cpp
  14. ctkDICOMFilterProxyModel.h
  15. ctkDICOMIndexer.cpp
  16. ctkDICOMIndexer.h
  17. ctkDICOMIndexer_p.h
  18. ctkDICOMItem.cpp
  19. ctkDICOMItem.h
  20. ctkDICOMModel.cpp
  21. ctkDICOMModel.h
  22. ctkDICOMPersonName.cpp
  23. ctkDICOMPersonName.h
  24. ctkDICOMQuery.cpp
  25. ctkDICOMQuery.h
  26. ctkDICOMRetrieve.cpp
  27. ctkDICOMRetrieve.h
  28. ctkDICOMTester.cpp
  29. ctkDICOMTester.h
  30. ctkDICOMUtil.cpp
  31. ctkDICOMUtil.h
  32. )
  33. # Abstract class should not be wrapped !
  34. set_source_files_properties(
  35. ctkDICOMAbstractThumbnailGenerator.h
  36. WRAP_EXCLUDE
  37. )
  38. # Headers that should run through moc
  39. set(KIT_MOC_SRCS
  40. ctkDICOMAbstractThumbnailGenerator.h
  41. ctkDICOMDatabase.h
  42. ctkDICOMIndexer.h
  43. ctkDICOMIndexer_p.h
  44. ctkDICOMFilterProxyModel.h
  45. ctkDICOMModel.h
  46. ctkDICOMQuery.h
  47. ctkDICOMRetrieve.h
  48. ctkDICOMTester.h
  49. )
  50. # UI files
  51. set(KIT_UI_FORMS
  52. )
  53. # Resources
  54. set(KIT_resources
  55. Resources/ctkDICOMCore.qrc
  56. )
  57. # Target libraries - See CMake/ctkFunctionGetTargetLibraries.cmake
  58. # The following macro will read the target libraries from the file 'target_libraries.cmake'
  59. ctkFunctionGetTargetLibraries(KIT_target_libraries)
  60. if(CTK_QT_VERSION VERSION_GREATER "4")
  61. list(APPEND KIT_target_libraries Qt5::Sql)
  62. endif()
  63. # create a dcm query/retrieve service config file that points to the build dir
  64. set (DCMQRSCP_STORE_DIR ${CMAKE_CURRENT_BINARY_DIR}/Testing)
  65. configure_file( Resources/dcmqrscp.cfg.in dcmqrscp.cfg )
  66. set (DCMQRSCP_CONFIG ${CMAKE_CURRENT_BINARY_DIR}/dcmqrscp.cfg)
  67. ctkMacroBuildLib(
  68. NAME ${PROJECT_NAME}
  69. EXPORT_DIRECTIVE ${KIT_export_directive}
  70. SRCS ${KIT_SRCS}
  71. MOC_SRCS ${KIT_MOC_SRCS}
  72. UI_FORMS ${KIT_UI_FORMS}
  73. TARGET_LIBRARIES ${KIT_target_libraries}
  74. RESOURCES ${KIT_resources}
  75. LIBRARY_TYPE ${CTK_LIBRARY_MODE}
  76. )
  77. if(DEFINED DCMTK_HAVE_CONFIG_H_OPTIONAL AND NOT DCMTK_HAVE_CONFIG_H_OPTIONAL)
  78. # Workaround Debian packaging issue - See FindDCMTK.cmake for more details
  79. set_target_properties(${PROJECT_NAME} PROPERTIES COMPILE_DEFINITIONS ${DCMTK_DEFINITIONS})
  80. if("${CMAKE_VERSION}" VERSION_GREATER 2.8.10)
  81. set_target_properties(${PROJECT_NAME} PROPERTIES INTERFACE_COMPILE_DEFINITIONS ${DCMTK_DEFINITIONS})
  82. endif()
  83. endif()
  84. if(CTK_WRAP_PYTHONQT_LIGHT)
  85. ctkMacroBuildLibWrapper(
  86. TARGET ${PROJECT_NAME}
  87. SRCS ${KIT_SRCS}
  88. WRAPPER_LIBRARY_TYPE ${CTK_LIBRARY_MODE}
  89. )
  90. endif()
  91. # Plugins
  92. #if(CTK_BUILD_QTDESIGNER_PLUGINS)
  93. # add_subdirectory(Plugins)
  94. #endif()
  95. # Testing
  96. if(BUILD_TESTING)
  97. add_subdirectory(Testing)
  98. endif()