Gyorgy Szing | 74dae3c | 2018-09-27 17:00:46 +0200 | [diff] [blame] | 1 | #------------------------------------------------------------------------------- |
| 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 Szing | db9783c | 2019-04-17 21:08:48 +0200 | [diff] [blame] | 28 | # cmake -DDST_DIR=<path to destination> -DTFM_ROOT_DIR=<path to tf-m root> \ |
Galanakis, Minos | 0c1ad78 | 2019-11-08 11:28:40 +0000 | [diff] [blame] | 29 | # -DBINARY_DIR=${CMAKE_BINARY_DIR} |
| 30 | # -DMASTER_IDX=<path to master index.rst> -P SphinxCopyDoc.cmake |
Gyorgy Szing | 74dae3c | 2018-09-27 17:00:46 +0200 | [diff] [blame] | 31 | |
| 32 | #Check input parameters |
Galanakis, Minos | 0c1ad78 | 2019-11-08 11:28:40 +0000 | [diff] [blame] | 33 | foreach(_PARAM IN ITEMS TFM_ROOT_DIR DST_DIR BINARY_DIR MASTER_IDX) |
Gyorgy Szing | 74dae3c | 2018-09-27 17:00:46 +0200 | [diff] [blame] | 34 | if (NOT DEFINED ${_PARAM}) |
| 35 | message(FATAL_ERROR "Variable ${_PARAM} is undefined. Please add -D${_PARAM}=<...> when calling this script.") |
| 36 | endif() |
| 37 | endforeach() |
| 38 | |
| 39 | message(STATUS "Creating document tree for Sphinx under ${DST_DIR}") |
| 40 | |
| 41 | #List all document files. |
| 42 | file(GLOB_RECURSE _COPY_FILES |
| 43 | LIST_DIRECTORIES false |
| 44 | RELATIVE "${TFM_ROOT_DIR}" |
| 45 | "${TFM_ROOT_DIR}/*.md" |
Gyorgy Szing | db9783c | 2019-04-17 21:08:48 +0200 | [diff] [blame] | 46 | "${TFM_ROOT_DIR}/*.rst" |
Antonio de Angelis | b9bba1a | 2019-05-08 10:28:22 +0100 | [diff] [blame] | 47 | "${TFM_ROOT_DIR}/*.png" |
| 48 | "${TFM_ROOT_DIR}/*.jpg" |
Gyorgy Szing | db9783c | 2019-04-17 21:08:48 +0200 | [diff] [blame] | 49 | "${TFM_ROOT_DIR}/dco.txt") |
Gyorgy Szing | 74dae3c | 2018-09-27 17:00:46 +0200 | [diff] [blame] | 50 | |
Gyorgy Szing | 5c87323 | 2019-05-10 23:28:14 +0200 | [diff] [blame] | 51 | #Remove intermediate and final document build outputs. |
| 52 | foreach(_PATH IN ITEMS BINARY_DIR DST_DIR) |
| 53 | file(RELATIVE_PATH _REL_DIR ${TFM_ROOT_DIR} ${${_PATH}}) |
| 54 | list(FILTER _COPY_FILES EXCLUDE REGEX "${_REL_DIR}/.*") |
| 55 | endforeach() |
Gyorgy Szing | 74dae3c | 2018-09-27 17:00:46 +0200 | [diff] [blame] | 56 | |
| 57 | #Copy files with directory tree. |
| 58 | foreach(_FILE ${_COPY_FILES}) |
| 59 | get_filename_component(_DIR ${_FILE} DIRECTORY) |
Galanakis, Minos | 0c1ad78 | 2019-11-08 11:28:40 +0000 | [diff] [blame] | 60 | if (_FILE STREQUAL MASTER_IDX) |
| 61 | file(COPY ${_FILE} DESTINATION "${DST_DIR}") |
| 62 | else() |
| 63 | file(COPY ${_FILE} DESTINATION "${DST_DIR}/${_DIR}") |
| 64 | endif() |
Gyorgy Szing | 74dae3c | 2018-09-27 17:00:46 +0200 | [diff] [blame] | 65 | endforeach() |