mirror of
https://github.com/RGBCube/serenity
synced 2025-07-24 15:47:42 +00:00
Meta: Move invoke_generator to utils.cmake
This commit is contained in:
parent
d5f14b5ff9
commit
9ba386a7bb
2 changed files with 25 additions and 17 deletions
|
@ -87,23 +87,6 @@ function(extract_cldr_file source path)
|
||||||
endif()
|
endif()
|
||||||
endfunction()
|
endfunction()
|
||||||
|
|
||||||
function(invoke_generator name generator header implementation)
|
|
||||||
cmake_parse_arguments(invoke_generator "" "" "arguments" ${ARGN})
|
|
||||||
|
|
||||||
add_custom_command(
|
|
||||||
OUTPUT "${header}" "${implementation}"
|
|
||||||
COMMAND $<TARGET_FILE:${generator}> -h "${header}.tmp" -c "${implementation}.tmp" ${invoke_generator_arguments}
|
|
||||||
COMMAND "${CMAKE_COMMAND}" -E copy_if_different "${header}.tmp" "${header}"
|
|
||||||
COMMAND "${CMAKE_COMMAND}" -E copy_if_different "${implementation}.tmp" "${implementation}"
|
|
||||||
COMMAND "${CMAKE_COMMAND}" -E remove "${header}.tmp" "${implementation}.tmp"
|
|
||||||
VERBATIM
|
|
||||||
DEPENDS ${generator} "${UCD_VERSION_FILE}" "${CLDR_VERSION_FILE}"
|
|
||||||
)
|
|
||||||
|
|
||||||
add_custom_target(generate_${UNICODE_META_TARGET_PREFIX}${name} DEPENDS "${header}" "${implementation}")
|
|
||||||
add_dependencies(all_generated generate_${UNICODE_META_TARGET_PREFIX}${name})
|
|
||||||
endfunction()
|
|
||||||
|
|
||||||
if (ENABLE_UNICODE_DATABASE_DOWNLOAD)
|
if (ENABLE_UNICODE_DATABASE_DOWNLOAD)
|
||||||
remove_path_if_version_changed("${UCD_VERSION}" "${UCD_VERSION_FILE}" "${UCD_PATH}")
|
remove_path_if_version_changed("${UCD_VERSION}" "${UCD_VERSION_FILE}" "${UCD_PATH}")
|
||||||
remove_path_if_version_changed("${CLDR_VERSION}" "${CLDR_VERSION_FILE}" "${CLDR_PATH}")
|
remove_path_if_version_changed("${CLDR_VERSION}" "${CLDR_VERSION_FILE}" "${CLDR_PATH}")
|
||||||
|
@ -167,6 +150,8 @@ if (ENABLE_UNICODE_DATABASE_DOWNLOAD)
|
||||||
invoke_generator(
|
invoke_generator(
|
||||||
"UnicodeData"
|
"UnicodeData"
|
||||||
Lagom::GenerateUnicodeData
|
Lagom::GenerateUnicodeData
|
||||||
|
"${UCD_VERSION_FILE}"
|
||||||
|
"${UNICODE_META_TARGET_PREFIX}"
|
||||||
"${UNICODE_DATA_HEADER}"
|
"${UNICODE_DATA_HEADER}"
|
||||||
"${UNICODE_DATA_IMPLEMENTATION}"
|
"${UNICODE_DATA_IMPLEMENTATION}"
|
||||||
arguments -u "${UNICODE_DATA_PATH}" -s "${SPECIAL_CASING_PATH}" -g "${DERIVED_GENERAL_CATEGORY_PATH}" -p "${PROP_LIST_PATH}" -d "${DERIVED_CORE_PROP_PATH}" -b "${DERIVED_BINARY_PROP_PATH}" -a "${PROP_ALIAS_PATH}" -v "${PROP_VALUE_ALIAS_PATH}" -r "${SCRIPTS_PATH}" -x "${SCRIPT_EXTENSIONS_PATH}" -e "${EMOJI_DATA_PATH}" -m "${NAME_ALIAS_PATH}" -n "${NORM_PROPS_PATH}"
|
arguments -u "${UNICODE_DATA_PATH}" -s "${SPECIAL_CASING_PATH}" -g "${DERIVED_GENERAL_CATEGORY_PATH}" -p "${PROP_LIST_PATH}" -d "${DERIVED_CORE_PROP_PATH}" -b "${DERIVED_BINARY_PROP_PATH}" -a "${PROP_ALIAS_PATH}" -v "${PROP_VALUE_ALIAS_PATH}" -r "${SCRIPTS_PATH}" -x "${SCRIPT_EXTENSIONS_PATH}" -e "${EMOJI_DATA_PATH}" -m "${NAME_ALIAS_PATH}" -n "${NORM_PROPS_PATH}"
|
||||||
|
@ -174,6 +159,8 @@ if (ENABLE_UNICODE_DATABASE_DOWNLOAD)
|
||||||
invoke_generator(
|
invoke_generator(
|
||||||
"UnicodeDateTimeFormat"
|
"UnicodeDateTimeFormat"
|
||||||
Lagom::GenerateUnicodeDateTimeFormat
|
Lagom::GenerateUnicodeDateTimeFormat
|
||||||
|
"${CLDR_VERSION_FILE}"
|
||||||
|
"${UNICODE_META_TARGET_PREFIX}"
|
||||||
"${UNICODE_DATE_TIME_FORMAT_HEADER}"
|
"${UNICODE_DATE_TIME_FORMAT_HEADER}"
|
||||||
"${UNICODE_DATE_TIME_FORMAT_IMPLEMENTATION}"
|
"${UNICODE_DATE_TIME_FORMAT_IMPLEMENTATION}"
|
||||||
arguments -r "${CLDR_CORE_PATH}" -d "${CLDR_DATES_PATH}"
|
arguments -r "${CLDR_CORE_PATH}" -d "${CLDR_DATES_PATH}"
|
||||||
|
@ -181,6 +168,8 @@ if (ENABLE_UNICODE_DATABASE_DOWNLOAD)
|
||||||
invoke_generator(
|
invoke_generator(
|
||||||
"UnicodeLocale"
|
"UnicodeLocale"
|
||||||
Lagom::GenerateUnicodeLocale
|
Lagom::GenerateUnicodeLocale
|
||||||
|
"${CLDR_VERSION_FILE}"
|
||||||
|
"${UNICODE_META_TARGET_PREFIX}"
|
||||||
"${UNICODE_LOCALE_HEADER}"
|
"${UNICODE_LOCALE_HEADER}"
|
||||||
"${UNICODE_LOCALE_IMPLEMENTATION}"
|
"${UNICODE_LOCALE_IMPLEMENTATION}"
|
||||||
arguments -r "${CLDR_CORE_PATH}" -l "${CLDR_LOCALES_PATH}" -m "${CLDR_MISC_PATH}" -n "${CLDR_NUMBERS_PATH}" -d "${CLDR_DATES_PATH}"
|
arguments -r "${CLDR_CORE_PATH}" -l "${CLDR_LOCALES_PATH}" -m "${CLDR_MISC_PATH}" -n "${CLDR_NUMBERS_PATH}" -d "${CLDR_DATES_PATH}"
|
||||||
|
@ -188,6 +177,8 @@ if (ENABLE_UNICODE_DATABASE_DOWNLOAD)
|
||||||
invoke_generator(
|
invoke_generator(
|
||||||
"UnicodeNumberFormat"
|
"UnicodeNumberFormat"
|
||||||
Lagom::GenerateUnicodeNumberFormat
|
Lagom::GenerateUnicodeNumberFormat
|
||||||
|
"${CLDR_VERSION_FILE}"
|
||||||
|
"${UNICODE_META_TARGET_PREFIX}"
|
||||||
"${UNICODE_NUMBER_FORMAT_HEADER}"
|
"${UNICODE_NUMBER_FORMAT_HEADER}"
|
||||||
"${UNICODE_NUMBER_FORMAT_IMPLEMENTATION}"
|
"${UNICODE_NUMBER_FORMAT_IMPLEMENTATION}"
|
||||||
arguments -n "${CLDR_NUMBERS_PATH}" -u "${CLDR_UNITS_PATH}"
|
arguments -n "${CLDR_NUMBERS_PATH}" -u "${CLDR_UNITS_PATH}"
|
||||||
|
|
|
@ -175,3 +175,20 @@ function(remove_path_if_version_changed version version_file cache_path)
|
||||||
file(WRITE "${version_file}" "${version}")
|
file(WRITE "${version_file}" "${version}")
|
||||||
endif()
|
endif()
|
||||||
endfunction()
|
endfunction()
|
||||||
|
|
||||||
|
function(invoke_generator name generator version_file prefix header implementation)
|
||||||
|
cmake_parse_arguments(invoke_generator "" "" "arguments" ${ARGN})
|
||||||
|
|
||||||
|
add_custom_command(
|
||||||
|
OUTPUT "${header}" "${implementation}"
|
||||||
|
COMMAND $<TARGET_FILE:${generator}> -h "${header}.tmp" -c "${implementation}.tmp" ${invoke_generator_arguments}
|
||||||
|
COMMAND "${CMAKE_COMMAND}" -E copy_if_different "${header}.tmp" "${header}"
|
||||||
|
COMMAND "${CMAKE_COMMAND}" -E copy_if_different "${implementation}.tmp" "${implementation}"
|
||||||
|
COMMAND "${CMAKE_COMMAND}" -E remove "${header}.tmp" "${implementation}.tmp"
|
||||||
|
VERBATIM
|
||||||
|
DEPENDS ${generator} "${version_file}"
|
||||||
|
)
|
||||||
|
|
||||||
|
add_custom_target("generate_${prefix}${name}" DEPENDS "${header}" "${implementation}")
|
||||||
|
add_dependencies(all_generated "generate_${prefix}${name}")
|
||||||
|
endfunction()
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue