1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102
|
#
# Copyright 2009-2023 ECMWF.
#
# This software is licensed under the terms of the Apache Licence version 2.0
# which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
# In applying this licence, ECMWF does not waive the privileges and immunities
# granted to it by virtue of its status as an intergovernmental organisation
# nor does it submit to any jurisdiction.
#
#
# Setup Sphinx
#
ecbuild_info("Locating Sphinx")
find_package(Sphinx REQUIRED)
ecbuild_info("Sphinx found at ${SPHINX_EXECUTABLE}")
#
# (Re-)generate ecFlow CLI documentation
#
file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/client_api/api)
add_custom_command(
OUTPUT generate_ecflow_client_docs
COMMAND
${CMAKE_COMMAND} -E rm -rf ${CMAKE_CURRENT_SOURCE_DIR}/client_api/api/*
COMMAND
${CMAKE_COMMAND} -E env "PATH=${CMAKE_BINARY_DIR}/bin:$ENV{PATH}"
${CMAKE_CURRENT_SOURCE_DIR}/client_api/build.py
COMMAND
${CMAKE_COMMAND} -E copy_directory
${CMAKE_CURRENT_BINARY_DIR}/client_api/api
${CMAKE_CURRENT_SOURCE_DIR}/client_api/api
COMMAND
${CMAKE_COMMAND} -E copy
${CMAKE_CURRENT_BINARY_DIR}/client_api/index.rst
${CMAKE_CURRENT_SOURCE_DIR}/client_api
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/client_api
USES_TERMINAL
DEPENDS ecflow_client
)
add_custom_target(ecflow_client_docs DEPENDS generate_ecflow_client_docs)
#
# (Re-)generate ecFlow Python documentation
#
file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/build_python_api/rst)
add_custom_command(
OUTPUT generate_ecflow_python_docs
COMMAND
${CMAKE_COMMAND} -E rm -rf ${CMAKE_CURRENT_SOURCE_DIR}/python_api/*
COMMAND
${CMAKE_COMMAND} -E rm -rf ${CMAKE_CURRENT_BINARY_DIR}/build_python_api/rst/*
COMMAND
${CMAKE_COMMAND} -E rm -rf ${CMAKE_CURRENT_BINARY_DIR}/build_python_api/_build
COMMAND
${CMAKE_COMMAND} -E env "PYTHONPATH=${CMAKE_BINARY_DIR}/libs/pyext/python3"
${SPHINX_EXECUTABLE} -M html
${CMAKE_CURRENT_SOURCE_DIR}/build_python_api
${CMAKE_CURRENT_BINARY_DIR}/build_python_api/_build
COMMAND
${CMAKE_COMMAND} -E copy
${CMAKE_CURRENT_SOURCE_DIR}/build_python_api/glossary.yaml
${CMAKE_CURRENT_SOURCE_DIR}/build_python_api/categories.yaml
${CMAKE_CURRENT_BINARY_DIR}/build_python_api
COMMAND
${CMAKE_CURRENT_SOURCE_DIR}/build_python_api/fix_rst.py
COMMAND
${CMAKE_CURRENT_SOURCE_DIR}/build_python_api/build_toc.py
COMMAND
${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_BINARY_DIR}/build_python_api/python_api.rst ${CMAKE_CURRENT_SOURCE_DIR}/python_api
COMMAND
${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_BINARY_DIR}/build_python_api/rst/* ${CMAKE_CURRENT_SOURCE_DIR}/python_api
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/build_python_api
USES_TERMINAL
DEPENDS ecflow3
)
add_custom_target(ecflow_python_docs DEPENDS generate_ecflow_python_docs)
#
# Build ecFlow documentation
#
add_custom_command(
OUTPUT generate_ecflow_docs
COMMAND
${CMAKE_COMMAND} -E env "PYTHONPATH=${CMAKE_BINARY_DIR}/libs/pyext/python3"
${SPHINX_EXECUTABLE} -M html
${CMAKE_CURRENT_SOURCE_DIR}
${CMAKE_CURRENT_BINARY_DIR}/_build
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
USES_TERMINAL
DEPENDS
ecflow_client_docs
ecflow_python_docs
)
add_custom_target(ecflow_docs DEPENDS generate_ecflow_docs)
|