cmake_minimum_required(VERSION 3.16.3..3.30.0 FATAL_ERROR)

project(SimpleITKSphinx-Data LANGUAGES NONE)

if(NOT CMAKE_PROJECT_NAME STREQUAL "SimpleITK")
  set(SimpleITK_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../..")
  list(INSERT CMAKE_MODULE_PATH 0 "${SimpleITK_SOURCE_DIR}/CMake")
endif()

# Use ExternalData module to either download data to get from local
# data store.
include(sitkExternalData)

set(_target "SimpleITKSphinx-Data")
set(_output_path "${CMAKE_CURRENT_SOURCE_DIR}/")

set(_algo "sha512")
file(
  GLOB_RECURSE image_links
  RELATIVE "${CMAKE_CURRENT_SOURCE_DIR}"
  "${CMAKE_CURRENT_SOURCE_DIR}/*.${_algo}"
)

foreach(link ${image_links})
  string(REGEX REPLACE "\\.${_algo}$" "" link ${link})
  ExternalData_Expand_Arguments(
    "${_target}"
    image_location
    DATA{${link}}
  )
  set(
    COPY_DATA_COMMAND
    ${COPY_DATA_COMMAND}
    COMMAND
    ${CMAKE_COMMAND}
    -E
    copy
    ${image_location}
    "${_output_path}"
  )
endforeach()

ExternalData_Add_Target("${_target}")

add_custom_command(TARGET "${_target}" POST_BUILD ${COPY_DATA_COMMAND})
