PageRenderTime 64ms CodeModel.GetById 23ms RepoModel.GetById 0ms app.codeStats 0ms

/Base/QTGUI/CMakeLists.txt

https://github.com/Slicer/Slicer
CMake | 398 lines | 328 code | 40 blank | 30 comment | 18 complexity | 69dfca56fd1268d8ea4049b553f47298 MD5 | raw file
  1. project(qSlicerBaseQTGUI)
  2. #
  3. # See CMake/SlicerMacroBuildBaseQtLibrary.cmake for details
  4. #
  5. set(KIT_export_directive "Q_SLICER_BASE_QTGUI_EXPORT")
  6. # Additional directories to include
  7. set(KIT_include_directories
  8. ${MRMLLogic_INCLUDE_DIRS}
  9. ${MRMLDisplayableManager_INCLUDE_DIRS}
  10. ${qSlicerBaseQTCore_SOURCE_DIR}
  11. ${qSlicerBaseQTCore_BINARY_DIR}
  12. )
  13. # Source files
  14. set(KIT_SRCS
  15. qSlicerAbstractModule.cxx
  16. qSlicerAbstractModule.h
  17. qSlicerAbstractModulePanel.cxx
  18. qSlicerAbstractModulePanel.h
  19. qSlicerAbstractModuleWidget.cxx
  20. qSlicerAbstractModuleWidget.h
  21. qSlicerActionsDialog.cxx
  22. qSlicerActionsDialog.h
  23. qSlicerApplication.cxx
  24. qSlicerApplication.h
  25. qSlicerCommandOptions.cxx
  26. qSlicerCommandOptions.h
  27. qSlicerDarkStyle.cxx
  28. qSlicerDarkStyle.h
  29. qSlicerDataDialog.cxx
  30. qSlicerDataDialog.h
  31. qSlicerDirectoryListView.cxx
  32. qSlicerDirectoryListView.h
  33. qSlicerExportNodeDialog.cxx
  34. qSlicerExportNodeDialog.h
  35. qSlicerFileDialog.cxx
  36. qSlicerFileDialog.h
  37. qSlicerFileWriterOptionsWidget.cxx
  38. qSlicerFileWriterOptionsWidget.h
  39. qSlicerIOManager.cxx
  40. qSlicerIOManager.h
  41. qSlicerIOOptionsWidget.cxx
  42. qSlicerIOOptionsWidget.h
  43. qSlicerLayoutManager.cxx
  44. qSlicerLayoutManager.h
  45. qSlicerLightStyle.cxx
  46. qSlicerLightStyle.h
  47. qSlicerLoadableModule.cxx
  48. qSlicerLoadableModule.h
  49. qSlicerModelsDialog.cxx
  50. qSlicerModelsDialog.h
  51. qSlicerModelsDialog_p.h
  52. qSlicerModuleFactoryFilterModel.cxx
  53. qSlicerModuleFactoryFilterModel.h
  54. qSlicerModuleFinderDialog.cxx
  55. qSlicerModuleFinderDialog.h
  56. qSlicerModulesListView.cxx
  57. qSlicerModulesListView.h
  58. qSlicerModulesMenu.cxx
  59. qSlicerModulesMenu.h
  60. qSlicerModulePanel.cxx
  61. qSlicerModulePanel.h
  62. qSlicerModuleSelectorToolBar.cxx
  63. qSlicerModuleSelectorToolBar.h
  64. qSlicerMouseModeToolBar.cxx
  65. qSlicerMouseModeToolBar.h
  66. qSlicerMouseModeToolBar_p.h
  67. qSlicerNodeWriter.cxx
  68. qSlicerNodeWriter.h
  69. qSlicerNodeWriterOptionsWidget.cxx
  70. qSlicerNodeWriterOptionsWidget.h
  71. qSlicerNodeWriterOptionsWidget_p.h
  72. qSlicerQListQVariantMapMetaType.h
  73. qSlicerSaveDataDialog.cxx
  74. qSlicerSaveDataDialog.h
  75. qSlicerSettingsCachePanel.cxx
  76. qSlicerSettingsCachePanel.h
  77. qSlicerSettingsGeneralPanel.cxx
  78. qSlicerSettingsGeneralPanel.h
  79. qSlicerSettingsModulesPanel.cxx
  80. qSlicerSettingsModulesPanel.h
  81. qSlicerSettingsStylesPanel.cxx
  82. qSlicerSettingsStylesPanel.h
  83. qSlicerSettingsViewsPanel.cxx
  84. qSlicerSettingsViewsPanel.h
  85. qSlicerSettingsDeveloperPanel.cxx
  86. qSlicerSettingsDeveloperPanel.h
  87. qSlicerSettingsUserInformationPanel.cxx
  88. qSlicerSettingsUserInformationPanel.h
  89. qSlicerStyle.cxx
  90. qSlicerStyle.h
  91. qSlicerViewersToolBar.cxx
  92. qSlicerViewersToolBar.h
  93. qSlicerViewersToolBar_p.h
  94. qSlicerWidget.cxx
  95. qSlicerWidget.h
  96. qSlicerSingletonViewFactory.cxx
  97. qSlicerSingletonViewFactory.h
  98. )
  99. if(Slicer_BUILD_EXTENSIONMANAGER_SUPPORT)
  100. list(APPEND KIT_SRCS
  101. qSlicerExtensionsLocalWidget.cxx
  102. qSlicerExtensionsLocalWidget.h
  103. qSlicerExtensionsManagerDialog.cxx
  104. qSlicerExtensionsManagerDialog.h
  105. qSlicerExtensionsManagerWidget.cxx
  106. qSlicerExtensionsManagerWidget.h
  107. qSlicerSettingsExtensionsPanel.cxx
  108. qSlicerSettingsExtensionsPanel.h
  109. )
  110. if(Slicer_BUILD_WEBENGINE_SUPPORT)
  111. list(APPEND KIT_SRCS
  112. qSlicerExtensionsServerWidget.cxx
  113. qSlicerExtensionsServerWidget.h
  114. qSlicerExtensionsServerWidget_p.h
  115. )
  116. endif()
  117. endif()
  118. if(Slicer_BUILD_I18N_SUPPORT)
  119. list(APPEND KIT_SRCS
  120. qSlicerSettingsInternationalizationPanel.cxx
  121. qSlicerSettingsInternationalizationPanel.h
  122. )
  123. endif()
  124. if(Slicer_BUILD_WEBENGINE_SUPPORT)
  125. list(APPEND KIT_SRCS
  126. qSlicerWebPythonProxy.cxx
  127. qSlicerWebPythonProxy.h
  128. qSlicerWebDownloadWidget.cxx
  129. qSlicerWebDownloadWidget.h
  130. qSlicerWebWidget.cxx
  131. qSlicerWebWidget.h
  132. qSlicerWebWidget_p.h
  133. )
  134. endif()
  135. if(Slicer_USE_PYTHONQT)
  136. list(APPEND KIT_SRCS
  137. qSlicerScriptedLoadableModuleFactory.cxx
  138. qSlicerScriptedLoadableModuleFactory.h
  139. qSlicerScriptedLoadableModuleWidget.cxx
  140. qSlicerScriptedLoadableModuleWidget.h
  141. qSlicerScriptedLoadableModule.cxx
  142. qSlicerScriptedLoadableModule.h
  143. qSlicerScriptedFileDialog.cxx
  144. qSlicerScriptedFileDialog.h
  145. )
  146. endif()
  147. if(Slicer_USE_PYTHONQT)
  148. list(APPEND KIT_SRCS
  149. qSlicerSettingsPythonPanel.cxx
  150. qSlicerSettingsPythonPanel.h
  151. )
  152. endif()
  153. # Since the wrapper doesn't consider hierarchy of classes, let's exclude
  154. # classes deriving from pure abstract class and remaining abstract pure
  155. set_source_files_properties(
  156. qSlicerAbstractModule.h
  157. qSlicerAbstractModulePanel.h
  158. qSlicerAbstractModuleWidget.h
  159. qSlicerFileDialog.h
  160. qSlicerLoadableModule.h
  161. WRAP_EXCLUDE
  162. )
  163. # Headers that should run through moc
  164. set(KIT_MOC_SRCS
  165. qSlicerAbstractModule.h
  166. qSlicerAbstractModulePanel.h
  167. qSlicerAbstractModuleWidget.h
  168. qSlicerActionsDialog.h
  169. qSlicerApplication.h
  170. qSlicerCommandOptions.h
  171. qSlicerDarkStyle.h
  172. qSlicerDataDialog.h
  173. qSlicerDataDialog_p.h
  174. qSlicerDirectoryListView.h
  175. qSlicerExportNodeDialog.h
  176. qSlicerExportNodeDialog_p.h
  177. qSlicerFileDialog.h
  178. qSlicerFileWriterOptionsWidget.h
  179. qSlicerIOManager.h
  180. qSlicerIOOptionsWidget.h
  181. qSlicerLayoutManager.h
  182. qSlicerLightStyle.h
  183. qSlicerLoadableModule.h
  184. qSlicerModelsDialog.h
  185. qSlicerModelsDialog_p.h
  186. qSlicerModuleFactoryFilterModel.h
  187. qSlicerModuleFinderDialog.h
  188. qSlicerModulesListView.h
  189. qSlicerModulesMenu.h
  190. qSlicerModulePanel.h
  191. qSlicerModuleSelectorToolBar.h
  192. qSlicerMouseModeToolBar.h
  193. qSlicerMouseModeToolBar_p.h
  194. qSlicerNodeWriter.h
  195. qSlicerNodeWriterOptionsWidget.h
  196. qSlicerNodeWriterOptionsWidget_p.h
  197. qSlicerSaveDataDialog.h
  198. qSlicerSaveDataDialog_p.h
  199. qSlicerSettingsCachePanel.h
  200. qSlicerSettingsGeneralPanel.h
  201. qSlicerSettingsModulesPanel.h
  202. qSlicerSettingsStylesPanel.h
  203. qSlicerSettingsViewsPanel.h
  204. qSlicerSettingsDeveloperPanel.h
  205. qSlicerSettingsUserInformationPanel.h
  206. qSlicerStyle.h
  207. qSlicerViewersToolBar.h
  208. qSlicerViewersToolBar_p.h
  209. qSlicerWidget.h
  210. qSlicerSingletonViewFactory.h
  211. )
  212. if(Slicer_BUILD_EXTENSIONMANAGER_SUPPORT)
  213. list(APPEND KIT_MOC_SRCS
  214. qSlicerExtensionsLocalWidget.h
  215. qSlicerExtensionsManagerDialog.h
  216. qSlicerExtensionsManagerWidget.h
  217. qSlicerSettingsExtensionsPanel.h
  218. )
  219. if(Slicer_BUILD_WEBENGINE_SUPPORT)
  220. list(APPEND KIT_MOC_SRCS
  221. qSlicerExtensionsServerWidget.h
  222. qSlicerExtensionsServerWidget_p.h
  223. )
  224. endif()
  225. endif()
  226. if(Slicer_BUILD_I18N_SUPPORT)
  227. list(APPEND KIT_MOC_SRCS
  228. qSlicerSettingsInternationalizationPanel.h
  229. )
  230. endif()
  231. if(Slicer_BUILD_WEBENGINE_SUPPORT)
  232. list(APPEND KIT_MOC_SRCS
  233. qSlicerWebDownloadWidget.h
  234. qSlicerWebPythonProxy.h
  235. qSlicerWebWidget.h
  236. qSlicerWebWidget_p.h
  237. )
  238. endif()
  239. if(Slicer_USE_PYTHONQT)
  240. list(APPEND KIT_MOC_SRCS
  241. qSlicerScriptedLoadableModule.h
  242. qSlicerScriptedLoadableModuleWidget.h
  243. qSlicerScriptedFileDialog.h
  244. )
  245. endif()
  246. # PythonQt decorator
  247. if(Slicer_USE_PYTHONQT)
  248. list(APPEND KIT_MOC_SRCS
  249. qSlicerSettingsPythonPanel.h
  250. )
  251. endif()
  252. # UI files
  253. set(KIT_UI_SRCS
  254. Resources/UI/qSlicerActionsDialog.ui
  255. Resources/UI/qSlicerDataDialog.ui
  256. Resources/UI/qSlicerExportNodeDialog.ui
  257. Resources/UI/qSlicerModelsDialog.ui
  258. Resources/UI/qSlicerModuleFinderDialog.ui
  259. Resources/UI/qSlicerModulePanel.ui
  260. Resources/UI/qSlicerNodeWriterOptionsWidget.ui
  261. Resources/UI/qSlicerSaveDataDialog.ui
  262. Resources/UI/qSlicerSettingsCachePanel.ui
  263. Resources/UI/qSlicerSettingsGeneralPanel.ui
  264. Resources/UI/qSlicerSettingsInternationalizationPanel.ui
  265. Resources/UI/qSlicerSettingsModulesPanel.ui
  266. Resources/UI/qSlicerSettingsStylesPanel.ui
  267. Resources/UI/qSlicerSettingsViewsPanel.ui
  268. Resources/UI/qSlicerSettingsDeveloperPanel.ui
  269. Resources/UI/qSlicerSettingsUserInformationPanel.ui
  270. Resources/UI/qSlicerWebWidget.ui
  271. )
  272. if(Slicer_BUILD_EXTENSIONMANAGER_SUPPORT)
  273. list(APPEND KIT_UI_SRCS
  274. Resources/UI/qSlicerExtensionsActionsWidget.ui
  275. Resources/UI/qSlicerExtensionsButtonBox.ui
  276. Resources/UI/qSlicerExtensionsManagerDialog.ui
  277. Resources/UI/qSlicerExtensionsManagerWidget.ui
  278. Resources/UI/qSlicerExtensionsToolsWidget.ui
  279. Resources/UI/qSlicerSettingsExtensionsPanel.ui
  280. )
  281. endif()
  282. # PythonQt decorator
  283. if(Slicer_USE_PYTHONQT)
  284. list(APPEND KIT_UI_SRCS
  285. Resources/UI/qSlicerSettingsPythonPanel.ui
  286. )
  287. endif()
  288. # Additional Target libraries (Qt libs already included)
  289. set(KIT_target_libraries
  290. qSlicerBaseQTCore
  291. qMRMLWidgets
  292. )
  293. # Python wrap
  294. if(Slicer_USE_PYTHONQT)
  295. list(APPEND KIT_target_libraries
  296. CTKScriptingPythonWidgets
  297. )
  298. endif()
  299. # DICOM
  300. if(Slicer_BUILD_DICOM_SUPPORT)
  301. list(APPEND KIT_target_libraries
  302. CTKDICOMWidgets
  303. )
  304. endif()
  305. # Resources
  306. set(KIT_resources
  307. Resources/qSlicerBaseQTGUI.qrc
  308. ${qMRMLWidgets_SOURCE_DIR}/Resources/qMRMLWidgets.qrc
  309. )
  310. # Python wrap
  311. if(Slicer_USE_PYTHONQT)
  312. # Sources
  313. list(APPEND KIT_SRCS
  314. qSlicerPythonManager.cxx
  315. qSlicerPythonManager.h
  316. )
  317. # Headers that should run through moc
  318. list(APPEND KIT_MOC_SRCS
  319. qSlicerPythonManager.h
  320. )
  321. endif()
  322. SlicerMacroBuildBaseQtLibrary(
  323. NAME ${PROJECT_NAME}
  324. EXPORT_DIRECTIVE ${KIT_export_directive}
  325. INCLUDE_DIRECTORIES ${KIT_include_directories}
  326. SRCS ${KIT_SRCS}
  327. MOC_SRCS ${KIT_MOC_SRCS}
  328. UI_SRCS ${KIT_UI_SRCS}
  329. TARGET_LIBRARIES ${KIT_target_libraries}
  330. RESOURCES ${KIT_resources}
  331. WRAP_PYTHONQT
  332. )
  333. #-----------------------------------------------------------------------------
  334. # Slicer icon engine
  335. #-----------------------------------------------------------------------------
  336. set(CTK_LIBRARIES CTKWidgets)
  337. ctkMacroBuildQtIconEnginesPlugin(
  338. NAME qSlicerIconEnginePlugin
  339. EXPORT_DIRECTIVE "Q_SLICER_BASE_QTGUI_ICON_ENGINE_EXPORT"
  340. FOLDER "Core-Base"
  341. SRCS qSlicerIconEnginePlugin.cxx qSlicerIconEnginePlugin.h
  342. MOC_SRCS qSlicerIconEnginePlugin.h
  343. TARGET_LIBRARIES ${QT_LIBRARIES} ${CTK_LIBRARIES}
  344. )
  345. #-----------------------------------------------------------------------------
  346. # Qt Plugins
  347. #-----------------------------------------------------------------------------
  348. if(Slicer_BUILD_QT_DESIGNER_PLUGINS)
  349. add_subdirectory(DesignerPlugins)
  350. endif()
  351. add_subdirectory(StylePlugins)
  352. #-----------------------------------------------------------------------------
  353. # Testing
  354. # Note: Within both Testing/Cxx and Testing/Python, some code is useful to both Slicer and the
  355. # Extensions. For that reason, the Testing directory is added unconditionally.
  356. # The code specific to Slicer will be excluded directly in either Testing/Python
  357. # or Testing/Cxx.
  358. add_subdirectory(Testing)