# vtk if (NOT DEFINED INSTALL_VTK) set (INSTALL_VTK OFF CACHE BOOL "Is vtk required to be copied into install directory") endif() # vtk directory if (NOT DEFINED 3RDPARTY_VTK_DIR) set (3RDPARTY_VTK_DIR "" CACHE PATH "The directory containing vtk") endif() # vtk include directory if (NOT DEFINED 3RDPARTY_VTK_INCLUDE_DIR) set (3RDPARTY_VTK_INCLUDE_DIR "" CACHE FILEPATH "The directory containing headers of vtk") endif() # vtk library directory if (NOT DEFINED 3RDPARTY_VTK_LIBRARY_DIR) set (3RDPARTY_VTK_LIBRARY_DIR "" CACHE FILEPATH "The directory containing vtk library") endif() # vtk dll directory if (WIN32 AND NOT DEFINED 3RDPARTY_VTK_DLL_DIR) set (3RDPARTY_VTK_DLL_DIR "" CACHE FILEPATH "The directory containing VTK dll") endif() # search for vtk in user defined directory if (NOT 3RDPARTY_VTK_DIR AND 3RDPARTY_DIR) FIND_PRODUCT_DIR("${3RDPARTY_DIR}" vtk VTK_DIR_NAME) if (VTK_DIR_NAME) set (3RDPARTY_VTK_DIR "${3RDPARTY_DIR}/${VTK_DIR_NAME}" CACHE PATH "The directory containing vtk product" FORCE) endif() endif() # find installed vtk find_package(VTK QUIET) # find native vtk if (NOT VTK_FOUND) find_package(VTK QUIET PATHS "${3RDPARTY_VTK_DIR}") endif() if (NOT VTK_FOUND AND NOT 3RDPARTY_VTK_DIR OR NOT EXISTS "${3RDPARTY_VTK_DIR}") message(SEND_ERROR "VTK not found. Set the 3RDPARTY_VTK_DIR cmake cache entry to the directory containing VTK.") set (3RDPARTY_VTK_DIR "3RDPARTY_VTK_DIR-NOTFOUND" CACHE PATH "The directory containing vtk product" FORCE) endif() OCCT_MAKE_BUILD_POSTFIX() set(VTK_VERSION "") if (3RDPARTY_VTK_DIR AND EXISTS "${3RDPARTY_VTK_DIR}") get_filename_component(3RDPARTY_VTK_DIR_NAME "${3RDPARTY_VTK_DIR}" NAME) string(REGEX MATCH "^VTK-([0-9].[0-9])" VTK_VERSION "${3RDPARTY_VTK_DIR_NAME}") set(VTK_VERSION "${CMAKE_MATCH_1}") if (NOT 3RDPARTY_VTK_INCLUDE_DIR OR NOT EXISTS "${3RDPARTY_VTK_INCLUDE_DIR}") set (3RDPARTY_VTK_INCLUDE_DIR "${3RDPARTY_VTK_DIR}/include/vtk-${VTK_VERSION}" CACHE FILEPATH "The directory containing includes of VTK" FORCE) endif() if (NOT 3RDPARTY_VTK_LIBRARY_DIR OR NOT EXISTS "${3RDPARTY_VTK_LIBRARY_DIR}") if(EXISTS "${3RDPARTY_VTK_DIR}/lib${BUILD_POSTFIX}") set (3RDPARTY_VTK_LIBRARY_DIR "${3RDPARTY_VTK_DIR}/lib${BUILD_POSTFIX}" CACHE FILEPATH "The directory containing libs of VTK" FORCE) endif() else() list (APPEND 3RDPARTY_LIBRARY_DIRS "${3RDPARTY_VTK_LIBRARY_DIR}") endif() endif() # vtk libraries # lib set (VTK_LIBRARY_NAMES vtkCommonCore-${VTK_VERSION}.lib vtkCommonDataModel-${VTK_VERSION}.lib vtkCommonExecutionModel-${VTK_VERSION}.lib vtkCommonMath-${VTK_VERSION}.lib vtkCommonTransforms-${VTK_VERSION}.lib vtkRenderingCore-${VTK_VERSION}.lib vtkRenderingOpenGL-${VTK_VERSION}.lib vtkFiltersGeneral-${VTK_VERSION}.lib vtkIOCore-${VTK_VERSION}.lib vtkIOImage-${VTK_VERSION}.lib vtkImagingCore-${VTK_VERSION}.lib vtkInteractionStyle-${VTK_VERSION}.lib ) #dll set (VTK_DLL_NAMES vtkCommonComputationalGeometry-${VTK_VERSION}.dll vtkCommonCore-${VTK_VERSION}.dll vtkCommonDataModel-${VTK_VERSION}.dll vtkCommonExecutionModel-${VTK_VERSION}.dll vtkCommonMath-${VTK_VERSION}.dll vtkCommonMisc-${VTK_VERSION}.dll vtkCommonSystem-${VTK_VERSION}.dll vtkCommonTransforms-${VTK_VERSION}.dll vtkDICOMParser-${VTK_VERSION}.dll vtkFiltersCore-${VTK_VERSION}.dll vtkFiltersExtraction-${VTK_VERSION}.dll vtkFiltersGeneral-${VTK_VERSION}.dll vtkFiltersGeometry-${VTK_VERSION}.dll vtkFiltersSources-${VTK_VERSION}.dll vtkFiltersStatistics-${VTK_VERSION}.dll vtkIOCore-${VTK_VERSION}.dll vtkIOImage-${VTK_VERSION}.dll vtkImagingCore-${VTK_VERSION}.dll vtkImagingFourier-${VTK_VERSION}.dll vtkImagingHybrid-${VTK_VERSION}.dll vtkInteractionStyle-${VTK_VERSION}.dll vtkRenderingCore-${VTK_VERSION}.dll vtkRenderingOpenGL-${VTK_VERSION}.dll vtkalglib-${VTK_VERSION}.dll vtkjpeg-${VTK_VERSION}.dll vtkmetaio-${VTK_VERSION}.dll vtkpng-${VTK_VERSION}.dll vtksys-${VTK_VERSION}.dll vtktiff-${VTK_VERSION}.dll vtkzlib-${VTK_VERSION}.dll ) # search for dll directory if (WIN32) if (NOT 3RDPARTY_VTK_DLL_DIR OR NOT EXISTS "${3RDPARTY_VTK_DLL_DIR}") if(EXISTS "${3RDPARTY_VTK_DIR}/bin${BUILD_POSTFIX}") set (3RDPARTY_VTK_DLL_DIR "${3RDPARTY_VTK_DIR}/bin${BUILD_POSTFIX}" CACHE FILEPATH "The directory containing dll of VTK" FORCE) endif() endif() endif() OCCT_CHECK_AND_UNSET(VTK_DIR) if (3RDPARTY_VTK_INCLUDE_DIR AND EXISTS "${3RDPARTY_VTK_INCLUDE_DIR}") list (APPEND 3RDPARTY_INCLUDE_DIRS "${3RDPARTY_VTK_INCLUDE_DIR}") else() list (APPEND 3RDPARTY_NOT_INCLUDED 3RDPARTY_VTK_INCLUDE_DIR) endif() if (INSTALL_VTK) OCCT_MAKE_OS_WITH_BITNESS() OCCT_MAKE_COMPILER_SHORT_NAME() if (WIN32) if(3RDPARTY_VTK_DLL_DIR AND EXISTS "${3RDPARTY_VTK_DLL_DIR}") set (CMAKE_FIND_LIBRARY_SUFFIXES ".lib" ".dll") foreach(VTK_DLL_NAME ${VTK_DLL_NAMES}) set (3RDPARTY_VTK_DLL "3RDPARTY_VTK_DLL-NOTFOUND" CACHE FILEPATH "VTK shared library" FORCE) find_library(3RDPARTY_VTK_DLL "${VTK_DLL_NAME}" PATHS "${3RDPARTY_VTK_DLL_DIR}" NO_DEFAULT_PATH) if (NOT 3RDPARTY_VTK_DLL OR NOT EXISTS "${3RDPARTY_VTK_DLL}") list (APPEND 3RDPARTY_NOT_INCLUDED "${3RDPARTY_VTK_DLL}") else() install (FILES ${3RDPARTY_VTK_DLL} DESTINATION "${INSTALL_DIR}/${OS_WITH_BIT}/${COMPILER}/bin${BUILD_POSTFIX}") endif() endforeach() OCCT_CHECK_AND_UNSET(3RDPARTY_VTK_DLL) endif() else () foreach(VTK_DLL_NAME ${VTK_DLL_NAMES}) string(REPLACE ".dll" ".so.1" VTK_DLL_NAME "${VTK_DLL_NAME}") install(FILES "${3RDPARTY_VTK_LIBRARY_DIR}/lib${VTK_DLL_NAME}" DESTINATION "${INSTALL_DIR}/${OS_WITH_BIT}/${COMPILER}/lib${BUILD_POSTFIX}" RENAME "lib${VTK_DLL_NAME}") endforeach() endif() endif() mark_as_advanced (VTK_INCLUDE_DIRS VTK_LIBRARY_DIRS VTK_DIR)