aboutsummaryrefslogtreecommitdiff
path: root/cmake/FileEmbed.cmake
diff options
context:
space:
mode:
Diffstat (limited to 'cmake/FileEmbed.cmake')
-rw-r--r--cmake/FileEmbed.cmake12
1 files changed, 12 insertions, 0 deletions
diff --git a/cmake/FileEmbed.cmake b/cmake/FileEmbed.cmake
new file mode 100644
index 0000000..27e963e
--- /dev/null
+++ b/cmake/FileEmbed.cmake
@@ -0,0 +1,12 @@
+get_filename_component(bin_name ${bin_in} NAME)
+string(REGEX REPLACE "\\.| |-" "_" bin_name ${bin_name})
+
+set(c_out ${bin_name}.c)
+set(h_out ${bin_name}.h)
+
+file(READ ${bin_in} filedata HEX)
+
+string(REGEX REPLACE "([0-9a-f][0-9a-f])" "0x\\1," filedata ${filedata})
+
+file(WRITE ${c_out} "#include <stdlib.h>\nconst unsigned char ${bin_name}[] = {${filedata}};\nconst size_t ${bin_name}_size = sizeof(${bin_name});\n")
+file(WRITE ${h_out} "extern const char ${bin_name}[];\nextern const size_t ${bin_name}_size;\n")