cmake_minimum_required(VERSION 3.20 FATAL_ERROR)
project(
	generate-codes
	LANGUAGES NONE # Python
)
include(../Python.cmake)

add_python_target(${PROJECT_NAME}
	SCRIPT src/gpcf.py
	MODULES
		src/iso4217.py
		src/templates.py
	REQUIREMENTS
	CREATE_COMMAND
)

add_custom_command(
	OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/currencies.xml"
	COMMAND ${CMAKE_COMMAND} -E echo "Downloading currency list..."
	COMMAND ${CMAKE_COMMAND} 
		-DDOWNLOAD_URL="https://www.six-group.com/dam/download/financial-information/data-center/iso-currrency/lists/list-one.xml"
		-DDOWNLOAD_FILE="${CMAKE_CURRENT_BINARY_DIR}/currencies.xml"
		-P "${CMAKE_CURRENT_SOURCE_DIR}/DownloadCurrencies.cmake"
	COMMENT "Downloading ISO 4217 currency list..."
)
add_custom_command(
	OUTPUT "${PROJECT_SOURCE_DIR}/src/external/pecunia/Currency.hpp"
		"${PROJECT_SOURCE_DIR}/src/external/pecunia/Currency.cpp"
	COMMAND ${${PROJECT_NAME}_python_cmd} --codes "${CMAKE_CURRENT_BINARY_DIR}/currencies.xml" --symbols "${CMAKE_CURRENT_SOURCE_DIR}/CurrencySymbols.csv"
	DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/currencies.xml"
		"${CMAKE_CURRENT_SOURCE_DIR}/CurrencySymbols.csv"
		${${PROJECT_NAME}_python_cmd}
	COMMENT "Updating the ISO 4217 currencies..."
)
add_custom_target(run-update-currencies
	DEPENDS "${PROJECT_SOURCE_DIR}/src/external/pecunia/Currency.hpp"
		"${PROJECT_SOURCE_DIR}/src/external/pecunia/Currency.cpp"
	COMMENT "Updated the ISO 4217 currencies successfully."
)
