Files
CMake/Utilities/Doxygen/CMakeLists.txt
T
Brad King 95b4b9137a Declare support for CMake versions through 3.12 for own build
CMake 3.12 introduced a `...<max>` syntax in the version given to
`cmake_minimum_required` to automatically set policies to NEW up
to that version.  Use it to avoid listing policies explicitly.

The syntax is compatible with older versions of CMake such that they use
the extended version string for the `CMAKE_MINIMUM_REQUIRED_VERSION`
variable (which we don't use) but otherwise ignore it.
2018-10-17 14:29:16 -04:00

97 lines
2.9 KiB
CMake

# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
# file Copyright.txt or https://cmake.org/licensing for details.
if(NOT CMake_SOURCE_DIR)
set(CMakeDeveloperReference_STANDALONE 1)
cmake_minimum_required(VERSION 3.1...3.12 FATAL_ERROR)
get_filename_component(tmp "${CMAKE_CURRENT_SOURCE_DIR}" PATH)
get_filename_component(CMake_SOURCE_DIR "${tmp}" PATH)
include(${CMake_SOURCE_DIR}/Modules/CTestUseLaunchers.cmake)
include(${CMake_SOURCE_DIR}/Source/CMakeVersionCompute.cmake)
include(${CMake_SOURCE_DIR}/Source/CMakeInstallDestinations.cmake)
unset(CMAKE_DATA_DIR)
unset(CMAKE_DATA_DIR CACHE)
macro(CMake_OPTIONAL_COMPONENT)
set(COMPONENT "")
endmacro()
endif()
project(CMakeDeveloperReference NONE)
#
# Build the reference
#
if (CMake_BUILD_DEVELOPER_REFERENCE OR CMakeDeveloperReference_STANDALONE)
find_package(Doxygen REQUIRED)
#
## Output formats
#
option(CMake_BUILD_DEVELOPER_REFERENCE_HTML "Build CMake Developer Reference - HTML format" ON)
mark_as_advanced(CMake_BUILD_DEVELOPER_REFERENCE_HTML)
if(CMake_BUILD_DEVELOPER_REFERENCE_HTML)
set(GENERATE_HTML YES)
else()
set(GENERATE_HTML NO)
endif()
option(CMake_BUILD_DEVELOPER_REFERENCE_QTHELP "Build CMake Developer Reference - QtHelp format" OFF)
mark_as_advanced(CMake_BUILD_DEVELOPER_REFERENCE_QTHELP)
if(CMake_BUILD_DEVELOPER_REFERENCE_QTHELP)
set(GENERATE_QHP YES)
find_program(QHELPGENERATOR_EXECUTABLE
NAMES qhelpgenerator
DOC "qhelpgenerator tool"
)
if(NOT QHELPGENERATOR_EXECUTABLE)
message(FATAL_ERROR "QHELPGENERATOR_EXECUTABLE (qhelpgenerator) not found!")
endif()
else()
set(GENERATE_QHP NO)
endif()
#
# Configure the script and the doxyfile, then add target
#
if(DOXYGEN_DOT_FOUND)
set(HAVE_DOT YES)
else()
set(HAVE_DOT NO)
endif()
if(NOT DOT_PATH)
get_filename_component(DOT_PATH ${DOXYGEN_DOT_EXECUTABLE} PATH)
endif()
configure_file(doxyfile.in doxyfile @ONLY)
add_custom_target(cmake-developer-reference-all
${DOXYGEN_EXECUTABLE} doxyfile
WORKING_DIRECTORY ${CMakeDeveloperReference_BINARY_DIR})
add_custom_target(cmake-developer-reference ALL DEPENDS cmake-developer-reference-all)
#
# Installation
#
if(CMake_BUILD_DEVELOPER_REFERENCE_HTML)
CMake_OPTIONAL_COMPONENT(cmake-developer-reference-html)
install(DIRECTORY "${CMakeDeveloperReference_BINARY_DIR}/developer-reference/html"
DESTINATION ${CMAKE_DOC_DIR}/developer-reference
${COMPONENT})
endif()
if(CMake_BUILD_DEVELOPER_REFERENCE_QTHELP)
CMake_OPTIONAL_COMPONENT(cmake-developer-reference-qthelp)
install(FILES "${CMakeDeveloperReference_BINARY_DIR}/developer-reference/CMakeDeveloperReference-${CMake_VERSION_MAJOR}${CMake_VERSION_MINOR}${CMake_VERSION_PATCH}.qch"
DESTINATION ${CMAKE_DOC_DIR}/developer-reference
${COMPONENT})
endif()
endif ()