mirror of
https://github.com/RGBCube/serenity
synced 2025-05-31 07:08:10 +00:00
Meta: Replace Bash script for generating emoji.txt with C++ generator
We currently have two build-time parsers for the UCD's emoji-test.txt file. To prepare for future changes, this removes the Bash parser and moves its functionality to the newer C++ parser.
This commit is contained in:
parent
b5a876e606
commit
bd592480e4
3 changed files with 101 additions and 94 deletions
|
@ -61,7 +61,6 @@ set(SENTENCE_BREAK_PROP_PATH "${UCD_PATH}/${SENTENCE_BREAK_PROP_SOURCE}")
|
|||
string(REGEX REPLACE "([0-9]+\\.[0-9]+)\\.[0-9]+" "\\1" EMOJI_VERSION "${UCD_VERSION}")
|
||||
set(EMOJI_TEST_URL "https://unicode.org/Public/emoji/${EMOJI_VERSION}/emoji-test.txt")
|
||||
set(EMOJI_TEST_PATH "${UCD_PATH}/emoji-test.txt")
|
||||
set(EMOJI_GENERATOR_PATH "${SerenityOS_SOURCE_DIR}/Meta/generate-emoji-txt.sh")
|
||||
set(EMOJI_RES_PATH "${SerenityOS_SOURCE_DIR}/Base/res/emoji")
|
||||
set(EMOJI_SERENITY_PATH "${SerenityOS_SOURCE_DIR}/Base/home/anon/Documents/emoji-serenity.txt")
|
||||
set(EMOJI_INSTALL_PATH "${CMAKE_BINARY_DIR}/Root/home/anon/Documents/emoji.txt")
|
||||
|
@ -96,6 +95,10 @@ if (ENABLE_UNICODE_DATABASE_DOWNLOAD)
|
|||
set(EMOJI_DATA_HEADER EmojiData.h)
|
||||
set(EMOJI_DATA_IMPLEMENTATION EmojiData.cpp)
|
||||
|
||||
if (SERENITYOS)
|
||||
set(EMOJI_INSTALL_ARG -i "${EMOJI_INSTALL_PATH}")
|
||||
endif()
|
||||
|
||||
invoke_generator(
|
||||
"UnicodeData"
|
||||
Lagom::GenerateUnicodeData
|
||||
|
@ -110,22 +113,14 @@ if (ENABLE_UNICODE_DATABASE_DOWNLOAD)
|
|||
"${UCD_VERSION_FILE}"
|
||||
"${EMOJI_DATA_HEADER}"
|
||||
"${EMOJI_DATA_IMPLEMENTATION}"
|
||||
arguments -e "${EMOJI_TEST_PATH}" -s "${EMOJI_SERENITY_PATH}"
|
||||
)
|
||||
arguments "${EMOJI_INSTALL_ARG}" -e "${EMOJI_TEST_PATH}" -s "${EMOJI_SERENITY_PATH}" -r "${EMOJI_RES_PATH}"
|
||||
|
||||
if (SERENITYOS)
|
||||
add_custom_command(
|
||||
OUTPUT "${EMOJI_INSTALL_PATH}"
|
||||
COMMAND "${EMOJI_GENERATOR_PATH}" "${EMOJI_TEST_PATH}" "${EMOJI_RES_PATH}" "${EMOJI_INSTALL_PATH}"
|
||||
# This will make this command only run when the modified time of the directory changes,
|
||||
# which only happens if files within it are added or deleted, but not when a file is modified.
|
||||
# This is fine for this use-case, because the contents of a file changing should not affect
|
||||
# the generated emoji.txt file.
|
||||
DEPENDS "${EMOJI_GENERATOR_PATH}" "${EMOJI_RES_PATH}" "${EMOJI_TEST_PATH}"
|
||||
USES_TERMINAL
|
||||
)
|
||||
add_custom_target(generate_emoji_txt ALL DEPENDS "${EMOJI_INSTALL_PATH}")
|
||||
endif()
|
||||
# This will make this command only run when the modified time of the directory changes,
|
||||
# which only happens if files within it are added or deleted, but not when a file is modified.
|
||||
# This is fine for this use-case, because the contents of a file changing should not affect
|
||||
# the generated emoji.txt file.
|
||||
dependencies "${EMOJI_RES_PATH}" "${EMOJI_SERENITY_PATH}"
|
||||
)
|
||||
|
||||
set(UNICODE_DATA_SOURCES
|
||||
${UNICODE_DATA_HEADER}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue