CMakeLists.txt 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197
  1. project(CTKVisualizationVTKCore)
  2. #
  3. # 3rd party dependencies
  4. #
  5. include(${VTK_USE_FILE})
  6. if(NOT DEFINED VTK_RENDERING_BACKEND)
  7. set(VTK_RENDERING_BACKEND "OpenGL")
  8. endif()
  9. if(CTK_LIB_Scripting/Python/Core AND CTK_LIB_Scripting/Python/Core_PYTHONQT_USE_VTK)
  10. find_package(PythonQt REQUIRED)
  11. endif()
  12. #
  13. # See CTK/CMake/ctkMacroBuildLib.cmake for details
  14. #
  15. set(KIT_export_directive "CTK_VISUALIZATION_VTK_CORE_EXPORT")
  16. # Source files
  17. set(KIT_SRCS
  18. ctkVTKConnection.cpp
  19. ctkVTKConnection.h
  20. ctkVTKErrorLogMessageHandler.cpp
  21. ctkVTKErrorLogMessageHandler.h
  22. ctkVTKObject.h
  23. ctkVTKObjectEventsObserver.cpp
  24. ctkVTKObjectEventsObserver.h
  25. ctkVTKScalarsToColorsUtils.cpp
  26. ctkVTKScalarsToColorsUtils.h
  27. vtkLightBoxRendererManager.cpp
  28. vtkLightBoxRendererManager.h
  29. )
  30. # Headers that should run through moc
  31. set(KIT_MOC_SRCS
  32. ctkVTKConnection.h
  33. ctkVTKObjectEventsObserver.h
  34. )
  35. # UI files
  36. set(KIT_UI_FORMS
  37. )
  38. # Resources
  39. set(KIT_resources
  40. )
  41. if(CTK_LIB_Scripting/Python/Core AND CTK_LIB_Scripting/Python/Core_PYTHONQT_USE_VTK)
  42. list(APPEND KIT_SRCS
  43. ctkVTKPythonQtWrapperFactory.cpp
  44. )
  45. endif()
  46. if(CTK_LIB_Scripting/Python/Core AND CTK_LIB_Scripting/Python/Core_PYTHONQT_USE_VTK)
  47. include_directories(
  48. ${PYTHON_INCLUDE_DIRS}
  49. ${PYTHONQT_INCLUDE_DIR}
  50. )
  51. endif()
  52. # Set VTK_LIBRARIES variable
  53. if(${VTK_VERSION_MAJOR} GREATER 5)
  54. set(VTK_LIBRARIES
  55. # a few of these have to be specified explicitly to workaround
  56. # underlinked libraries from the debian VTK package
  57. # see Debian bug #747436
  58. vtkCommonCore
  59. vtkCommonDataModel
  60. vtkCommonSystem
  61. vtkFiltersStatistics
  62. vtkIOImage
  63. vtkInteractionStyle
  64. vtkRenderingAnnotation
  65. vtkRenderingCore
  66. )
  67. if(TARGET vtkRendering${VTK_RENDERING_BACKEND})
  68. list(APPEND VTK_LIBRARIES vtkRendering${VTK_RENDERING_BACKEND})
  69. endif()
  70. if(TARGET vtkIOMPIImage)
  71. list(APPEND VTK_LIBRARIES vtkIOMPIImage )
  72. endif()
  73. if(TARGET vtkRenderingMatplotlib)
  74. list(APPEND VTK_LIBRARIES vtkRenderingMatplotlib )
  75. endif()
  76. if(TARGET vtkTestingRendering)
  77. list(APPEND VTK_LIBRARIES vtkTestingRendering )
  78. endif()
  79. # With VTK > 6.2.0 (commit 4f7460a5), vtkRenderingFreeTypeOpenGL has been removed.
  80. if(TARGET vtkRenderingFreeTypeOpenGL)
  81. list(APPEND VTK_LIBRARIES vtkRenderingFreeTypeOpenGL)
  82. endif()
  83. if(TARGET vtkRenderingFreeType )
  84. list(APPEND VTK_LIBRARIES vtkRenderingFreeType)
  85. endif()
  86. if (TARGET vtkRenderingFreeTypeFontConfig AND UNIX AND NOT APPLE)
  87. list(APPEND VTK_LIBRARIES
  88. vtkRenderingFreeTypeFontConfig
  89. )
  90. endif()
  91. else()
  92. set(VTK_LIBRARIES
  93. vtkCommon
  94. vtkFiltering
  95. vtkRendering
  96. vtkHybrid
  97. )
  98. endif()
  99. if(CTK_LIB_Visualization/VTK/Widgets_USE_TRANSFER_FUNCTION_CHARTS)
  100. set(CTK_USE_CHARTS 1)
  101. endif()
  102. if(${CTK_USE_CHARTS})
  103. set(KIT_SRCS
  104. vtkDiscretizableColorTransferChart.cpp
  105. vtkDiscretizableColorTransferChart.h
  106. vtkDiscretizableColorTransferControlPointsItem.cpp
  107. vtkDiscretizableColorTransferControlPointsItem.h
  108. vtkScalarsToColorsContextItem.cpp
  109. vtkScalarsToColorsContextItem.h
  110. vtkScalarsToColorsHistogramChart.cpp
  111. vtkScalarsToColorsHistogramChart.h
  112. vtkScalarsToColorsPreviewChart.cpp
  113. vtkScalarsToColorsPreviewChart.h
  114. ${KIT_SRCS})
  115. if(${VTK_VERSION_MAJOR} GREATER 5)
  116. set(VTK_LIBRARIES
  117. vtkChartsCore
  118. ${VTK_LIBRARIES})
  119. else()
  120. set(VTK_LIBRARIES
  121. vtkCharts
  122. ${VTK_LIBRARIES})
  123. endif()
  124. add_definitions(-DCTK_USE_CHARTS)
  125. set(VTK_LIBRARIES
  126. vtkViewsContext2D
  127. ${VTK_LIBRARIES})
  128. if(TARGET vtkRenderingContext${VTK_RENDERING_BACKEND})
  129. list(APPEND VTK_LIBRARIES vtkRenderingContext${VTK_RENDERING_BACKEND})
  130. endif()
  131. endif()
  132. if(CTK_LIB_Scripting/Python/Core AND CTK_LIB_Scripting/Python/Core_PYTHONQT_USE_VTK)
  133. list(APPEND VTK_LIBRARIES ${PYTHON_LIBRARY} ${PYTHONQT_LIBRARIES})
  134. if(${VTK_VERSION_MAJOR} GREATER 5)
  135. list(APPEND VTK_LIBRARIES vtkWrappingPythonCore)
  136. elseif(${VTK_VERSION_MAJOR}.${VTK_VERSION_MINOR} VERSION_GREATER 5.6)
  137. list(APPEND VTK_LIBRARIES vtkPythonCore)
  138. else()
  139. list(APPEND VTK_LIBRARIES vtkCommonPythonD)
  140. endif()
  141. endif()
  142. if(Q_WS_X11)
  143. # If the faster 'gold' linker is used, to avoid complaints about undefined symbol
  144. # 'XGetWindowAttributes', 'XCreateWindow', ..., let's link against X11 libraries.
  145. find_package(X11)
  146. list(APPEND VTK_LIBRARIES ${X11_LIBRARIES})
  147. endif()
  148. # Target libraries - See CMake/ctkFunctionGetTargetLibraries.cmake
  149. # The following macro will read the target libraries from the file 'target_libraries.cmake'
  150. ctkFunctionGetTargetLibraries(KIT_target_libraries)
  151. ctkMacroBuildLib(
  152. NAME ${PROJECT_NAME}
  153. EXPORT_DIRECTIVE ${KIT_export_directive}
  154. SRCS ${KIT_SRCS}
  155. MOC_SRCS ${KIT_MOC_SRCS}
  156. UI_FORMS ${KIT_UI_FORMS}
  157. TARGET_LIBRARIES ${KIT_target_libraries}
  158. RESOURCES ${KIT_resources}
  159. LIBRARY_TYPE ${CTK_LIBRARY_MODE}
  160. )
  161. if(CTK_WRAP_PYTHONQT_LIGHT)
  162. ctkMacroBuildLibWrapper(
  163. TARGET ${PROJECT_NAME}
  164. SRCS ${KIT_SRCS}
  165. WRAPPER_LIBRARY_TYPE ${CTK_LIBRARY_MODE}
  166. )
  167. endif()
  168. # Plugins
  169. #if(CTK_BUILD_QTDESIGNER_PLUGINS)
  170. # add_subdirectory(Plugins)
  171. #endif()
  172. # Testing
  173. if(BUILD_TESTING)
  174. add_subdirectory(Testing)
  175. endif()