blob: 6a80f49bdc9a9915d2f12b7518a01fd9538bd832 [file] [log] [blame]
file(READ ${BINARY_FILE} FILE_CONTENT HEX)
string(LENGTH ${FILE_CONTENT} FILE_CONTENT_LENGTH)
math(EXPR BIN_LENGTH "${FILE_CONTENT_LENGTH} / 2")
math(EXPR offset "0")
while(FILE_CONTENT_LENGTH GREATER 0)
if(FILE_CONTENT_LENGTH GREATER 32)
math(EXPR length "32")
else()
math(EXPR length "${FILE_CONTENT_LENGTH}")
endif()
string(SUBSTRING ${FILE_CONTENT} ${offset} ${length} line)
set(lines "${lines}\n${line}")
math(EXPR FILE_CONTENT_LENGTH "${FILE_CONTENT_LENGTH} - ${length}")
math(EXPR offset "${offset} + ${length}")
endwhile()
set(FILE_CONTENT "${lines}")
# adds '0x' prefix and comma suffix before and after every byte respectively
string(REGEX REPLACE "([0-9a-f][0-9a-f])" "0x\\1, " FILE_CONTENT ${FILE_CONTENT})
string(MAKE_C_IDENTIFIER "${OUTPUT_NAME}" C_NAME)
configure_file(${CMAKE_CURRENT_LIST_DIR}/bin.template.h ${CMAKE_CURRENT_BINARY_DIR}/${OUTPUT_NAME}.h @ONLY)