diff options
Diffstat (limited to 'vcpkg/ports/vtk/portfile.cmake')
| -rw-r--r-- | vcpkg/ports/vtk/portfile.cmake | 453 |
1 files changed, 453 insertions, 0 deletions
diff --git a/vcpkg/ports/vtk/portfile.cmake b/vcpkg/ports/vtk/portfile.cmake new file mode 100644 index 0000000..6479057 --- /dev/null +++ b/vcpkg/ports/vtk/portfile.cmake @@ -0,0 +1,453 @@ +set(VTK_SHORT_VERSION 9.3) +if(NOT VCPKG_TARGET_IS_WINDOWS) + message(WARNING "You will need to install Xorg dependencies to build vtk:\napt-get install libxt-dev\n") +endif() + +set(VCPKG_POLICY_SKIP_ABSOLUTE_PATHS_CHECK enabled) + +# ============================================================================= +# Clone & patch +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO Kitware/VTK + REF 09a76bc55b37caad94d0d8ebe865caaed1b438af # v9.3.x used by ParaView 5.12.0 + SHA512 396ee901fafacae8aef860b9c9c17cb92ae8b4969527fd271ad8dd9f6a9e0dc8e3dc807c8d43cc585608ad101a64edcd7aff49e1580c7a61a817c2ea8e2655f5 + HEAD_REF master + PATCHES + ffmpeg.diff + FindLZMA.patch + FindLZ4.patch + libproj.patch + mysql.diff + pegtl.patch + pythonwrapper.patch # Required by ParaView to Wrap required classes + NoUndefDebug.patch # Required to link against correct Python library depending on build type. + fix-using-hdf5.patch + # CHECK: module-name-mangling.patch + # Last patch TODO: Patch out internal loguru + FindExpat.patch # The find_library calls are taken care of by vcpkg-cmake-wrapper.cmake of expat + # fix-gdal.patch TODO? + cgns.patch + vtkm.patch + afxdll.patch + vtkioss.patch + jsoncpp.patch + iotr.patch + fast-float.patch + fix-exprtk.patch # just for dbow2 and theia + devendor_exodusII.patch + remove-prefix-changes.patch + hdf5helper.patch + opencascade-7.8.0.patch + no-libharu-for-ioexport.patch + no-libproj-for-netcdf.patch + octree.patch + fix-tbbsmptool.patch # https://gitlab.kitware.com/vtk/vtk/-/merge_requests/11530 + backport-bda8324.diff # https://gitlab.kitware.com/vtk/vtk/-/merge_requests/12418 + use-compile-tools.diff + zspace.diff # https://gitlab.kitware.com/vtk/vtk/-/commit/01a8bd7a917d33892f67a8d76ce7fc4b524d56b4 +) + +# ============================================================================= +#Overwrite outdated modules if they have not been patched: +file(COPY "${CURRENT_PORT_DIR}/FindHDF5.cmake" DESTINATION "${SOURCE_PATH}/CMake/patches/99") # due to usage of targets in netcdf-c + +file(REMOVE "${SOURCE_PATH}/CMake/FindOGG.cmake") +vcpkg_replace_string("${SOURCE_PATH}/ThirdParty/ogg/CMakeLists.txt" "OGG::OGG" "Ogg::ogg") +vcpkg_replace_string("${SOURCE_PATH}/ThirdParty/ogg/CMakeLists.txt" "OGG" "Ogg") +vcpkg_replace_string("${SOURCE_PATH}/CMake/vtkInstallCMakePackage.cmake" "FindOGG.cmake\n" "") +vcpkg_replace_string("${SOURCE_PATH}/CMake/FindTHEORA.cmake" "find_dependency(OGG)" "find_dependency(Ogg CONFIG)") +vcpkg_replace_string("${SOURCE_PATH}/CMake/FindTHEORA.cmake" "OGG::OGG" "Ogg::ogg") + +# ============================================================================= + +# ============================================================================= +# Options: +# Collect CMake options for optional components + +# Strict wiring of features/dependencies to VTK modules +# VTK_MODULE_ENABLE... and VTK_GROUP_ENABLE... do not use ON/OFF but +# VTK's special NO/DONT_WANT/WANT/YES/DEFAULT (cf. vtkModule.cmake). +# This section produces either YES or NO (after postprocessing). +# YES/NO are also okay for regular CMake options instead of ON/OFF, +# so we can consolidate VTK and CMake settings here. +vcpkg_check_features(OUT_FEATURE_OPTIONS VTK_YES_NO_OPTIONS + FEATURES + "all" VTK_BUILD_ALL_MODULES + "atlmfc" VTK_MODULE_ENABLE_VTK_GUISupportMFC + "cgns" VCPKG_LOCK_FIND_PACKAGE_CGNS + "cuda" VTK_USE_CUDA + "debugleaks" VTK_DEBUG_LEAKS + "fontconfig" VTK_MODULE_ENABLE_VTK_RenderingFreeTypeFontConfig + "libharu" VCPKG_LOCK_FIND_PACKAGE_LibHaru + "libtheora" VCPKG_LOCK_FIND_PACKAGE_THEORA + "netcdf" VCPKG_LOCK_FIND_PACKAGE_NetCDF + "netcdf" VTK_MODULE_ENABLE_VTK_netcdf + "netcdf" VTK_MODULE_ENABLE_VTK_IOMINC + "netcdf" VTK_MODULE_ENABLE_VTK_IONetCDF + "openmp" VTK_SMP_ENABLE_OPENMP + "proj" VCPKG_LOCK_FIND_PACKAGE_PROJ + "proj" VTK_MODULE_ENABLE_VTK_libproj + "proj" VTK_MODULE_ENABLE_VTK_IOCesium3DTiles + "proj" VTK_MODULE_ENABLE_VTK_GeovisCore + "python" VTK_WRAP_PYTHON + "python" VTK_MODULE_ENABLE_VTK_Python + "python" VTK_MODULE_ENABLE_VTK_PythonContext2D + "python" VTK_MODULE_ENABLE_VTK_PythonInterpreter + "seacas" VCPKG_LOCK_FIND_PACKAGE_SEACASExodus + "seacas" VCPKG_LOCK_FIND_PACKAGE_SEACASIoss + "sql" VCPKG_LOCK_FIND_PACKAGE_SQLite3 + "sql" VTK_MODULE_ENABLE_VTK_sqlite + "sql" VTK_MODULE_ENABLE_VTK_IOSQL + "tbb" VTK_SMP_ENABLE_TBB + "vtkm" VTK_MODULE_ENABLE_VTK_vtkm + "vtkm" VTK_MODULE_ENABLE_VTK_AcceleratorsVTKmCore + "vtkm" VTK_MODULE_ENABLE_VTK_AcceleratorsVTKmDataModel + "vtkm" VTK_MODULE_ENABLE_VTK_AcceleratorsVTKmFilters + INVERTED_FEATURES + "all" VTK_FORBID_DOWNLOADS +) +list(TRANSFORM VTK_YES_NO_OPTIONS REPLACE "=ON" "=YES") +list(TRANSFORM VTK_YES_NO_OPTIONS REPLACE "=OFF" "=NO") + +# TODO: +# - add loguru as a dependency requires #8682 +vcpkg_check_features(OUT_FEATURE_OPTIONS VTK_FEATURE_OPTIONS + FEATURES + "qt" VTK_GROUP_ENABLE_Qt + "qt" VTK_MODULE_ENABLE_VTK_GUISupportQt + "qt" VTK_MODULE_ENABLE_VTK_GUISupportQtSQL + "qt" VTK_MODULE_ENABLE_VTK_RenderingQt + "qt" VTK_MODULE_ENABLE_VTK_ViewsQt + "paraview" VTK_MODULE_ENABLE_VTK_FiltersParallelStatistics + "paraview" VTK_MODULE_ENABLE_VTK_IOParallelExodus + "paraview" VTK_MODULE_ENABLE_VTK_RenderingParallel + "paraview" VTK_MODULE_ENABLE_VTK_RenderingVolumeAMR + "paraview" VTK_MODULE_ENABLE_VTK_IOXdmf2 + "paraview" VTK_MODULE_ENABLE_VTK_IOH5part + "paraview" VTK_MODULE_ENABLE_VTK_IOH5Rage + "paraview" VTK_MODULE_ENABLE_VTK_IOParallelLSDyna + "paraview" VTK_MODULE_ENABLE_VTK_IOTRUCHAS + "paraview" VTK_MODULE_ENABLE_VTK_IOVPIC + "paraview" VTK_MODULE_ENABLE_VTK_RenderingAnnotation + "paraview" VTK_MODULE_ENABLE_VTK_DomainsChemistry + "paraview" VTK_MODULE_ENABLE_VTK_FiltersParallelDIY2 + "paraview" VTK_MODULE_ENABLE_VTK_cli11 + "paraview" VTK_MODULE_ENABLE_VTK_FiltersOpenTURNS + "paraview" VTK_MODULE_ENABLE_VTK_FiltersParallelVerdict + "paraview" VTK_MODULE_ENABLE_VTK_IOOMF + "paraview" VTK_MODULE_ENABLE_VTK_IOPIO + "mpi" VTK_GROUP_ENABLE_MPI + "opengl" VTK_MODULE_ENABLE_VTK_ImagingOpenGL2 + "opengl" VTK_MODULE_ENABLE_VTK_RenderingGL2PSOpenGL2 + "opengl" VTK_MODULE_ENABLE_VTK_RenderingOpenGL2 + "opengl" VTK_MODULE_ENABLE_VTK_RenderingVolumeOpenGL2 + "opengl" VTK_MODULE_ENABLE_VTK_opengl + "openvr" VTK_MODULE_ENABLE_VTK_RenderingOpenVR + "gdal" VTK_MODULE_ENABLE_VTK_IOGDAL + "geojson" VTK_MODULE_ENABLE_VTK_IOGeoJSON + "ioocct" VTK_MODULE_ENABLE_VTK_IOOCCT + "libtheora" VTK_MODULE_ENABLE_VTK_IOOggTheora + "libharu" VTK_MODULE_ENABLE_VTK_IOExportPDF + "cgns" VTK_MODULE_ENABLE_VTK_IOCGNSReader + "seacas" VTK_MODULE_ENABLE_VTK_IOIOSS + "seacas" VTK_MODULE_ENABLE_VTK_IOExodus +) +# Replace common value to vtk value +list(TRANSFORM VTK_FEATURE_OPTIONS REPLACE "=ON" "=YES") +list(TRANSFORM VTK_FEATURE_OPTIONS REPLACE "=OFF" "=DONT_WANT") + +if("qt" IN_LIST FEATURES) + file(READ "${CURRENT_INSTALLED_DIR}/share/qtbase/vcpkg_abi_info.txt" qtbase_abi_info) + if(qtbase_abi_info MATCHES "(^|;)gles2(;|$)") + message(FATAL_ERROR "VTK assumes qt to be build with desktop opengl. As such trying to build vtk with qt using GLES will fail.") + # This should really be a configure error but using this approach doesn't require patching. + endif() + + if(NOT EXISTS "${CURRENT_HOST_INSTALLED_DIR}/tools/Qt6/bin/qmlplugindump${VCPKG_HOST_EXECUTABLE_SUFFIX}") + list(APPEND VTK_FEATURE_OPTIONS -DVTK_MODULE_ENABLE_VTK_GUISupportQtQuick=NO) + endif() +endif() + +if("python" IN_LIST FEATURES) + vcpkg_get_vcpkg_installed_python(PYTHON3) + list(APPEND ADDITIONAL_OPTIONS + -DPython3_FIND_REGISTRY=NEVER + "-DPython3_EXECUTABLE:PATH=${PYTHON3}" + "-DVTK_PYTHON_SITE_PACKAGES_SUFFIX=${PYTHON3_SITE}" # from vcpkg-port-config.cmake + ) + #VTK_PYTHON_SITE_PACKAGES_SUFFIX should be set to the install dir of the site-packages +endif() + +if ("paraview" IN_LIST FEATURES OR "opengl" IN_LIST FEATURES) + list(APPEND ADDITIONAL_OPTIONS + -DVTK_MODULE_ENABLE_VTK_RenderingContextOpenGL2=YES + -DVTK_MODULE_ENABLE_VTK_RenderingLICOpenGL2=YES + -DVTK_MODULE_ENABLE_VTK_RenderingAnnotation=YES + -DVTK_MODULE_ENABLE_VTK_DomainsChemistryOpenGL2=YES + -DVTK_MODULE_ENABLE_VTK_FiltersParallelDIY2=YES + ) +endif() + +if ("paraview" IN_LIST FEATURES AND "python" IN_LIST FEATURES) + list(APPEND ADDITIONAL_OPTIONS + -DVTK_MODULE_ENABLE_VTK_WebCore=YES + -DVTK_MODULE_ENABLE_VTK_WebPython=YES + -DVTK_MODULE_ENABLE_VTK_RenderingMatplotlib=YES + ) +endif() + +set(use_mpi OFF) +if("mpi" IN_LIST FEATURES) + set(use_mpi ON) +elseif(HDF5_WITH_PARALLEL) + message(WARNING "${HDF5_WITH_PARALLEL} Enabling VTK MPI.") + set(use_mpi ON) +endif() +list(APPEND ADDITIONAL_OPTIONS -DVTK_USE_MPI=${use_mpi}) +if(use_mpi) + list(APPEND ADDITIONAL_OPTIONS -DVTK_MODULE_ENABLE_VTK_ParallelMPI=YES) + + if("paraview" IN_LIST FEATURES) + list(APPEND ADDITIONAL_OPTIONS + -DVTK_MODULE_ENABLE_VTK_FiltersParallelFlowPaths=YES + -DVTK_MODULE_ENABLE_VTK_RenderingParallelLIC=YES + ) + endif() + + if("python" IN_LIST FEATURES) + list(APPEND ADDITIONAL_OPTIONS + -DVTK_MODULE_USE_EXTERNAL_VTK_mpi4py=OFF + ) + endif() +endif() + +if("cuda" IN_LIST FEATURES) + vcpkg_find_cuda(OUT_CUDA_TOOLKIT_ROOT cuda_toolkit_root) + list(APPEND ADDITIONAL_OPTIONS + "-DCMAKE_CUDA_COMPILER=${NVCC}" + ) +endif() + +if("utf8" IN_LIST FEATURES) + list(APPEND ADDITIONAL_OPTIONS + -DKWSYS_ENCODING_DEFAULT_CODEPAGE=CP_UTF8 + ) +endif() + +if("tbb" IN_LIST FEATURES) + list(APPEND ADDITIONAL_OPTIONS + -DVTK_SMP_IMPLEMENTATION_TYPE=TBB + ) +endif() + +if("openmp" IN_LIST FEATURES) + list(APPEND ADDITIONAL_OPTIONS + -DVTK_SMP_IMPLEMENTATION_TYPE=OpenMP + ) +endif() + +if(NOT VCPKG_TARGET_IS_WINDOWS) + list(APPEND ADDITIONAL_OPTIONS + -DVTK_MODULE_ENABLE_VTK_IOODBC=NO + ) +endif() + +# ============================================================================= +# Configure & Install + + + +# We set all libraries to "system" and explicitly list the ones that should use embedded copies +vcpkg_cmake_configure( + SOURCE_PATH "${SOURCE_PATH}" + OPTIONS + ${VTK_FEATURE_OPTIONS} + ${VTK_YES_NO_OPTIONS} + ${ADDITIONAL_OPTIONS} + -DBUILD_TESTING=OFF + -DVTK_BUILD_TESTING=OFF + -DVTK_BUILD_EXAMPLES=OFF + -DVTK_ENABLE_REMOTE_MODULES=OFF + # VTK groups to enable + -DVTK_GROUP_ENABLE_StandAlone=YES + -DVTK_GROUP_ENABLE_Rendering=YES + -DVTK_GROUP_ENABLE_Views=YES + # Disable dependencies which are not in vcpkg or not in the manifest + -DVCPKG_LOCK_FIND_PACKAGE_Boost=OFF + -DVTK_ENABLE_OSPRAY=OFF + -DVTK_USE_TK=OFF # TCL/TK currently not included in vcpkg + # Select modules / groups to install + -DVTK_USE_EXTERNAL:BOOL=ON + -DVTK_MODULE_ENABLE_VTK_CommonArchive=NO + -DVTK_MODULE_ENABLE_VTK_DomainsMicroscopy=NO + -DVTK_MODULE_ENABLE_VTK_fides=NO + -DVTK_MODULE_ENABLE_VTK_FiltersReebGraph=NO + -DVTK_MODULE_ENABLE_VTK_InfovisBoost=NO + -DVTK_MODULE_ENABLE_VTK_InfovisBoostGraphAlgorithms=NO + -DVTK_MODULE_ENABLE_VTK_IOADIOS2=NO + -DVTK_MODULE_ENABLE_VTK_IOAlembic=NO + -DVTK_MODULE_ENABLE_VTK_IOLAS=NO + -DVTK_MODULE_ENABLE_VTK_IOOpenVDB=NO + -DVTK_MODULE_ENABLE_VTK_IOPDAL=NO + -DVTK_MODULE_ENABLE_VTK_RenderingOpenXR=NO + -DVTK_MODULE_ENABLE_VTK_WrappingTools=YES + -DVTK_MODULE_ENABLE_VTK_xdmf3=NO + -DVTK_MODULE_USE_EXTERNAL_VTK_token:BOOL=OFF # Not yet in VCPKG + # misc + -DVTK_DEBUG_MODULE_ALL=ON + -DVTK_DEBUG_MODULE=ON + -DVTK_QT_VERSION=6 + -DCMAKE_INSTALL_QMLDIR:PATH=qml + "-DVTKCompileTools_DIR=${CURRENT_HOST_INSTALLED_DIR}/share/vtk-compile-tools" + -DVCPKG_HOST_TRIPLET=${_HOST_TRIPLET} + -DCMAKE_POLICY_DEFAULT_CMP0174=NEW # cmake_parse_arguments + -DCMAKE_POLICY_DEFAULT_CMP0177=NEW # install() DESTINATION paths are normalized + -DCMAKE_FIND_PACKAGE_TARGETS_GLOBAL=ON # Due to Qt6::Platform not being found on Linux platform + MAYBE_UNUSED_VARIABLES + VTK_ENABLE_OSPRAY + VTK_MODULE_ENABLE_VTK_PythonContext2D # Guarded by a conditional + VTK_MODULE_ENABLE_VTK_GUISupportMFC # only windows + VTK_MODULE_ENABLE_VTK_vtkm + VTK_MODULE_ENABLE_VTK_xdmf3 + VTK_MODULE_USE_EXTERNAL_VTK_mpi4py + # Some subprojects + CMAKE_POLICY_DEFAULT_CMP0174 + CMAKE_POLICY_DEFAULT_CMP0177 + # Only with Qt + CMAKE_INSTALL_QMLDIR + VTK_QT_VERSION # Only with Qt + # When working properly these should be unused + VCPKG_LOCK_FIND_PACKAGE_Boost + VCPKG_LOCK_FIND_PACKAGE_CGNS + VCPKG_LOCK_FIND_PACKAGE_LibHaru + VCPKG_LOCK_FIND_PACKAGE_NetCDF + VCPKG_LOCK_FIND_PACKAGE_PROJ + VCPKG_LOCK_FIND_PACKAGE_SEACASExodus + VCPKG_LOCK_FIND_PACKAGE_SEACASIoss + VCPKG_LOCK_FIND_PACKAGE_SQLite3 + VCPKG_LOCK_FIND_PACKAGE_THEORA +) + +vcpkg_cmake_install() +vcpkg_copy_pdbs() + +# ============================================================================= +# Fixup target files +vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/vtk-${VTK_SHORT_VERSION}) + +# ============================================================================= +# Clean-up other directories + +# Delete the debug binary TOOL_NAME that is not required +function(_vtk_remove_debug_tool TOOL_NAME) + set(filename "${CURRENT_PACKAGES_DIR}/debug/bin/${TOOL_NAME}${VCPKG_TARGET_EXECUTABLE_SUFFIX}") + if(EXISTS "${filename}") + file(REMOVE "${filename}") + endif() + set(filename "${CURRENT_PACKAGES_DIR}/debug/bin/${TOOL_NAME}d${VCPKG_TARGET_EXECUTABLE_SUFFIX}") + if(EXISTS "${filename}") + file(REMOVE "${filename}") + endif() + if (NOT VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL debug) + # we also have to bend the lines referencing the tools in VTKTargets-debug.cmake + # to make them point to the release version of the tools + file(READ "${CURRENT_PACKAGES_DIR}/share/vtk/VTK-targets-debug.cmake" VTK_TARGETS_CONTENT_DEBUG) + string(REPLACE "debug/bin/${TOOL_NAME}" "tools/vtk/${TOOL_NAME}" VTK_TARGETS_CONTENT_DEBUG "${VTK_TARGETS_CONTENT_DEBUG}") + string(REPLACE "tools/vtk/${TOOL_NAME}d" "tools/vtk/${TOOL_NAME}" VTK_TARGETS_CONTENT_DEBUG "${VTK_TARGETS_CONTENT_DEBUG}") + file(WRITE "${CURRENT_PACKAGES_DIR}/share/vtk/VTK-targets-debug.cmake" "${VTK_TARGETS_CONTENT_DEBUG}") + endif() +endfunction() + +# Move the release binary TOOL_NAME from bin to tools +function(_vtk_move_release_tool TOOL_NAME) + set(old_filename "${CURRENT_PACKAGES_DIR}/bin/${TOOL_NAME}${VCPKG_TARGET_EXECUTABLE_SUFFIX}") + if(EXISTS "${old_filename}") + file(INSTALL "${old_filename}" DESTINATION "${CURRENT_PACKAGES_DIR}/tools/vtk" USE_SOURCE_PERMISSIONS) + file(REMOVE "${old_filename}") + endif() + + if (NOT VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL release) + # we also have to bend the lines referencing the tools in VTKTargets-release.cmake + # to make them point to the tool folder + file(READ "${CURRENT_PACKAGES_DIR}/share/vtk/VTK-targets-release.cmake" VTK_TARGETS_CONTENT_RELEASE) + string(REPLACE "bin/${TOOL_NAME}" "tools/vtk/${TOOL_NAME}" VTK_TARGETS_CONTENT_RELEASE "${VTK_TARGETS_CONTENT_RELEASE}") + file(WRITE "${CURRENT_PACKAGES_DIR}/share/vtk/VTK-targets-release.cmake" "${VTK_TARGETS_CONTENT_RELEASE}") + endif() +endfunction() + +set(VTK_TOOLS + vtkEncodeString-${VTK_SHORT_VERSION} + vtkHashSource-${VTK_SHORT_VERSION} + vtkWrapTclInit-${VTK_SHORT_VERSION} + vtkWrapTcl-${VTK_SHORT_VERSION} + vtkWrapPythonInit-${VTK_SHORT_VERSION} + vtkWrapPython-${VTK_SHORT_VERSION} + vtkWrapJava-${VTK_SHORT_VERSION} + vtkWrapHierarchy-${VTK_SHORT_VERSION} + vtkParseJava-${VTK_SHORT_VERSION} + vtkParseOGLExt-${VTK_SHORT_VERSION} + vtkProbeOpenGLVersion-${VTK_SHORT_VERSION} + vtkTestOpenGLVersion-${VTK_SHORT_VERSION} + vtkpython + pvtkpython +) +# TODO: Replace with vcpkg_copy_tools if known which tools are built with which feature +# or add and option to vcpkg_copy_tools which does not require the tool to be present +foreach(TOOL_NAME IN LISTS VTK_TOOLS) + _vtk_remove_debug_tool("${TOOL_NAME}") + _vtk_move_release_tool("${TOOL_NAME}") +endforeach() + +if(EXISTS "${CURRENT_PACKAGES_DIR}/bin/vtktoken-9.3.dll" AND VCPKG_LIBRARY_LINKAGE STREQUAL "static") + # vendored "token" library can be only build as a shared library + set(VCPKG_POLICY_DLLS_IN_STATIC_LIBRARY enabled) +elseif(VCPKG_LIBRARY_LINKAGE STREQUAL "static") + file(REMOVE_RECURSE + "${CURRENT_PACKAGES_DIR}/bin" + "${CURRENT_PACKAGES_DIR}/debug/bin") +endif() + +file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") +file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") + +vcpkg_copy_tool_dependencies("${CURRENT_PACKAGES_DIR}/tools/vtk") + +if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") + if(EXISTS "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/CMakeFiles/vtkpythonmodules/static_python") #python headers + file(GLOB_RECURSE STATIC_PYTHON_FILES "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/CMakeFiles/*/static_python/*.h") + file(INSTALL ${STATIC_PYTHON_FILES} DESTINATION "${CURRENT_PACKAGES_DIR}/include/vtk-${VTK_SHORT_VERSION}") + endif() +endif() + +#remove one get_filename_component(_vtk_module_import_prefix "${_vtk_module_import_prefix}" DIRECTORY) from vtk-prefix.cmake and VTK-vtk-module-properties and vtk-python.cmake +set(filenames_fix_prefix vtk-prefix VTK-vtk-module-properties vtk-python) +foreach(name IN LISTS filenames_fix_prefix) +if(EXISTS "${CURRENT_PACKAGES_DIR}/share/vtk/${name}.cmake") + file(READ "${CURRENT_PACKAGES_DIR}/share/vtk/${name}.cmake" _contents) + string(REPLACE +[[set(_vtk_module_import_prefix "${CMAKE_CURRENT_LIST_DIR}") +get_filename_component(_vtk_module_import_prefix "${_vtk_module_import_prefix}" DIRECTORY)]] +[[set(_vtk_module_import_prefix "${CMAKE_CURRENT_LIST_DIR}")]] _contents "${_contents}") + file(WRITE "${CURRENT_PACKAGES_DIR}/share/vtk/${name}.cmake" "${_contents}") +else() + debug_message("FILE:${CURRENT_PACKAGES_DIR}/share/vtk/${name}.cmake does not exist! No prefix correction!") +endif() +endforeach() + +# Use vcpkg provided find method +file(REMOVE "${CURRENT_PACKAGES_DIR}/share/${PORT}/FindEXPAT.cmake") + +if(EXISTS "${CURRENT_PACKAGES_DIR}/include/vtk-${VTK_SHORT_VERSION}/vtkChemistryConfigure.h") + vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/vtk-${VTK_SHORT_VERSION}/vtkChemistryConfigure.h" "${SOURCE_PATH}" "not/existing" IGNORE_UNCHANGED) +endif() + +vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/share/vtk/VTK-vtk-module-properties.cmake" "_vtk_module_import_prefix}/lib/vtk-9.3/hierarchy" "_vtk_module_import_prefix}$<$<CONFIG:Debug>:/debug>/lib/vtk-9.3/hierarchy") + +file(COPY "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") + +file(RENAME "${CURRENT_PACKAGES_DIR}/share/licenses" "${CURRENT_PACKAGES_DIR}/share/${PORT}/licenses") +vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/Copyright.txt" COMMENT [[ +This file presents the top-level Copyright.txt. +Additional licenses and notes are located in the licenses directory. +]]) |