@@ -82,14 +82,36 @@ macro(daemon_embed_files basename dir list format targetname)
8282 set_property (TARGET "${targetname} " APPEND PROPERTY SOURCES "${embed_${kind} _src_file}" )
8383 endforeach ()
8484
85+ if (NOT DAEMON_EMBEDDED_FILE_HEADER)
86+ set (DAEMON_EMBEDDED_FILE_HEADER "${DAEMON_EMBEDDED_SUBDIR} }/DaemonEmbeddedFile.h" )
87+
88+ string (APPEND embed_header_text
89+ "#ifndef DAEMON_EMBEDDED_FILE_H_\n "
90+ "#define DAEMON_EMBEDDED_FILE_H_\n "
91+ "#include <string>\n "
92+ "\n "
93+ "struct embeddedFileMapEntry_t\n "
94+ "{\n "
95+ " const char* data;\n "
96+ " size_t size;\n "
97+ "};\n "
98+ "\n "
99+ "using embeddedFileMap_t = std::unordered_map<std::string, const embeddedFileMapEntry_t>;\n "
100+ "#endif // DAEMON_EMBEDDED_FILE_H_\n "
101+ )
102+
103+ set (embed_header_file "${DAEMON_GENERATED_DIR} /${DAEMON_EMBEDDED_FILE_HEADER} " )
104+ file (GENERATE OUTPUT "${embed_header_file} " CONTENT "${embed_header_text} " )
105+ endif ()
106+
85107 string (APPEND embed_CPP_text
86108 "#include \" ${embed_H_file} \"\n "
87109 "\n "
88110 "namespace ${basename} {\n "
89111 )
90112
91113 string (APPEND embed_H_text
92- "#include \" common/Common.h \"\n "
114+ "#include \" ${DAEMON_EMBEDDED_FILE_HEADER} \"\n "
93115 "\n "
94116 "namespace ${basename} {\n "
95117 )
@@ -123,11 +145,11 @@ macro(daemon_embed_files basename dir list format targetname)
123145 )
124146
125147 string (APPEND embed_H_text
126- "extern const unsigned char ${filename_symbol} [] ;\n "
148+ "extern const embeddedFileMapEntry_t ${filename_symbol} ;\n "
127149 )
128150
129151 string (APPEND embed_map_text
130- "\t { \" ${filename} \" , { ${filename_symbol} , sizeof( ${filename_symbol} ) - 1 } },\n "
152+ "\t { \" ${filename} \" , ${filename_symbol} },\n "
131153 )
132154 endforeach ()
133155
0 commit comments