@@ -82,14 +82,37 @@ 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_FILES_HEADER)
86+ set (DAEMON_EMBEDDED_FILES_HEADER "${DAEMON_EMBEDDED_SUBDIR} /DaemonEmbeddedFiles.h" )
87+
88+ string (APPEND embed_header_text
89+ "#ifndef DAEMON_EMBEDDED_FILES_H_\n "
90+ "#define DAEMON_EMBEDDED_FILES_H_\n "
91+ "#include <unordered_map>\n "
92+ "#include <string>\n "
93+ "\n "
94+ "struct embeddedFileMapEntry_t\n "
95+ "{\n "
96+ " const char* data;\n "
97+ " size_t size;\n "
98+ "};\n "
99+ "\n "
100+ "using embeddedFileMap_t = std::unordered_map<std::string, const embeddedFileMapEntry_t>;\n "
101+ "#endif // DAEMON_EMBEDDED_FILES_H_\n "
102+ )
103+
104+ set (embed_header_file "${DAEMON_GENERATED_DIR} /${DAEMON_EMBEDDED_FILES_HEADER} " )
105+ file (GENERATE OUTPUT "${embed_header_file} " CONTENT "${embed_header_text} " )
106+ endif ()
107+
85108 string (APPEND embed_CPP_text
86109 "#include \" ${embed_H_file} \"\n "
87110 "\n "
88111 "namespace ${basename} {\n "
89112 )
90113
91114 string (APPEND embed_H_text
92- "#include \" common/Common.h \"\n "
115+ "#include \" ${DAEMON_EMBEDDED_FILES_HEADER} \"\n "
93116 "\n "
94117 "namespace ${basename} {\n "
95118 )
@@ -123,11 +146,11 @@ macro(daemon_embed_files basename dir list format targetname)
123146 )
124147
125148 string (APPEND embed_H_text
126- "extern const unsigned char ${filename_symbol} [] ;\n "
149+ "extern const embeddedFileMapEntry_t ${filename_symbol} ;\n "
127150 )
128151
129152 string (APPEND embed_map_text
130- "\t { \" ${filename} \" , { ${filename_symbol} , sizeof( ${filename_symbol} ) - 1 } },\n "
153+ "\t { \" ${filename} \" , ${filename_symbol} },\n "
131154 )
132155 endforeach ()
133156
0 commit comments