93 lines
3.3 KiB
CMake
93 lines
3.3 KiB
CMake
#-------------------------------------------------------------------------------
|
|
# Copyright (c) 2019, Arm Limited. All rights reserved.
|
|
#
|
|
# SPDX-License-Identifier: BSD-3-Clause
|
|
#
|
|
#-------------------------------------------------------------------------------
|
|
|
|
#FindSphinx
|
|
#-----------
|
|
#Sphinx is a document generation tool written in Python.
|
|
#See http://www.sphinx-doc.org/en/master/
|
|
#
|
|
#This module checks availability of the Sphinx document generator
|
|
#(sphinx-build) and it's dependences (Python).
|
|
#Sphinx is distributed as pip package or on Linux as a distribution specific
|
|
#package (i.e. python-sphinx for Ubuntu). Independent of the distribution
|
|
#method this module expects sphix-build to be either available on the PATH,
|
|
#or to be located in a host OS specific standard location.
|
|
#
|
|
#This modules has the following parameters:
|
|
# SPHINX_PATH = variable specifying where sphinx-build can be found.
|
|
# If it is not defined the environment variable with
|
|
# the same name is used. If that is also undefined,
|
|
# then OS specific standard locations will be
|
|
# searched.
|
|
#
|
|
# This modules defines the following variables:
|
|
# SPHINX_VERSION = The version reported by "sphinx-build --version"
|
|
# SPHINX_FOUND = True is sphinx-build was found and executed fine
|
|
#
|
|
|
|
Include(CMakeParseArguments)
|
|
|
|
#Sphinx needs Python.
|
|
find_package(PythonInterp 3)
|
|
if (NOT PYTHONINTERP_FOUND)
|
|
message(STATUS "Can not find Python3.x interpreter. Pyhton3 must be installed and available on the PATH.")
|
|
message(STATUS "Sphinx documentation targets will not be created.")
|
|
return()
|
|
endif()
|
|
|
|
if (NOT DEFINED SPHINX_PATH)
|
|
if (DEFINED $ENV{SPHINX_PATH})
|
|
set(SPHINX_PATH $ENV{SPHINX_PATH})
|
|
endif()
|
|
endif()
|
|
|
|
|
|
if (DEFINED SPHINX_PATH)
|
|
#Find the Sphinx executable. Search only at SPHINX_PATH.
|
|
find_program(SPHINX_EXECUTABLE
|
|
NAMES sphinx-build
|
|
DOC "Sphinx Documentation Builder (sphinx-doc.org)"
|
|
PATH ${SPHINX_PATH}
|
|
NO_DEFAULT_PATH
|
|
NO_CMAKE_ENVIRONMENT_PATH
|
|
NO_CMAKE_PATH
|
|
NO_SYSTEM_ENVIRONMENT_PATH
|
|
NO_CMAKE_SYSTEM_PATH
|
|
NO_CMAKE_FIND_ROOT_PATH
|
|
)
|
|
if (SPHINX_EXECUTABLE-NOTFOUND)
|
|
message(STATUS "Failed to find sphinx-build at ${SPHINX_PATH}.")
|
|
message(STATUS "Sphinx documentation targets will not be created.")
|
|
return()
|
|
endif()
|
|
else()
|
|
#Find the Sphinx executable. Search OS specific default locations.
|
|
find_program(SPHINX_EXECUTABLE
|
|
NAMES sphinx-build
|
|
DOC "Sphinx Documentation Builder (sphinx-doc.org)"
|
|
)
|
|
|
|
if (SPHINX_EXECUTABLE-NOTFOUND)
|
|
message(STATUS "Failed to find sphinx-build at OS specific default locations.")
|
|
message(STATUS "Sphinx documentation targets will not be created.")
|
|
return()
|
|
endif()
|
|
endif()
|
|
|
|
#Get Sphinx version
|
|
execute_process(COMMAND "${SPHINX_EXECUTABLE}" "--version" OUTPUT_VARIABLE _SPHINX_VERSION OUTPUT_STRIP_TRAILING_WHITESPACE ERROR_QUIET)
|
|
#Parse output
|
|
if(_SPHINX_VERSION)
|
|
if(_SPHINX_VERSION MATCHES ".*sphinx-build[^0-9.]*([0-9.]+).*")
|
|
string(REGEX REPLACE ".*sphinx-build ([0-9.]+).*" "\\1" SPHINX_VERSION "${_SPHINX_VERSION}")
|
|
endif()
|
|
endif()
|
|
|
|
#Set "standard" find module return values
|
|
include(FindPackageHandleStandardArgs)
|
|
find_package_handle_standard_args(Sphinx REQUIRED_VARS SPHINX_EXECUTABLE SPHINX_VERSION VERSION_VAR SPHINX_VERSION)
|