Files
CMake/Modules/Documentation.cmake
Matthew Woehlke 763cfbcac8 Diagnostics: "Fix" policy warnings in modules
Introduce a mechanism (via the private and undocumented `ISSUE_WARNING`
option to the `cmake_policy` command) to allow built-in modules to issue
policy warnings. Update modules to use this.

This allows modules to issue policy warnings with the `CMD_POLICY`
diagnostic type, which is consistent with internally issued diagnostics.
This also tends to simplify the logic for issuing such warnings in much
the way the helpers introduced in the previous commit did for the C++
code.
2026-05-20 15:32:57 -04:00

76 lines
2.1 KiB
CMake

# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
# file LICENSE.rst or https://cmake.org/licensing for details.
#[=======================================================================[.rst:
Documentation
-------------
.. deprecated:: 3.18
This module does nothing, unless policy :policy:`CMP0106` is set to ``OLD``.
This module provides support for the VTK documentation framework. It
relies on several tools (Doxygen, Perl, etc).
#]=======================================================================]
cmake_policy(GET CMP0106 _Documentation_policy)
if (_Documentation_policy STREQUAL "NEW")
message(FATAL_ERROR
"Documentation.cmake is VTK-specific code and should not be used in "
"non-VTK projects. This logic in this module is best shipped with the "
"project using it rather than with CMake. This is now an error according "
"to policy CMP0106.")
else ()
if (_Documentation_policy STREQUAL "")
# Ignore the warning if the project is detected as VTK itself.
if (NOT CMAKE_PROJECT_NAME STREQUAL "VTK" AND
NOT PROJECT_NAME STREQUAL "VTK")
cmake_policy(ISSUE_WARNING CMP0106 POST
"Documentation.cmake is VTK-specific code and should not be used in "
"non-VTK projects. This logic in this module is best shipped with the "
"project using it rather than with CMake.")
endif ()
unset(_Documentation_policy_warning)
endif ()
#
# Build the documentation ?
#
option(BUILD_DOCUMENTATION "Build the documentation (Doxygen)." OFF)
mark_as_advanced(BUILD_DOCUMENTATION)
if (BUILD_DOCUMENTATION)
#
# Check for the tools
#
find_package(UnixCommands)
find_package(Doxygen)
find_package(Gnuplot)
find_package(HTMLHelp)
find_package(Perl)
find_package(Wget)
option(DOCUMENTATION_HTML_HELP
"Build the HTML Help file (CHM)." OFF)
option(DOCUMENTATION_HTML_TARZ
"Build a compressed tar archive of the HTML doc." OFF)
mark_as_advanced(
DOCUMENTATION_HTML_HELP
DOCUMENTATION_HTML_TARZ
)
#
# The documentation process is controlled by a batch file.
# We will probably need bash to create the custom target
#
endif ()
endif ()
unset(_Documentation_policy)