CMakeLists.txt 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159
  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 vtkRenderingFreeType )
  81. list(APPEND VTK_LIBRARIES vtkRenderingFreeType)
  82. endif()
  83. if (TARGET vtkRenderingFreeTypeFontConfig AND UNIX AND NOT APPLE)
  84. list(APPEND VTK_LIBRARIES
  85. vtkRenderingFreeTypeFontConfig
  86. )
  87. endif()
  88. else()
  89. set(VTK_LIBRARIES
  90. vtkCommon
  91. vtkFiltering
  92. vtkRendering
  93. vtkHybrid
  94. )
  95. endif()
  96. if(CTK_LIB_Scripting/Python/Core AND CTK_LIB_Scripting/Python/Core_PYTHONQT_USE_VTK)
  97. list(APPEND VTK_LIBRARIES ${PYTHON_LIBRARY} ${PYTHONQT_LIBRARIES})
  98. if(${VTK_VERSION_MAJOR} GREATER 5)
  99. list(APPEND VTK_LIBRARIES vtkWrappingPythonCore)
  100. elseif(${VTK_VERSION_MAJOR}.${VTK_VERSION_MINOR} VERSION_GREATER 5.6)
  101. list(APPEND VTK_LIBRARIES vtkPythonCore)
  102. else()
  103. list(APPEND VTK_LIBRARIES vtkCommonPythonD)
  104. endif()
  105. endif()
  106. if(Q_WS_X11)
  107. # If the faster 'gold' linker is used, to avoid complaints about undefined symbol
  108. # 'XGetWindowAttributes', 'XCreateWindow', ..., let's link against X11 libraries.
  109. find_package(X11)
  110. list(APPEND VTK_LIBRARIES ${X11_LIBRARIES})
  111. endif()
  112. # Target libraries - See CMake/ctkFunctionGetTargetLibraries.cmake
  113. # The following macro will read the target libraries from the file 'target_libraries.cmake'
  114. ctkFunctionGetTargetLibraries(KIT_target_libraries)
  115. ctkMacroBuildLib(
  116. NAME ${PROJECT_NAME}
  117. EXPORT_DIRECTIVE ${KIT_export_directive}
  118. SRCS ${KIT_SRCS}
  119. MOC_SRCS ${KIT_MOC_SRCS}
  120. UI_FORMS ${KIT_UI_FORMS}
  121. TARGET_LIBRARIES ${KIT_target_libraries}
  122. RESOURCES ${KIT_resources}
  123. LIBRARY_TYPE ${CTK_LIBRARY_MODE}
  124. )
  125. if(CTK_WRAP_PYTHONQT_LIGHT)
  126. ctkMacroBuildLibWrapper(
  127. TARGET ${PROJECT_NAME}
  128. SRCS ${KIT_SRCS}
  129. WRAPPER_LIBRARY_TYPE ${CTK_LIBRARY_MODE}
  130. )
  131. endif()
  132. # Plugins
  133. #if(CTK_BUILD_QTDESIGNER_PLUGINS)
  134. # add_subdirectory(Plugins)
  135. #endif()
  136. # Testing
  137. if(BUILD_TESTING)
  138. add_subdirectory(Testing)
  139. endif()