py/mkrules.cmake: Add CMake support for compressed error messages.

Signed-off-by: Damien George <damien@micropython.org>
This commit is contained in:
Damien George
2025-03-13 15:18:48 +11:00
parent d6c673f28f
commit bb1489965f

View File

@@ -14,6 +14,9 @@ set(MICROPY_MODULEDEFS "${MICROPY_GENHDR_DIR}/moduledefs.h")
set(MICROPY_ROOT_POINTERS_SPLIT "${MICROPY_GENHDR_DIR}/root_pointers.split")
set(MICROPY_ROOT_POINTERS_COLLECTED "${MICROPY_GENHDR_DIR}/root_pointers.collected")
set(MICROPY_ROOT_POINTERS "${MICROPY_GENHDR_DIR}/root_pointers.h")
set(MICROPY_COMPRESSED_SPLIT "${MICROPY_GENHDR_DIR}/compressed.split")
set(MICROPY_COMPRESSED_COLLECTED "${MICROPY_GENHDR_DIR}/compressed.collected")
set(MICROPY_COMPRESSED_DATA "${MICROPY_GENHDR_DIR}/compressed.data.h")
if(NOT MICROPY_PREVIEW_VERSION_2)
set(MICROPY_PREVIEW_VERSION_2 0)
@@ -32,6 +35,13 @@ if(MICROPY_BOARD)
)
endif()
# Need to do this before extracting MICROPY_CPP_DEF below.
if(MICROPY_ROM_TEXT_COMPRESSION)
target_compile_definitions(${MICROPY_TARGET} PUBLIC
MICROPY_ROM_TEXT_COMPRESSION=\(1\)
)
endif()
# Need to do this before extracting MICROPY_CPP_DEF below. Rest of frozen
# manifest handling is at the end of this file.
if(MICROPY_FROZEN_MANIFEST)
@@ -84,6 +94,12 @@ target_sources(${MICROPY_TARGET} PRIVATE
${MICROPY_ROOT_POINTERS}
)
if(MICROPY_ROM_TEXT_COMPRESSION)
target_sources(${MICROPY_TARGET} PRIVATE
${MICROPY_COMPRESSED_DATA}
)
endif()
# Command to force the build of another command
# Generate mpversion.h
@@ -197,6 +213,32 @@ add_custom_command(
DEPENDS ${MICROPY_ROOT_POINTERS_COLLECTED} ${MICROPY_PY_DIR}/make_root_pointers.py
)
# Generate compressed.data.h
add_custom_command(
OUTPUT ${MICROPY_COMPRESSED_SPLIT}
COMMAND ${Python3_EXECUTABLE} ${MICROPY_PY_DIR}/makeqstrdefs.py split compress ${MICROPY_QSTRDEFS_LAST} ${MICROPY_GENHDR_DIR}/compress _
COMMAND touch ${MICROPY_COMPRESSED_SPLIT}
DEPENDS ${MICROPY_QSTRDEFS_LAST}
VERBATIM
COMMAND_EXPAND_LISTS
)
add_custom_command(
OUTPUT ${MICROPY_COMPRESSED_COLLECTED}
COMMAND ${Python3_EXECUTABLE} ${MICROPY_PY_DIR}/makeqstrdefs.py cat compress _ ${MICROPY_GENHDR_DIR}/compress ${MICROPY_COMPRESSED_COLLECTED}
BYPRODUCTS "${MICROPY_COMPRESSED_COLLECTED}.hash"
DEPENDS ${MICROPY_COMPRESSED_SPLIT}
VERBATIM
COMMAND_EXPAND_LISTS
)
add_custom_command(
OUTPUT ${MICROPY_COMPRESSED_DATA}
COMMAND ${Python3_EXECUTABLE} ${MICROPY_PY_DIR}/makecompresseddata.py ${MICROPY_COMPRESSED_COLLECTED} > ${MICROPY_COMPRESSED_DATA}
DEPENDS ${MICROPY_COMPRESSED_COLLECTED} ${MICROPY_PY_DIR}/makecompresseddata.py
)
# Build frozen code if enabled
if(MICROPY_FROZEN_MANIFEST)