Blame cmake/Modules/GetFilesList.cmake

Packit Service 31306d
#
Packit Service 31306d
#  Copyright (c) 2018 Anderson Toshiyuki Sasaki <ansasaki@redhat.com>
Packit Service 31306d
#
Packit Service 31306d
#  Redistribution and use is allowed according to the terms of the New
Packit Service 31306d
#  BSD license.
Packit Service 31306d
#  For details see the accompanying COPYING-CMAKE-SCRIPTS file.
Packit Service 31306d
#
Packit Service 31306d
Packit Service 31306d
#.rst:
Packit Service 31306d
# GetFilesList
Packit Service 31306d
# ------------
Packit Service 31306d
#
Packit Service 31306d
# This is a helper script for FindABImap.cmake.
Packit Service 31306d
#
Packit Service 31306d
# Search in the provided directories for files matching the provided pattern.
Packit Service 31306d
# The list of files is then written to the output file.
Packit Service 31306d
#
Packit Service 31306d
# Expected defined variables
Packit Service 31306d
# --------------------------
Packit Service 31306d
#
Packit Service 31306d
# ``DIRECTORIES``:
Packit Service 31306d
#   Required, expects a list of directories paths.
Packit Service 31306d
#
Packit Service 31306d
# ``FILES_PATTERNS``:
Packit Service 31306d
#   Required, expects a list of patterns to be used to search files
Packit Service 31306d
#
Packit Service 31306d
# ``OUTPUT_PATH``:
Packit Service 31306d
#   Required, expects the output file path.
Packit Service 31306d
Packit Service 31306d
if (NOT DEFINED DIRECTORIES)
Packit Service 31306d
    message(SEND_ERROR "DIRECTORIES not defined")
Packit Service 31306d
endif()
Packit Service 31306d
Packit Service 31306d
if (NOT DEFINED FILES_PATTERNS)
Packit Service 31306d
    message(SEND_ERROR "FILES_PATTERNS not defined")
Packit Service 31306d
endif()
Packit Service 31306d
Packit Service 31306d
if (NOT DEFINED OUTPUT_PATH)
Packit Service 31306d
    message(SEND_ERROR "OUTPUT_PATH not defined")
Packit Service 31306d
endif()
Packit Service 31306d
Packit Service 31306d
string(REPLACE " " ";" DIRECTORIES_LIST "${DIRECTORIES}")
Packit Service 31306d
string(REPLACE " " ";" FILES_PATTERNS_LIST "${FILES_PATTERNS}")
Packit Service 31306d
Packit Service 31306d
# Create the list of expressions for the files
Packit Service 31306d
set(glob_expressions)
Packit Service 31306d
foreach(dir ${DIRECTORIES_LIST})
Packit Service 31306d
    foreach(exp ${FILES_PATTERNS_LIST})
Packit Service 31306d
        list(APPEND glob_expressions
Packit Service 31306d
          "${dir}/${exp}"
Packit Service 31306d
        )
Packit Service 31306d
    endforeach()
Packit Service 31306d
endforeach()
Packit Service 31306d
Packit Service 31306d
# Create the list of files
Packit Service 31306d
file(GLOB files ${glob_expressions})
Packit Service 31306d
Packit Service 31306d
# Write to the output
Packit Service 31306d
file(WRITE ${OUTPUT_PATH} "${files}")