cmake_minimum_required(VERSION 3.12...3.16 FATAL_ERROR) project(VTK) if (POLICY CMP0127) cmake_policy(SET CMP0127 NEW) # cmake_dependent_option changes endif () set(vtk_cmake_dir "${VTK_SOURCE_DIR}/CMake") list(INSERT CMAKE_MODULE_PATH 0 "${vtk_cmake_dir}") if (APPLE) include(vtkApple) endif () # must be before the following iOS / Android find_package(Git QUIET) include(VTKDetermineVersion) include(vtkVersion) set(VTK_VERSION "${VTK_MAJOR_VERSION}.${VTK_MINOR_VERSION}.${VTK_BUILD_VERSION}") determine_version("${CMAKE_CURRENT_SOURCE_DIR}" "${GIT_EXECUTABLE}" "VTK") option(VTK_IOS_BUILD "Build vtk.framework for iOS" OFF) mark_as_advanced(VTK_IOS_BUILD) if (VTK_IOS_BUILD) include(vtkiOS) return() endif() option(VTK_ANDROID_BUILD "Build VTK for Android" OFF) mark_as_advanced(VTK_ANDROID_BUILD) if (VTK_ANDROID_BUILD) include(vtkAndroid) return() endif() include(vtkCMakeBackports) option(VTK_WHEEL_BUILD "Build in such a way that Python wheels are supported" OFF) mark_as_advanced(VTK_WHEEL_BUILD) if (VTK_WHEEL_BUILD) include(vtkWheelPreparation) endif () include(GNUInstallDirs) add_library(vtkbuild INTERFACE) add_library(VTK::vtkbuild ALIAS vtkbuild) include(vtkCompilerChecks) include(vtkCompilerPlatformFlags) include(vtkCompilerExtraFlags) include(vtkInitializeBuildType) include(vtkSupportMacros) include(vtkDownload) include(vtkSanitize) include(vtkTesting) include(vtkMobileDevices) include(vtkWrapSettings) include(vtkCrossCompiling) include(vtkObjectFactory) option(VTK_RELOCATABLE_INSTALL "Do not embed hard-coded paths into the install" ON) mark_as_advanced(VTK_RELOCATABLE_INSTALL) cmake_dependent_option(VTK_UNIFIED_INSTALL_TREE "Assume that the install tree contains all of VTK's dependencies" OFF VTK_RELOCATABLE_INSTALL OFF) mark_as_advanced(VTK_UNIFIED_INSTALL_TREE) set(CMAKE_INSTALL_LICENSEDIR "" CACHE STRING "License files (DATAROOTDIR/licenses/${CMAKE_PROJECT_NAME}") mark_as_advanced(CMAKE_INSTALL_LICENSEDIR) if (NOT CMAKE_INSTALL_LICENSEDIR) set(CMAKE_INSTALL_LICENSEDIR "${CMAKE_INSTALL_DATAROOTDIR}/licenses/${CMAKE_PROJECT_NAME}") endif () set(CMAKE_INSTALL_QMLDIR "" CACHE PATH "QML files (LIBDIR/qml)") mark_as_advanced(CMAKE_INSTALL_QMLDIR) if (NOT CMAKE_INSTALL_QMLDIR) set(CMAKE_INSTALL_QMLDIR "${CMAKE_INSTALL_LIBDIR}/qml") endif () set(VTK_BUILD_SHARED_LIBS ${BUILD_SHARED_LIBS}) set(CMAKE_CXX_VISIBILITY_PRESET "hidden") set(CMAKE_VISIBILITY_INLINES_HIDDEN 1) set(CMAKE_POSITION_INDEPENDENT_CODE TRUE) #----------------------------------------------------------------------------- # Add the Remote Subdirectory if (VTK_ENABLE_REMOTE_MODULES) add_subdirectory(Remote) endif () #----------------------------------------------------------------------------- # Does VTK require support for 64 bit file systems include(CheckCXXSourceRuns) file(READ "${vtk_cmake_dir}/vtkRequireLargeFilesSupport.cxx" VTK_REQUIRE_LARGE_FILE_SUPPORT_FILE) check_cxx_source_runs("${VTK_REQUIRE_LARGE_FILE_SUPPORT_FILE}" VTK_REQUIRE_LARGE_FILE_SUPPORT) #----------------------------------------------------------------------------- # Provide compatibility options. option(VTK_LEGACY_REMOVE "Remove all legacy code completely." OFF) option(VTK_LEGACY_SILENT "Silence all legacy code messages." OFF) mark_as_advanced(VTK_LEGACY_REMOVE VTK_LEGACY_SILENT) # Tell VTK source files they are being built inside VTK. add_definitions(-DVTK_IN_VTK) include(CheckTypeSize) option(VTK_USE_MPI "Support MPI" OFF) option(VTK_SERIAL_TESTS_USE_MPIEXEC "Used on HPC to run serial tests on compute nodes" OFF) mark_as_advanced(VTK_SERIAL_TESTS_USE_MPIEXEC) #----------------------------------------------------------------------------- # Add an option to enable memkind if (UNIX AND NOT APPLE) option(VTK_USE_MEMKIND "Build support for extended memory" OFF) endif() #----------------------------------------------------------------------------- # Add an option to enable/disable components that have CUDA. option(VTK_USE_CUDA "Support CUDA compilation" OFF) if(VTK_USE_CUDA) # This needs to be a top level flag as enable_language needs # to be called from CMake entry point for variables to have # the correct scope. enable_language(CUDA) endif() #----------------------------------------------------------------------------- # Add an option to enable/disable logging support. option(VTK_ENABLE_LOGGING "Enable logging support." ON) mark_as_advanced(VTK_ENABLE_LOGGING) #----------------------------------------------------------------------------- # Add an option to enable/disable catalyst2 support. option(VTK_ENABLE_CATALYST "Build IOCatalystConduit module and VTK catalyst implementation." OFF) mark_as_advanced(VTK_ENABLE_CATALYST) include(vtkEncodeString) # Set up our directory structure for output libraries and binaries set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${VTK_BINARY_DIR}/${CMAKE_INSTALL_BINDIR}") set(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${VTK_BINARY_DIR}/${CMAKE_INSTALL_LIBDIR}") set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY "${VTK_BINARY_DIR}/${CMAKE_INSTALL_LIBDIR}") set(vtk_requested_modules) set(vtk_rejected_modules) if (VTK_WRAP_PYTHON) list(APPEND vtk_requested_modules VTK::WrappingPythonCore VTK::PythonInterpreter) set("_vtk_module_reason_VTK::WrappingPythonCore" "via `VTK_WRAP_PYTHON`") set("_vtk_module_reason_VTK::PythonInterpreter" "via `VTK_WRAP_PYTHON`") else () list(APPEND vtk_rejected_modules VTK::Python) set("_vtk_module_reason_VTK::Python" "via `VTK_WRAP_PYTHON`") endif () if (VTK_WRAP_JAVA) list(APPEND vtk_requested_modules VTK::Java) else () list(APPEND vtk_rejected_modules VTK::Java) endif () set("_vtk_module_reason_VTK::Java" "via `VTK_WRAP_JAVA`") # For vtkTkRenderWidget (only useful with Python, since WRAP_TCL is gone) if (VTK_USE_TK) if (VTK_GROUP_ENABLE_Tk STREQUAL "DEFAULT") set(VTK_GROUP_ENABLE_Tk "WANT") elseif (VTK_GROUP_ENABLE_Tk STREQUAL "NO") message(FATAL_ERROR "VTK_USE_TK=ON is not compatible with VTK_GROUP_ENABLE_Tk=NO") endif () endif () if (VTK_USE_MPI) if (VTK_GROUP_ENABLE_MPI STREQUAL "DEFAULT") set(VTK_GROUP_ENABLE_MPI "WANT") elseif (VTK_GROUP_ENABLE_MPI STREQUAL "NO") message(FATAL_ERROR "VTK_USE_MPI=ON is not compatible with VTK_GROUP_ENABLE_MPI=NO") endif () list(APPEND vtk_requested_modules VTK::ParallelMPI) set("_vtk_module_reason_VTK::ParallelMPI" "via `VTK_USE_MPI`") else () # Reject `VTK::mpi`, but allow those which happen to be part of the group to # be built. set(_vtk_module_group_default_MPI "DONT_WANT") list(APPEND vtk_rejected_modules VTK::mpi) set("_vtk_module_reason_VTK::mpi" "via `VTK_USE_MPI`") endif () if (VTK_ENABLE_LOGGING) list(APPEND vtk_requested_modules VTK::loguru) set("_vtk_module_reason_VTK::loguru" "via `VTK_ENABLE_LOGGING`") endif () if (VTK_ENABLE_CATALYST) list(APPEND vtk_request_modules VTK::IOCatalystConduit) else() list(APPEND vtk_rejected_modules VTK::IOCatalystConduit) endif() set("_vtk_module_reason_VTK::IOCatalystConduit" "via `VTK_ENABLE_CATALYST`") if (VTK_BUILD_TESTING) list(APPEND vtk_requested_modules # Required for just about all VTK tests. VTK::TestingCore) set("_vtk_module_reason_VTK::TestingCore" "via `VTK_BUILD_TESTING`") endif () list(APPEND vtk_requested_modules # Required for just about everything. VTK::CommonCore VTK::CommonDataModel) set("_vtk_module_reason_VTK::CommonCore" "because all VTK builds require VTK::CommonCore") set("_vtk_module_reason_VTK::CommonDataModel" "because all VTK builds require VTK::CommonDataModel") if (VTK_ENABLE_WRAPPING) list(APPEND vtk_requested_modules # Required for wrapping with hierarchy files. VTK::WrappingTools) set("_vtk_module_reason_VTK::WrappingTools" "via `VTK_ENABLE_WRAPPING`") endif () if (vtk_requested_modules) list(REMOVE_DUPLICATES vtk_requested_modules) endif () if (vtk_rejected_modules) list(REMOVE_DUPLICATES vtk_rejected_modules) endif () set_property(GLOBAL PROPERTY "_vtk_module_autoinit_include" "\"vtkAutoInit.h\"") option(VTK_BUILD_ALL_MODULES "Build all modules by default" OFF) mark_as_advanced(VTK_BUILD_ALL_MODULES) set(_vtk_module_reason_WANT_BY_DEFAULT "via `VTK_BUILD_ALL_MODULES`") option(VTK_TARGET_SPECIFIC_COMPONENTS "Install files in target-specific components" OFF) mark_as_advanced(VTK_TARGET_SPECIFIC_COMPONENTS) # Turn on these groups by default. set(_vtk_module_group_default_StandAlone "WANT") set(_vtk_module_group_default_Rendering "WANT") if (VTK_FORBID_DOWNLOADS AND VTK_BUILD_TESTING) message(STATUS "Module testing will fail due to `VTK_FORBID_DOWNLOADS` without a local " "copy of the testing data.") endif () include(vtkModule) include(vtkModuleDebugging) set(vtk_source_directories "${CMAKE_CURRENT_SOURCE_DIR}/Accelerators" "${CMAKE_CURRENT_SOURCE_DIR}/Charts" "${CMAKE_CURRENT_SOURCE_DIR}/Common" "${CMAKE_CURRENT_SOURCE_DIR}/Domains" "${CMAKE_CURRENT_SOURCE_DIR}/Filters" "${CMAKE_CURRENT_SOURCE_DIR}/Geovis" "${CMAKE_CURRENT_SOURCE_DIR}/GUISupport" "${CMAKE_CURRENT_SOURCE_DIR}/Imaging" "${CMAKE_CURRENT_SOURCE_DIR}/Infovis" "${CMAKE_CURRENT_SOURCE_DIR}/Interaction" "${CMAKE_CURRENT_SOURCE_DIR}/IO" "${CMAKE_CURRENT_SOURCE_DIR}/Parallel" "${CMAKE_CURRENT_SOURCE_DIR}/Rendering" "${CMAKE_CURRENT_SOURCE_DIR}/Testing" "${CMAKE_CURRENT_SOURCE_DIR}/ThirdParty" "${CMAKE_CURRENT_SOURCE_DIR}/Utilities" "${CMAKE_CURRENT_SOURCE_DIR}/Views" "${CMAKE_CURRENT_SOURCE_DIR}/Web" "${CMAKE_CURRENT_SOURCE_DIR}/Wrapping") set(remote_default ON) if (VTK_WHEEL_BUILD) set(remote_default OFF) endif () option(VTK_ENABLE_REMOTE_MODULES "Enable remote modules" ON) mark_as_advanced(VTK_ENABLE_REMOTE_MODULES) if (VTK_ENABLE_REMOTE_MODULES) list(APPEND vtk_source_directories "${CMAKE_CURRENT_SOURCE_DIR}/Remote") endif () vtk_module_find_modules(vtk_module_files ${vtk_source_directories}) vtk_module_find_kits(vtk_kit_files ${vtk_source_directories}) # If we're building only the compile tools, limit what is done. option(VTK_BUILD_COMPILE_TOOLS_ONLY "Build only VTK's compile tools" OFF) mark_as_advanced(VTK_BUILD_COMPILE_TOOLS_ONLY) if (VTK_BUILD_COMPILE_TOOLS_ONLY) set(vtk_requested_modules VTKCompileTools::WrappingTools) set(vtk_rejected_modules) set(vtk_module_files "${CMAKE_CURRENT_SOURCE_DIR}/Wrapping/Tools/vtkcompiletools.module") set(vtk_kit_files) endif () cmake_dependent_option(VTK_INSTALL_SDK "Install SDK components" ON "NOT VTK_BUILD_COMPILE_TOOLS_ONLY" ON) mark_as_advanced(VTK_INSTALL_SDK) vtk_module_scan( MODULE_FILES ${vtk_module_files} KIT_FILES ${vtk_kit_files} REQUEST_MODULES ${vtk_requested_modules} REJECT_MODULES ${vtk_rejected_modules} PROVIDES_MODULES vtk_modules PROVIDES_KITS vtk_kits REQUIRES_MODULES vtk_required_modules UNRECOGNIZED_MODULES vtk_unrecognized_modules WANT_BY_DEFAULT "${VTK_BUILD_ALL_MODULES}" ENABLE_TESTS "${VTK_BUILD_TESTING}") if (vtk_required_modules OR vtk_unrecognized_modules) message(FATAL_ERROR "The following modules were requested or required, but not found: " "${vtk_required_modules};${vtk_unrecognized_modules}.") endif () if ("VTK::Python" IN_LIST vtk_modules) include(vtkModuleWrapPython) if (NOT DEFINED VTK_PYTHON_SITE_PACKAGES_SUFFIX) vtk_module_python_default_destination(VTK_PYTHON_SITE_PACKAGES_SUFFIX) endif () endif () # Handle the requirement of `sqlitebin` for `proj`. set(vtk_sqlite_build_binary 0) if ("VTK::libproj" IN_LIST vtk_modules) set(vtk_sqlite_build_binary 1) endif () cmake_dependent_option(VTK_ENABLE_KITS "Enable kits compilation" OFF # Static builds don't make sense with kits. Ignore the flag if shared # libraries aren't being built. "VTK_BUILD_SHARED_LIBS" OFF) mark_as_advanced(VTK_ENABLE_KITS) option(VTK_USE_EXTERNAL "Use external copies of third party libraries by default" OFF) mark_as_advanced(VTK_USE_EXTERNAL) option(VTK_VERSIONED_INSTALL "Install artifacts with versioned names." ON) mark_as_advanced(VTK_VERSIONED_INSTALL) set(vtk_version_suffix "") if (VTK_VERSIONED_INSTALL) set(vtk_version_suffix "-${VTK_MAJOR_VERSION}.${VTK_MINOR_VERSION}") endif () set(vtk_install_export VTK) if (NOT DEFINED vtk_cmake_destination) set(vtk_cmake_destination "${CMAKE_INSTALL_LIBDIR}/cmake/vtk${vtk_version_suffix}") set(vtk_target_package) if (VTK_BUILD_COMPILE_TOOLS_ONLY) set(vtk_install_export VTKCompileTools) set(vtk_cmake_destination "${CMAKE_INSTALL_LIBDIR}/cmake/vtkcompiletools${vtk_version_suffix}") set(vtk_target_package PACKAGE "${vtk_install_export}") endif () endif () install(TARGETS vtkbuild EXPORT "${vtk_install_export}") if (NOT DEFINED vtk_hierarchy_destination_args) set(vtk_hierarchy_destination_args HIERARCHY_DESTINATION "${CMAKE_INSTALL_LIBDIR}/vtk${vtk_version_suffix}/hierarchy/VTK") endif () set(VTK_CUSTOM_LIBRARY_SUFFIX "" CACHE STRING "Custom library file name suffix (defaults to the version number)") mark_as_advanced(VTK_CUSTOM_LIBRARY_SUFFIX) if (VTK_CUSTOM_LIBRARY_SUFFIX STREQUAL "") if (VTK_VERSIONED_INSTALL) set(VTK_CUSTOM_LIBRARY_SUFFIX "${VTK_MAJOR_VERSION}.${VTK_MINOR_VERSION}") else () set(VTK_CUSTOM_LIBRARY_SUFFIX "") endif () endif () set(vtk_library_version_info VERSION "${VTK_VERSION}" SOVERSION "1") if (VTK_WHEEL_BUILD) set(vtk_library_version_info) endif () vtk_module_build( MODULES ${vtk_modules} KITS ${vtk_kits} INSTALL_EXPORT "${vtk_install_export}" ${vtk_target_package} HEADERS_DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/vtk${vtk_version_suffix}" ${vtk_hierarchy_destination_args} CMAKE_DESTINATION "${vtk_cmake_destination}" LICENSE_DESTINATION "${CMAKE_INSTALL_LICENSEDIR}" LIBRARY_NAME_SUFFIX "${VTK_CUSTOM_LIBRARY_SUFFIX}" ${vtk_library_version_info} TEST_DATA_TARGET VTKData INSTALL_HEADERS "${VTK_INSTALL_SDK}" BUILD_WITH_KITS "${VTK_ENABLE_KITS}" USE_EXTERNAL "${VTK_USE_EXTERNAL}" ENABLE_WRAPPING "${VTK_ENABLE_WRAPPING}" UTILITY_TARGET "VTK::vtkbuild" TARGET_SPECIFIC_COMPONENTS "${VTK_TARGET_SPECIFIC_COMPONENTS}" TEST_INPUT_DATA_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/Testing" TEST_OUTPUT_DATA_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/ExternalData/Testing") include(vtkModuleJson) vtk_module_json( MODULES ${vtk_modules} OUTPUT "modules.json") include(vtkModuleGraphviz) vtk_module_graphviz( MODULES ${vtk_modules} KIT_CLUSTERS ON PRIVATE_DEPENDENCIES OFF OUTPUT "modules.dot") if (VTK_WRAP_PYTHON) get_property(vtk_required_python_modules GLOBAL PROPERTY vtk_required_python_modules) if (vtk_required_python_modules) list(REMOVE_DUPLICATES vtk_required_python_modules) endif () string(REPLACE ";" "\n" vtk_required_python_modules "${vtk_required_python_modules}") file(WRITE "${CMAKE_BINARY_DIR}/requirements.txt" "${vtk_required_python_modules}\n") get_property(vtk_web_python_modules GLOBAL PROPERTY vtk_web_python_modules) if (vtk_web_python_modules) list(REMOVE_DUPLICATES vtk_web_python_modules) endif () string(REPLACE ";" "\n" vtk_web_python_modules "${vtk_web_python_modules}") file(WRITE "${CMAKE_BINARY_DIR}/requirements_web.txt" "${vtk_web_python_modules}\n") get_property(vtk_soabi GLOBAL PROPERTY _vtk_python_soabi) cmake_dependent_option(VTK_WINDOWS_PYTHON_DEBUGGABLE "Append `_d` to Python module names" OFF "WIN32;VTK_WRAP_PYTHON" OFF) mark_as_advanced(VTK_WINDOWS_PYTHON_DEBUGGABLE) cmake_dependent_option(VTK_BUILD_PYI_FILES "Build `.pyi` files for VTK's Python modules" OFF "VTK_WRAP_PYTHON" OFF) mark_as_advanced(VTK_BUILD_PYI_FILES) if (APPLE AND VTK_WHEEL_BUILD) list(APPEND CMAKE_INSTALL_RPATH # Wheels place loaded libraries under a `.dylibs` subdirectory. Add this # to the rpath list. "@loader_path/.dylibs") endif () vtk_module_wrap_python( MODULES ${vtk_modules} INSTALL_EXPORT VTKPython PYTHON_PACKAGE "vtkmodules" LIBRARY_DESTINATION "${CMAKE_INSTALL_LIBDIR}" MODULE_DESTINATION "${VTK_PYTHON_SITE_PACKAGES_SUFFIX}" CMAKE_DESTINATION "${vtk_cmake_destination}" INSTALL_HEADERS "${VTK_INSTALL_SDK}" BUILD_PYI_FILES "${VTK_BUILD_PYI_FILES}" SOABI "${vtk_soabi}" USE_DEBUG_SUFFIX "${VTK_WINDOWS_PYTHON_DEBUGGABLE}" UTILITY_TARGET "VTK::vtkbuild" WRAPPED_MODULES vtk_python_wrapped_modules TARGET_SPECIFIC_COMPONENTS "${VTK_TARGET_SPECIFIC_COMPONENTS}" TARGET VTK::vtkpythonmodules) if (APPLE AND VTK_WHEEL_BUILD) list(REMOVE_ITEM CMAKE_INSTALL_RPATH "@loader_path/.dylibs") endif () add_subdirectory(Wrapping/Python) export( EXPORT VTKPython NAMESPACE VTK:: FILE "${CMAKE_BINARY_DIR}/${vtk_cmake_destination}/VTKPython-targets.cmake") install( EXPORT VTKPython NAMESPACE VTK:: FILE VTKPython-targets.cmake DESTINATION "${vtk_cmake_destination}" COMPONENT "development") endif () if (VTK_WRAP_JAVA) enable_language(Java) add_subdirectory(Wrapping/Java) endif () if (VTK_BUILD_TESTING) # Create target to download data from the VTKData group. This must come after # all tests have been added that reference the group, so we put it last. ExternalData_Add_Target(VTKData) if (VTK_DATA_EXCLUDE_FROM_ALL) set_property(TARGET VTKData PROPERTY EXCLUDE_FROM_ALL 1) if (NOT VTK_DATA_EXCLUDE_FROM_ALL_NO_WARNING) message(WARNING "VTK_DATA_EXCLUDE_FROM_ALL is ON so test data (needed because " "VTK_BUILD_TESTING is ON) may not be available without manually " "building the 'VTKData' target.") endif () endif () endif () if (VTK_INSTALL_SDK) set(vtk_cmake_build_dir "${CMAKE_CURRENT_BINARY_DIR}/${vtk_cmake_destination}") if (NOT VTK_BUILD_COMPILE_TOOLS_ONLY) include(vtkInstallCMakePackage) else () include(vtkInstallCMakePackageCompileTools) endif () endif () cmake_dependent_option(VTK_ENABLE_CDASH_THIRD_PARTY_WARNINGS "Suppress warnings from third-party libraries from showing on CDash" OFF "VTK_BUILD_TESTING" OFF) mark_as_advanced(VTK_ENABLE_CDASH_THIRD_PARTY_WARNINGS) configure_file( "${vtk_cmake_dir}/CTestCustom.cmake.in" "${CMAKE_CURRENT_BINARY_DIR}/CTestCustom.cmake" @ONLY) option(VTK_BUILD_EXAMPLES "Build VTK examples." OFF) if (VTK_BUILD_EXAMPLES) add_subdirectory(Examples) endif () if (VTK_BUILD_TESTING) add_subdirectory(Testing/Install) endif () # The doxygen documentation needs to be aware of all modules. option(VTK_BUILD_DOCUMENTATION "Build the VTK documentation" OFF) if (VTK_BUILD_DOCUMENTATION) add_subdirectory(Utilities/Doxygen) endif () # If python wrapping and testing is enabled then add driver scripts to run # tests. Note: Many python tests used to be automatically converted from TCL # scripts. Hence the name vtkTclTest2Py if (VTK_BUILD_TESTING AND VTK_WRAP_PYTHON) add_subdirectory(Utilities/vtkTclTest2Py) endif () if (NOT TARGET uninstall) add_custom_target(uninstall COMMAND "${CMAKE_COMMAND}" "-DCMAKE_BINARY_DIR=${CMAKE_BINARY_DIR}" -P "${CMAKE_CURRENT_LIST_DIR}/CMake/vtkUninstall.cmake" USES_TERMINAL COMMENT "Uninstalling VTK") endif () install( FILES "${CMAKE_CURRENT_LIST_DIR}/Copyright.txt" DESTINATION "${CMAKE_INSTALL_LICENSEDIR}" COMPONENT "license") # TODO: HeaderTest exclusions for memcheck. if (VTK_WHEEL_BUILD) include(vtkWheelFinalization) endif () # Some generated code has some warnings that we need to exclude for now. configure_file( "${VTK_SOURCE_DIR}/.clang-tidy" "${VTK_BINARY_DIR}/.clang-tidy" COPYONLY) #----------------------------------------------------------------------------- # Do this at the end so the all variables it uses are setup. include(vtkBuildPath)