CMakeLists.txt 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156
  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. vtkLightBoxRendererManager.cpp
  26. vtkLightBoxRendererManager.h
  27. )
  28. # Headers that should run through moc
  29. set(KIT_MOC_SRCS
  30. ctkVTKConnection.h
  31. ctkVTKObjectEventsObserver.h
  32. )
  33. # UI files
  34. set(KIT_UI_FORMS
  35. )
  36. # Resources
  37. set(KIT_resources
  38. )
  39. if(CTK_LIB_Scripting/Python/Core AND CTK_LIB_Scripting/Python/Core_PYTHONQT_USE_VTK)
  40. list(APPEND KIT_SRCS
  41. ctkVTKPythonQtWrapperFactory.cpp
  42. )
  43. endif()
  44. if(CTK_LIB_Scripting/Python/Core AND CTK_LIB_Scripting/Python/Core_PYTHONQT_USE_VTK)
  45. include_directories(
  46. ${PYTHON_INCLUDE_DIRS}
  47. ${PYTHONQT_INCLUDE_DIR}
  48. )
  49. endif()
  50. # Set VTK_LIBRARIES variable
  51. if(${VTK_VERSION_MAJOR} GREATER 5)
  52. set(VTK_LIBRARIES
  53. # a few of these have to be specified explicitly to workaround
  54. # underlinked libraries from the debian VTK package
  55. # see Debian bug #747436
  56. vtkCommonCore
  57. vtkCommonDataModel
  58. vtkCommonSystem
  59. vtkIOImage
  60. vtkInteractionStyle
  61. vtkRenderingAnnotation
  62. vtkRenderingCore
  63. )
  64. if(TARGET vtkRendering${VTK_RENDERING_BACKEND})
  65. list(APPEND VTK_LIBRARIES vtkRendering${VTK_RENDERING_BACKEND})
  66. endif()
  67. if(TARGET vtkIOMPIImage)
  68. list(APPEND VTK_LIBRARIES vtkIOMPIImage )
  69. endif()
  70. if(TARGET vtkRenderingMatplotlib)
  71. list(APPEND VTK_LIBRARIES vtkRenderingMatplotlib )
  72. endif()
  73. if(TARGET vtkTestingRendering)
  74. list(APPEND VTK_LIBRARIES vtkTestingRendering )
  75. endif()
  76. # With VTK > 6.2.0 (commit 4f7460a5), vtkRenderingFreeTypeOpenGL has been removed.
  77. if(TARGET vtkRenderingFreeTypeOpenGL)
  78. list(APPEND VTK_LIBRARIES vtkRenderingFreeTypeOpenGL)
  79. endif()
  80. if (TARGET vtkRenderingFreeTypeFontConfig AND UNIX AND NOT APPLE)
  81. list(APPEND VTK_LIBRARIES
  82. vtkRenderingFreeTypeFontConfig
  83. )
  84. endif()
  85. else()
  86. set(VTK_LIBRARIES
  87. vtkCommon
  88. vtkFiltering
  89. vtkRendering
  90. vtkHybrid
  91. )
  92. endif()
  93. if(CTK_LIB_Scripting/Python/Core AND CTK_LIB_Scripting/Python/Core_PYTHONQT_USE_VTK)
  94. list(APPEND VTK_LIBRARIES ${PYTHON_LIBRARY} ${PYTHONQT_LIBRARIES})
  95. if(${VTK_VERSION_MAJOR} GREATER 5)
  96. list(APPEND VTK_LIBRARIES vtkWrappingPythonCore)
  97. elseif(${VTK_VERSION_MAJOR}.${VTK_VERSION_MINOR} VERSION_GREATER 5.6)
  98. list(APPEND VTK_LIBRARIES vtkPythonCore)
  99. else()
  100. list(APPEND VTK_LIBRARIES vtkCommonPythonD)
  101. endif()
  102. endif()
  103. if(Q_WS_X11)
  104. # If the faster 'gold' linker is used, to avoid complaints about undefined symbol
  105. # 'XGetWindowAttributes', 'XCreateWindow', ..., let's link against X11 libraries.
  106. find_package(X11)
  107. list(APPEND VTK_LIBRARIES ${X11_LIBRARIES})
  108. endif()
  109. # Target libraries - See CMake/ctkFunctionGetTargetLibraries.cmake
  110. # The following macro will read the target libraries from the file 'target_libraries.cmake'
  111. ctkFunctionGetTargetLibraries(KIT_target_libraries)
  112. ctkMacroBuildLib(
  113. NAME ${PROJECT_NAME}
  114. EXPORT_DIRECTIVE ${KIT_export_directive}
  115. SRCS ${KIT_SRCS}
  116. MOC_SRCS ${KIT_MOC_SRCS}
  117. UI_FORMS ${KIT_UI_FORMS}
  118. TARGET_LIBRARIES ${KIT_target_libraries}
  119. RESOURCES ${KIT_resources}
  120. LIBRARY_TYPE ${CTK_LIBRARY_MODE}
  121. )
  122. if(CTK_WRAP_PYTHONQT_LIGHT)
  123. ctkMacroBuildLibWrapper(
  124. TARGET ${PROJECT_NAME}
  125. SRCS ${KIT_SRCS}
  126. WRAPPER_LIBRARY_TYPE ${CTK_LIBRARY_MODE}
  127. )
  128. endif()
  129. # Plugins
  130. #if(CTK_BUILD_QTDESIGNER_PLUGINS)
  131. # add_subdirectory(Plugins)
  132. #endif()
  133. # Testing
  134. if(BUILD_TESTING)
  135. add_subdirectory(Testing)
  136. endif()