CMakeLists.txt 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196
  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. vtkIOImage
  62. vtkInteractionStyle
  63. vtkRenderingAnnotation
  64. vtkRenderingCore
  65. )
  66. if(TARGET vtkRendering${VTK_RENDERING_BACKEND})
  67. list(APPEND VTK_LIBRARIES vtkRendering${VTK_RENDERING_BACKEND})
  68. endif()
  69. if(TARGET vtkIOMPIImage)
  70. list(APPEND VTK_LIBRARIES vtkIOMPIImage )
  71. endif()
  72. if(TARGET vtkRenderingMatplotlib)
  73. list(APPEND VTK_LIBRARIES vtkRenderingMatplotlib )
  74. endif()
  75. if(TARGET vtkTestingRendering)
  76. list(APPEND VTK_LIBRARIES vtkTestingRendering )
  77. endif()
  78. # With VTK > 6.2.0 (commit 4f7460a5), vtkRenderingFreeTypeOpenGL has been removed.
  79. if(TARGET vtkRenderingFreeTypeOpenGL)
  80. list(APPEND VTK_LIBRARIES vtkRenderingFreeTypeOpenGL)
  81. endif()
  82. if(TARGET vtkRenderingFreeType )
  83. list(APPEND VTK_LIBRARIES vtkRenderingFreeType)
  84. endif()
  85. if (TARGET vtkRenderingFreeTypeFontConfig AND UNIX AND NOT APPLE)
  86. list(APPEND VTK_LIBRARIES
  87. vtkRenderingFreeTypeFontConfig
  88. )
  89. endif()
  90. else()
  91. set(VTK_LIBRARIES
  92. vtkCommon
  93. vtkFiltering
  94. vtkRendering
  95. vtkHybrid
  96. )
  97. endif()
  98. if(CTK_LIB_Visualization/VTK/Widgets_USE_TRANSFER_FUNCTION_CHARTS)
  99. set(CTK_USE_CHARTS 1)
  100. endif()
  101. if(${CTK_USE_CHARTS})
  102. set(KIT_SRCS
  103. vtkDiscretizableColorTransferChart.cpp
  104. vtkDiscretizableColorTransferChart.h
  105. vtkDiscretizableColorTransferControlPointsItem.cpp
  106. vtkDiscretizableColorTransferControlPointsItem.h
  107. vtkScalarsToColorsContextItem.cpp
  108. vtkScalarsToColorsContextItem.h
  109. vtkScalarsToColorsHistogramChart.cpp
  110. vtkScalarsToColorsHistogramChart.h
  111. vtkScalarsToColorsPreviewChart.cpp
  112. vtkScalarsToColorsPreviewChart.h
  113. ${KIT_SRCS})
  114. if(${VTK_VERSION_MAJOR} GREATER 5)
  115. set(VTK_LIBRARIES
  116. vtkChartsCore
  117. ${VTK_LIBRARIES})
  118. else()
  119. set(VTK_LIBRARIES
  120. vtkCharts
  121. ${VTK_LIBRARIES})
  122. endif()
  123. add_definitions(-DCTK_USE_CHARTS)
  124. set(VTK_LIBRARIES
  125. vtkViewsContext2D
  126. ${VTK_LIBRARIES})
  127. if(TARGET vtkRenderingContext${VTK_RENDERING_BACKEND})
  128. list(APPEND VTK_LIBRARIES vtkRenderingContext${VTK_RENDERING_BACKEND})
  129. endif()
  130. endif()
  131. if(CTK_LIB_Scripting/Python/Core AND CTK_LIB_Scripting/Python/Core_PYTHONQT_USE_VTK)
  132. list(APPEND VTK_LIBRARIES ${PYTHON_LIBRARY} ${PYTHONQT_LIBRARIES})
  133. if(${VTK_VERSION_MAJOR} GREATER 5)
  134. list(APPEND VTK_LIBRARIES vtkWrappingPythonCore)
  135. elseif(${VTK_VERSION_MAJOR}.${VTK_VERSION_MINOR} VERSION_GREATER 5.6)
  136. list(APPEND VTK_LIBRARIES vtkPythonCore)
  137. else()
  138. list(APPEND VTK_LIBRARIES vtkCommonPythonD)
  139. endif()
  140. endif()
  141. if(Q_WS_X11)
  142. # If the faster 'gold' linker is used, to avoid complaints about undefined symbol
  143. # 'XGetWindowAttributes', 'XCreateWindow', ..., let's link against X11 libraries.
  144. find_package(X11)
  145. list(APPEND VTK_LIBRARIES ${X11_LIBRARIES})
  146. endif()
  147. # Target libraries - See CMake/ctkFunctionGetTargetLibraries.cmake
  148. # The following macro will read the target libraries from the file 'target_libraries.cmake'
  149. ctkFunctionGetTargetLibraries(KIT_target_libraries)
  150. ctkMacroBuildLib(
  151. NAME ${PROJECT_NAME}
  152. EXPORT_DIRECTIVE ${KIT_export_directive}
  153. SRCS ${KIT_SRCS}
  154. MOC_SRCS ${KIT_MOC_SRCS}
  155. UI_FORMS ${KIT_UI_FORMS}
  156. TARGET_LIBRARIES ${KIT_target_libraries}
  157. RESOURCES ${KIT_resources}
  158. LIBRARY_TYPE ${CTK_LIBRARY_MODE}
  159. )
  160. if(CTK_WRAP_PYTHONQT_LIGHT)
  161. ctkMacroBuildLibWrapper(
  162. TARGET ${PROJECT_NAME}
  163. SRCS ${KIT_SRCS}
  164. WRAPPER_LIBRARY_TYPE ${CTK_LIBRARY_MODE}
  165. )
  166. endif()
  167. # Plugins
  168. #if(CTK_BUILD_QTDESIGNER_PLUGINS)
  169. # add_subdirectory(Plugins)
  170. #endif()
  171. # Testing
  172. if(BUILD_TESTING)
  173. add_subdirectory(Testing)
  174. endif()