CMakeLists.txt 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143
  1. project(CTKVisualizationVTKCore)
  2. #
  3. # 3rd party dependencies
  4. #
  5. include(${VTK_USE_FILE})
  6. if(CTK_LIB_Scripting/Python/Core AND CTK_LIB_Scripting/Python/Core_PYTHONQT_USE_VTK)
  7. find_package(PythonQt REQUIRED)
  8. endif()
  9. #
  10. # See CTK/CMake/ctkMacroBuildLib.cmake for details
  11. #
  12. set(KIT_export_directive "CTK_VISUALIZATION_VTK_CORE_EXPORT")
  13. # Source files
  14. set(KIT_SRCS
  15. ctkVTKConnection.cpp
  16. ctkVTKConnection.h
  17. ctkVTKErrorLogMessageHandler.cpp
  18. ctkVTKErrorLogMessageHandler.h
  19. ctkVTKObject.h
  20. ctkVTKObjectEventsObserver.cpp
  21. ctkVTKObjectEventsObserver.h
  22. vtkLightBoxRendererManager.cpp
  23. vtkLightBoxRendererManager.h
  24. )
  25. # Headers that should run through moc
  26. set(KIT_MOC_SRCS
  27. ctkVTKConnection.h
  28. ctkVTKObjectEventsObserver.h
  29. )
  30. # UI files
  31. set(KIT_UI_FORMS
  32. )
  33. # Resources
  34. set(KIT_resources
  35. )
  36. if(CTK_LIB_Scripting/Python/Core AND CTK_LIB_Scripting/Python/Core_PYTHONQT_USE_VTK)
  37. list(APPEND KIT_SRCS
  38. ctkVTKPythonQtWrapperFactory.cpp
  39. )
  40. endif()
  41. set(KIT_INCLUDE_DIRECTORIES )
  42. if(CTK_LIB_Scripting/Python/Core AND CTK_LIB_Scripting/Python/Core_PYTHONQT_USE_VTK)
  43. list(APPEND KIT_INCLUDE_DIRECTORIES
  44. ${PYTHON_INCLUDE_DIRS}
  45. ${PYTHONQT_INCLUDE_DIR}
  46. )
  47. endif()
  48. # Set VTK_LIBRARIES variable
  49. if(${VTK_VERSION_MAJOR} GREATER 5)
  50. set(VTK_LIBRARIES
  51. vtkCommonCore
  52. vtkCommonDataModel
  53. vtkCommonSystem
  54. vtkIOImage
  55. vtkInteractionStyle
  56. vtkRenderingAnnotation
  57. vtkRenderingCore
  58. vtkRenderingFreeTypeOpenGL
  59. vtkRenderingOpenGL
  60. vtkTestingRendering
  61. )
  62. if (UNIX AND NOT APPLE)
  63. find_package(FontConfig QUIET)
  64. if (FONTCONFIG_FOUND)
  65. list(APPEND VTK_LIBRARIES
  66. vtkRenderingFreeTypeFontConfig
  67. )
  68. endif()
  69. endif()
  70. else()
  71. set(VTK_LIBRARIES
  72. vtkCommon
  73. vtkFiltering
  74. vtkRendering
  75. vtkHybrid
  76. )
  77. endif()
  78. if(CTK_LIB_Scripting/Python/Core AND CTK_LIB_Scripting/Python/Core_PYTHONQT_USE_VTK)
  79. list(APPEND VTK_LIBRARIES ${PYTHON_LIBRARY} ${PYTHONQT_LIBRARIES})
  80. if(${VTK_VERSION_MAJOR} GREATER 5)
  81. list(APPEND VTK_LIBRARIES vtkWrappingPythonCore)
  82. elseif(${VTK_VERSION_MAJOR}.${VTK_VERSION_MINOR} VERSION_GREATER 5.6)
  83. list(APPEND VTK_LIBRARIES vtkPythonCore)
  84. else()
  85. list(APPEND VTK_LIBRARIES vtkCommonPythonD)
  86. endif()
  87. endif()
  88. if(Q_WS_X11)
  89. # If the faster 'gold' linker is used, to avoid complaints about undefined symbol
  90. # 'XGetWindowAttributes', 'XCreateWindow', ..., let's link against X11 libraries.
  91. find_package(X11)
  92. list(APPEND VTK_LIBRARIES ${X11_LIBRARIES})
  93. endif()
  94. # Target libraries - See CMake/ctkFunctionGetTargetLibraries.cmake
  95. # The following macro will read the target libraries from the file 'target_libraries.cmake'
  96. ctkFunctionGetTargetLibraries(KIT_target_libraries)
  97. ctkMacroBuildLib(
  98. NAME ${PROJECT_NAME}
  99. EXPORT_DIRECTIVE ${KIT_export_directive}
  100. SRCS ${KIT_SRCS}
  101. MOC_SRCS ${KIT_MOC_SRCS}
  102. UI_FORMS ${KIT_UI_FORMS}
  103. INCLUDE_DIRECTORIES ${KIT_INCLUDE_DIRECTORIES}
  104. TARGET_LIBRARIES ${KIT_target_libraries}
  105. RESOURCES ${KIT_resources}
  106. LIBRARY_TYPE ${CTK_LIBRARY_MODE}
  107. )
  108. if(CTK_WRAP_PYTHONQT_LIGHT)
  109. ctkMacroBuildLibWrapper(
  110. TARGET ${PROJECT_NAME}
  111. SRCS ${KIT_SRCS}
  112. WRAPPER_LIBRARY_TYPE ${CTK_LIBRARY_MODE}
  113. )
  114. endif()
  115. # Plugins
  116. #if(CTK_BUILD_QTDESIGNER_PLUGINS)
  117. # add_subdirectory(Plugins)
  118. #endif()
  119. # Testing
  120. if(BUILD_TESTING)
  121. add_subdirectory(Testing)
  122. endif()