From ead30c26e54006f76d6dbcdd452f09e0eb18a2d7 Mon Sep 17 00:00:00 2001 From: Timothy Flynn Date: Wed, 15 Sep 2021 08:46:56 -0400 Subject: [PATCH] LibUnicode: Functionalize downloading of UCD data files --- Meta/CMake/unicode_data.cmake | 68 +++++++++++------------------------ 1 file changed, 20 insertions(+), 48 deletions(-) diff --git a/Meta/CMake/unicode_data.cmake b/Meta/CMake/unicode_data.cmake index 28cc816a46..f963ff8b05 100644 --- a/Meta/CMake/unicode_data.cmake +++ b/Meta/CMake/unicode_data.cmake @@ -55,55 +55,27 @@ set(CLDR_MISC_PATH "${LOCALE_DATA_CACHE_LOCATION}/${CLDR_MISC_SOURCE}") set(CLDR_NUMBERS_SOURCE cldr-numbers-modern) set(CLDR_NUMBERS_PATH "${LOCALE_DATA_CACHE_LOCATION}/${CLDR_NUMBERS_SOURCE}") +function(download_ucd_file url path) + if (NOT EXISTS "${path}") + get_filename_component(file "${path}" NAME) + message(STATUS "Downloading UCD ${file} from ${url}...") + file(DOWNLOAD "${url}" "${path}" INACTIVITY_TIMEOUT 10) + endif() +endfunction() + if (ENABLE_UNICODE_DATABASE_DOWNLOAD) - if (NOT EXISTS ${UNICODE_DATA_PATH}) - message(STATUS "Downloading UCD UnicodeData.txt from ${UNICODE_DATA_URL}...") - file(DOWNLOAD ${UNICODE_DATA_URL} ${UNICODE_DATA_PATH} INACTIVITY_TIMEOUT 10) - endif() - if (NOT EXISTS ${SPECIAL_CASING_PATH}) - message(STATUS "Downloading UCD SpecialCasing.txt from ${SPECIAL_CASING_URL}...") - file(DOWNLOAD ${SPECIAL_CASING_URL} ${SPECIAL_CASING_PATH} INACTIVITY_TIMEOUT 10) - endif() - if (NOT EXISTS ${DERIVED_GENERAL_CATEGORY_PATH}) - message(STATUS "Downloading UCD DerivedGeneralCategory.txt from ${DERIVED_GENERAL_CATEGORY_URL}...") - file(DOWNLOAD ${DERIVED_GENERAL_CATEGORY_URL} ${DERIVED_GENERAL_CATEGORY_PATH} INACTIVITY_TIMEOUT 10) - endif() - if (NOT EXISTS ${PROP_LIST_PATH}) - message(STATUS "Downloading UCD PropList.txt from ${PROP_LIST_URL}...") - file(DOWNLOAD ${PROP_LIST_URL} ${PROP_LIST_PATH} INACTIVITY_TIMEOUT 10) - endif() - if (NOT EXISTS ${DERIVED_CORE_PROP_PATH}) - message(STATUS "Downloading UCD DerivedCoreProperties.txt from ${DERIVED_CORE_PROP_URL}...") - file(DOWNLOAD ${DERIVED_CORE_PROP_URL} ${DERIVED_CORE_PROP_PATH} INACTIVITY_TIMEOUT 10) - endif() - if (NOT EXISTS ${DERIVED_BINARY_PROP_PATH}) - message(STATUS "Downloading UCD DerivedBinaryProperties.txt from ${DERIVED_BINARY_PROP_URL}...") - file(DOWNLOAD ${DERIVED_BINARY_PROP_URL} ${DERIVED_BINARY_PROP_PATH} INACTIVITY_TIMEOUT 10) - endif() - if (NOT EXISTS ${PROP_ALIAS_PATH}) - message(STATUS "Downloading UCD PropertyAliases.txt from ${PROP_ALIAS_URL}...") - file(DOWNLOAD ${PROP_ALIAS_URL} ${PROP_ALIAS_PATH} INACTIVITY_TIMEOUT 10) - endif() - if (NOT EXISTS ${PROP_VALUE_ALIAS_PATH}) - message(STATUS "Downloading UCD PropertyValueAliases.txt from ${PROP_VALUE_ALIAS_URL}...") - file(DOWNLOAD ${PROP_VALUE_ALIAS_URL} ${PROP_VALUE_ALIAS_PATH} INACTIVITY_TIMEOUT 10) - endif() - if (NOT EXISTS ${SCRIPTS_PATH}) - message(STATUS "Downloading UCD Scripts.txt from ${SCRIPTS_URL}...") - file(DOWNLOAD ${SCRIPTS_URL} ${SCRIPTS_PATH} INACTIVITY_TIMEOUT 10) - endif() - if (NOT EXISTS ${SCRIPT_EXTENSIONS_PATH}) - message(STATUS "Downloading UCD ScriptExtensions.txt from ${SCRIPT_EXTENSIONS_URL}...") - file(DOWNLOAD ${SCRIPT_EXTENSIONS_URL} ${SCRIPT_EXTENSIONS_PATH} INACTIVITY_TIMEOUT 10) - endif() - if (NOT EXISTS ${EMOJI_DATA_PATH}) - message(STATUS "Downloading UCD emoji-data.txt from ${EMOJI_DATA_URL}...") - file(DOWNLOAD ${EMOJI_DATA_URL} ${EMOJI_DATA_PATH} INACTIVITY_TIMEOUT 10) - endif() - if (NOT EXISTS ${NORM_PROPS_PATH}) - message(STATUS "Downloading UCD DerivedNormalizationProps.txt from ${NORM_PROPS_URL}...") - file(DOWNLOAD ${NORM_PROPS_URL} ${NORM_PROPS_PATH} INACTIVITY_TIMEOUT 10) - endif() + download_ucd_file("${UNICODE_DATA_URL}" "${UNICODE_DATA_PATH}") + download_ucd_file("${SPECIAL_CASING_URL}" "${SPECIAL_CASING_PATH}") + download_ucd_file("${DERIVED_GENERAL_CATEGORY_URL}" "${DERIVED_GENERAL_CATEGORY_PATH}") + download_ucd_file("${PROP_LIST_URL}" "${PROP_LIST_PATH}") + download_ucd_file("${DERIVED_CORE_PROP_URL}" "${DERIVED_CORE_PROP_PATH}") + download_ucd_file("${DERIVED_BINARY_PROP_URL}" "${DERIVED_BINARY_PROP_PATH}") + download_ucd_file("${PROP_ALIAS_URL}" "${PROP_ALIAS_PATH}") + download_ucd_file("${PROP_VALUE_ALIAS_URL}" "${PROP_VALUE_ALIAS_PATH}") + download_ucd_file("${SCRIPTS_URL}" "${SCRIPTS_PATH}") + download_ucd_file("${SCRIPT_EXTENSIONS_URL}" "${SCRIPT_EXTENSIONS_PATH}") + download_ucd_file("${EMOJI_DATA_URL}" "${EMOJI_DATA_PATH}") + download_ucd_file("${NORM_PROPS_URL}" "${NORM_PROPS_PATH}") if (NOT EXISTS ${CLDR_ZIP_PATH}) message(STATUS "Downloading CLDR database from ${CLDR_ZIP_URL}...")