Spaces:
Running on Zero
Running on Zero
| # 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 <cstdint>\n" | |
| "unsigned char ${VAR_NAME}_data[${SIZE}] = { ${BYTES} };\n" | |
| "extern const uint64_t ${VAR_NAME}_len = ${SIZE};\n") | |