blob: e95757c739db4e5882e6fc75ddc5fe2ffedd0512 [file] [log] [blame]
Gyorgy Szing74dae3c2018-09-27 17:00:46 +02001#-------------------------------------------------------------------------------
2# Copyright (c) 2019, Arm Limited. All rights reserved.
3#
4# SPDX-License-Identifier: BSD-3-Clause
5#
6#-------------------------------------------------------------------------------
7
8#Sphinx needs all document files to be under a single directory. This script
9#copies all document files to a temporary directory while keeping the original
10#directory tree (relative location of files) except "docs/index.rst" which is
11#moved to the top level of the new tree.
12#
13# i.e.:
14# <DST_DIR>
15# | All documents from <TFM_ROOT_DIR> plus <TFM_ROOT_DIR>/docs/index.rst
16# |
17# +---docs
18# | |
19# \- all documents from <TFM_ROOT_DIR>/docs except index.rst
20# |
21# +---lib
22# | |
23# | \- All document from <TFM_ROOT_DIR>/lib keeping reativle location
24# ...
25# |
26#
27#Usage:
Gyorgy Szingdb9783c2019-04-17 21:08:48 +020028# cmake -DDST_DIR=<path to destination> -DTFM_ROOT_DIR=<path to tf-m root> \
Gyorgy Szing5c873232019-05-10 23:28:14 +020029# -DBINARY_DIR=${CMAKE_BINARY_DIR} -P SphinxCopyDoc.cmake
Gyorgy Szing74dae3c2018-09-27 17:00:46 +020030
31#Check input parameters
Gyorgy Szing5c873232019-05-10 23:28:14 +020032foreach(_PARAM IN ITEMS TFM_ROOT_DIR DST_DIR BINARY_DIR)
Gyorgy Szing74dae3c2018-09-27 17:00:46 +020033 if (NOT DEFINED ${_PARAM})
34 message(FATAL_ERROR "Variable ${_PARAM} is undefined. Please add -D${_PARAM}=<...> when calling this script.")
35 endif()
36endforeach()
37
38message(STATUS "Creating document tree for Sphinx under ${DST_DIR}")
39
40#List all document files.
41file(GLOB_RECURSE _COPY_FILES
42 LIST_DIRECTORIES false
43 RELATIVE "${TFM_ROOT_DIR}"
44 "${TFM_ROOT_DIR}/*.md"
Gyorgy Szingdb9783c2019-04-17 21:08:48 +020045 "${TFM_ROOT_DIR}/*.rst"
Antonio de Angelisb9bba1a2019-05-08 10:28:22 +010046 "${TFM_ROOT_DIR}/*.png"
47 "${TFM_ROOT_DIR}/*.jpg"
Gyorgy Szingdb9783c2019-04-17 21:08:48 +020048 "${TFM_ROOT_DIR}/dco.txt")
Gyorgy Szing74dae3c2018-09-27 17:00:46 +020049
Gyorgy Szing5c873232019-05-10 23:28:14 +020050#Remove intermediate and final document build outputs.
51foreach(_PATH IN ITEMS BINARY_DIR DST_DIR)
52 file(RELATIVE_PATH _REL_DIR ${TFM_ROOT_DIR} ${${_PATH}})
53 list(FILTER _COPY_FILES EXCLUDE REGEX "${_REL_DIR}/.*")
54endforeach()
Gyorgy Szing74dae3c2018-09-27 17:00:46 +020055
56#Copy files with directory tree.
57foreach(_FILE ${_COPY_FILES})
58 get_filename_component(_DIR ${_FILE} DIRECTORY)
59 file(COPY ${_FILE} DESTINATION "${DST_DIR}/${_DIR}")
60endforeach()