FindVTK: Drop support for finding VTK 4.0
Convert to a simple thin-wrapper around the find_package(VTK NO_MODULE). This makes the code much simpler and improves error messages.
This commit is contained in:
parent
bf5fc1d582
commit
117e7e1177
|
@ -0,0 +1,6 @@
|
||||||
|
FindVTK
|
||||||
|
-------
|
||||||
|
|
||||||
|
* The :module:`FindVTK` module dropped support for finding VTK 4.0.
|
||||||
|
It is now a thin-wrapper around ``find_package(VTK ... NO_MODULE)``.
|
||||||
|
This produces much clearer error messages when VTK is not found.
|
|
@ -10,18 +10,6 @@
|
||||||
# ::
|
# ::
|
||||||
#
|
#
|
||||||
# VTK_FOUND - Set to true when VTK is found.
|
# VTK_FOUND - Set to true when VTK is found.
|
||||||
# VTK_USE_FILE - CMake file to use VTK.
|
|
||||||
# VTK_MAJOR_VERSION - The VTK major version number.
|
|
||||||
# VTK_MINOR_VERSION - The VTK minor version number
|
|
||||||
# (odd non-release).
|
|
||||||
# VTK_BUILD_VERSION - The VTK patch level
|
|
||||||
# (meaningless for odd minor).
|
|
||||||
# VTK_INCLUDE_DIRS - Include directories for VTK
|
|
||||||
# VTK_LIBRARY_DIRS - Link directories for VTK libraries
|
|
||||||
# VTK_KITS - List of VTK kits, in CAPS
|
|
||||||
# (COMMON,IO,) etc.
|
|
||||||
# VTK_LANGUAGES - List of wrapped languages, in CAPS
|
|
||||||
# (TCL, PYHTON,) etc.
|
|
||||||
#
|
#
|
||||||
# The following cache entries must be set by the user to locate VTK:
|
# The following cache entries must be set by the user to locate VTK:
|
||||||
#
|
#
|
||||||
|
@ -43,7 +31,7 @@
|
||||||
# instead.
|
# instead.
|
||||||
|
|
||||||
#=============================================================================
|
#=============================================================================
|
||||||
# Copyright 2001-2009 Kitware, Inc.
|
# Copyright 2001-2014 Kitware, Inc.
|
||||||
#
|
#
|
||||||
# Distributed under the OSI-approved BSD License (the "License");
|
# Distributed under the OSI-approved BSD License (the "License");
|
||||||
# see accompanying file Copyright.txt for details.
|
# see accompanying file Copyright.txt for details.
|
||||||
|
@ -55,102 +43,24 @@
|
||||||
# (To distribute this file outside of CMake, substitute the full
|
# (To distribute this file outside of CMake, substitute the full
|
||||||
# License text for the above reference.)
|
# License text for the above reference.)
|
||||||
|
|
||||||
# Assume not found.
|
|
||||||
set(VTK_FOUND 0)
|
|
||||||
|
|
||||||
# VTK 4.0 did not provide VTKConfig.cmake.
|
|
||||||
if("${VTK_FIND_VERSION}" VERSION_LESS 4.1)
|
|
||||||
set(_VTK_40_ALLOW 1)
|
|
||||||
if(VTK_FIND_VERSION)
|
|
||||||
set(_VTK_40_ONLY 1)
|
|
||||||
endif()
|
|
||||||
endif()
|
|
||||||
|
|
||||||
# Construct consistent error messages for use below.
|
|
||||||
set(VTK_DIR_DESCRIPTION "directory containing VTKConfig.cmake. This is either the root of the build tree, or PREFIX/lib/vtk for an installation.")
|
|
||||||
if(_VTK_40_ALLOW)
|
|
||||||
set(VTK_DIR_DESCRIPTION "${VTK_DIR_DESCRIPTION} For VTK 4.0, this is the location of UseVTK.cmake. This is either the root of the build tree or PREFIX/include/vtk for an installation.")
|
|
||||||
endif()
|
|
||||||
set(VTK_DIR_MESSAGE "VTK not found. Set the VTK_DIR cmake cache entry to the ${VTK_DIR_DESCRIPTION}")
|
|
||||||
|
|
||||||
# Check whether VTK 4.0 has already been found.
|
|
||||||
if(_VTK_40_ALLOW AND VTK_DIR)
|
|
||||||
if(EXISTS ${VTK_DIR}/UseVTK.cmake AND NOT EXISTS ${VTK_DIR}/VTKConfig.cmake)
|
|
||||||
set(VTK_FOUND 1)
|
|
||||||
include(${CMAKE_CURRENT_LIST_DIR}/UseVTKConfig40.cmake) # No VTKConfig; load VTK 4.0 settings.
|
|
||||||
endif()
|
|
||||||
endif()
|
|
||||||
|
|
||||||
# Use the Config mode of the find_package() command to find VTKConfig.
|
# Use the Config mode of the find_package() command to find VTKConfig.
|
||||||
# If this succeeds (possibly because VTK_DIR is already set), the
|
# If this succeeds (possibly because VTK_DIR is already set), the
|
||||||
# command will have already loaded VTKConfig.cmake and set VTK_FOUND.
|
# command will have already loaded VTKConfig.cmake and set VTK_FOUND.
|
||||||
if(NOT _VTK_40_ONLY AND NOT VTK_FOUND)
|
if(NOT VTK_FOUND)
|
||||||
find_package(VTK QUIET NO_MODULE)
|
set(_VTK_REQUIRED "")
|
||||||
|
if(VTK_FIND_REQUIRED)
|
||||||
|
set(_VTK_REQUIRED REQUIRED)
|
||||||
|
endif()
|
||||||
|
set(_VTK_QUIET "")
|
||||||
|
if(VTK_FIND_QUIETLY)
|
||||||
|
set(_VTK_QUIET QUIET)
|
||||||
|
endif()
|
||||||
|
find_package(VTK ${_VTK_REQUIRED} ${_VTK_QUIET} NO_MODULE)
|
||||||
|
unset(_VTK_REQUIRED)
|
||||||
|
unset(_VTK_QUIET)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# Special search for VTK 4.0.
|
|
||||||
if(_VTK_40_ALLOW AND NOT VTK_DIR)
|
|
||||||
# Old scripts may set these directories in the CMakeCache.txt file.
|
|
||||||
# They can tell us where to find VTKConfig.cmake.
|
|
||||||
set(VTK_DIR_SEARCH_LEGACY "")
|
|
||||||
if(VTK_BINARY_PATH AND USE_BUILT_VTK)
|
|
||||||
set(VTK_DIR_SEARCH_LEGACY ${VTK_DIR_SEARCH_LEGACY} ${VTK_BINARY_PATH})
|
|
||||||
endif()
|
|
||||||
if(VTK_INSTALL_PATH AND USE_INSTALLED_VTK)
|
|
||||||
set(VTK_DIR_SEARCH_LEGACY ${VTK_DIR_SEARCH_LEGACY}
|
|
||||||
${VTK_INSTALL_PATH}/lib/vtk)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
# Look for UseVTK.cmake in build trees or under <prefix>/include/vtk.
|
|
||||||
find_path(VTK_DIR
|
|
||||||
NAMES UseVTK.cmake
|
|
||||||
PATH_SUFFIXES vtk-4.0 vtk
|
|
||||||
HINTS ENV VTK_DIR
|
|
||||||
|
|
||||||
PATHS
|
|
||||||
|
|
||||||
# Support legacy cache files.
|
|
||||||
${VTK_DIR_SEARCH_LEGACY}
|
|
||||||
|
|
||||||
# Read from the CMakeSetup registry entries. It is likely that
|
|
||||||
# VTK will have been recently built.
|
|
||||||
[HKEY_CURRENT_USER\\Software\\Kitware\\CMakeSetup\\Settings\\StartPath;WhereBuild1]
|
|
||||||
[HKEY_CURRENT_USER\\Software\\Kitware\\CMakeSetup\\Settings\\StartPath;WhereBuild2]
|
|
||||||
[HKEY_CURRENT_USER\\Software\\Kitware\\CMakeSetup\\Settings\\StartPath;WhereBuild3]
|
|
||||||
[HKEY_CURRENT_USER\\Software\\Kitware\\CMakeSetup\\Settings\\StartPath;WhereBuild4]
|
|
||||||
[HKEY_CURRENT_USER\\Software\\Kitware\\CMakeSetup\\Settings\\StartPath;WhereBuild5]
|
|
||||||
[HKEY_CURRENT_USER\\Software\\Kitware\\CMakeSetup\\Settings\\StartPath;WhereBuild6]
|
|
||||||
[HKEY_CURRENT_USER\\Software\\Kitware\\CMakeSetup\\Settings\\StartPath;WhereBuild7]
|
|
||||||
[HKEY_CURRENT_USER\\Software\\Kitware\\CMakeSetup\\Settings\\StartPath;WhereBuild8]
|
|
||||||
[HKEY_CURRENT_USER\\Software\\Kitware\\CMakeSetup\\Settings\\StartPath;WhereBuild9]
|
|
||||||
[HKEY_CURRENT_USER\\Software\\Kitware\\CMakeSetup\\Settings\\StartPath;WhereBuild10]
|
|
||||||
|
|
||||||
# Help the user find it if we cannot.
|
|
||||||
DOC "The ${VTK_DIR_DESCRIPTION}"
|
|
||||||
)
|
|
||||||
|
|
||||||
if(VTK_DIR)
|
|
||||||
if(EXISTS ${VTK_DIR}/UseVTK.cmake AND NOT EXISTS ${VTK_DIR}/VTKConfig.cmake)
|
|
||||||
set(VTK_FOUND 1)
|
|
||||||
include(${CMAKE_CURRENT_LIST_DIR}/UseVTKConfig40.cmake) # No VTKConfig; load VTK 4.0 settings.
|
|
||||||
else()
|
|
||||||
# We found the wrong version. Pretend we did not find it.
|
|
||||||
set(VTK_DIR "VTK_DIR-NOTFOUND" CACHE PATH "The ${VTK_DIR_DESCRIPTION}" FORCE)
|
|
||||||
endif()
|
|
||||||
endif()
|
|
||||||
endif()
|
|
||||||
|
|
||||||
#-----------------------------------------------------------------------------
|
|
||||||
if(VTK_FOUND)
|
if(VTK_FOUND)
|
||||||
# Set USE_VTK_FILE for backward-compatibility.
|
# Set USE_VTK_FILE for backward-compatibility.
|
||||||
set(USE_VTK_FILE ${VTK_USE_FILE})
|
set(USE_VTK_FILE ${VTK_USE_FILE})
|
||||||
else()
|
|
||||||
# VTK not found, explain to the user how to specify its location.
|
|
||||||
if(VTK_FIND_REQUIRED)
|
|
||||||
message(FATAL_ERROR ${VTK_DIR_MESSAGE})
|
|
||||||
else()
|
|
||||||
if(NOT VTK_FIND_QUIETLY)
|
|
||||||
message(STATUS ${VTK_DIR_MESSAGE})
|
|
||||||
endif()
|
|
||||||
endif()
|
|
||||||
endif()
|
endif()
|
||||||
|
|
Loading…
Reference in New Issue