# Inputs (via -D): # ELF_FILE - path to source .elf # OUT_FILE - path to output .cpp # VAR_NAME - C symbol base name (kernel name) file(READ "${ELF_FILE}" HEX HEX) string(LENGTH "${HEX}" HEX_LEN) math(EXPR SIZE "${HEX_LEN} / 2") string(REGEX REPLACE "(..)" "0x\\1," BYTES "${HEX}") file(WRITE "${OUT_FILE}" "// Auto-generated by embed_one_kernel.cmake. Do not edit.\n" "#include \n" "unsigned char ${VAR_NAME}_data[${SIZE}] = { ${BYTES} };\n" "extern const uint64_t ${VAR_NAME}_len = ${SIZE};\n")