21 lines
		
	
	
		
			962 B
		
	
	
	
		
			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}") |