# Distributed under the OSI-approved BSD 3-Clause License.  See accompanying
# file Copyright.txt or https://cmake.org/licensing for details.


if (ACTION STREQUAL "CLEAN")
  # Collect current list of generated files
  file (GLOB files LIST_DIRECTORIES FALSE RELATIVE "${SUPPORT_FILES_WORKING_DIRECTORY}" "${SUPPORT_FILES_WORKING_DIRECTORY}/*")

  if (files)
    # clean-up the output directory
    ## compute full paths
    list (TRANSFORM files PREPEND "${SUPPORT_FILES_OUTPUT_DIRECTORY}/")
    ## remove generated files from the output directory
    file (REMOVE ${files})

    # clean-up working directory
    file (REMOVE_RECURSE "${SUPPORT_FILES_WORKING_DIRECTORY}")
  endif()

  file (MAKE_DIRECTORY "${SUPPORT_FILES_WORKING_DIRECTORY}")
endif()

if (ACTION STREQUAL "COPY")
  # Collect current list of generated files
  file (GLOB files LIST_DIRECTORIES FALSE "${SUPPORT_FILES_WORKING_DIRECTORY}/*")

  if (files)
    # copy files to the output directory
    file (COPY ${files} DESTINATION "${SUPPORT_FILES_OUTPUT_DIRECTORY}")
  endif()
endif()
