Files
micro-jrpg/tools/embed/embed.cmake

21 lines
962 B
CMake

# Copyright (c) 2025 Dominic Masters
#
# This software is released under the MIT License.
# https://opensource.org/licenses/MIT
# We are passed -DINPUT_FILE (absolute) and -DOUTPUT_FILE (absolute) and -DC_VAR_NAME (name of the C variable to hold the data)
file(READ "${INPUT_FILE}" RAW_DATA HEX)
string(LENGTH "${RAW_DATA}" DATA_LENGTH)
set(OUTPUT_CONTENT "/* This file is auto-generated. Do not edit directly. */\n")
set(OUTPUT_CONTENT "${OUTPUT_CONTENT}#pragma once\n#include \"microrpg.h\"\n\n")
set(OUTPUT_CONTENT "${OUTPUT_CONTENT}static const uint8_t ${C_VAR_NAME}_DATA[] = {\n ")
set(INDEX 0)
while(INDEX LESS DATA_LENGTH)
string(SUBSTRING "${RAW_DATA}" ${INDEX} 2 BYTE)
set(OUTPUT_CONTENT "${OUTPUT_CONTENT}0x${BYTE}, ")
math(EXPR INDEX "${INDEX} + 2")
endwhile()
set(OUTPUT_CONTENT "${OUTPUT_CONTENT}\n};\n\n")
set(OUTPUT_CONTENT "${OUTPUT_CONTENT}#define ${C_VAR_NAME}_SIZE ${DATA_LENGTH}u\n")
file(WRITE "${OUTPUT_FILE}" "${OUTPUT_CONTENT}")