This commit is contained in:
Timerix22 2023-05-22 04:05:48 +06:00
parent 81df594082
commit e7bdb4ceb5

View File

@ -114,32 +114,31 @@ void process_file(const char* input_file_path,
out_file_path, _sp1); out_file_path, _sp1);
free(_sp1); free(_sp1);
fprintf(out_file, fprintf(out_file,
"typedef unsigned char _byte;\n"
"\n" "\n"
"typedef struct {\n" "typedef struct {\n"
" char* path;\n" " char* path;\n"
" _byte* data;\n" " char* data;\n"
" unsigned long long size;\n" " unsigned long long size;\n"
"} EmbeddedResourceFile;\n" "} EmbeddedResourceFile;\n"
"\n" "\n"
"#ifndef _EmbeddedResourceFile_table\n" "#define RSCAT(A,B,C...) A##B##C"
"\n"
"#ifdef EMBEDDED_RESOURCE_POSTFIX\n" "#ifdef EMBEDDED_RESOURCE_POSTFIX\n"
" #define _EmbeddedResourceFile_table \\\n" " #define _EmbeddedResourceFile_table(P) \\\n"
" EmbeddedResourceFile_table##EMBEDDED_RESOURCE_POSTFIX\n" " RSCAT(EmbeddedResourceFile_table_, P)\n"
" #define _EmbeddedResourceFile_table_count \\\n" " #define _EmbeddedResourceFile_table_count(P) \\\n"
" EmbeddedResourceFile_table##EMBEDDED_RESOURCE_POSTFIX##_count\n" " RSCAT(EmbeddedResourceFile_table_, P, _count)\n"
"#else\n" "#else\n"
" #define _EmbeddedResourceFile_table \\\n" " #define _EmbeddedResourceFile_table(P) \\\n"
" EmbeddedResourceFile_table\n" " EmbeddedResourceFile_table\n"
" #define _EmbeddedResourceFile_table_count \\\n" " #define _EmbeddedResourceFile_table_count(P) \\\n"
" EmbeddedResourceFile_table_count\n" " EmbeddedResourceFile_table_count\n"
"#endif\n" "#endif\n"
"#endif\n" "extern EmbeddedResourceFile _EmbeddedResourceFile_table(EMBEDDED_RESOURCE_POSTFIX)[];\n"
"extern EmbeddedResourceFile _EmbeddedResourceFile_table[];\n" "extern unsigned int _EmbeddedResourceFile_table_count(EMBEDDED_RESOURCE_POSTFIX);"
"extern unsigned int _EmbeddedResourceFile_table_count;"
"\n" "\n"
"\n" "\n"
"EmbeddedResourceFile _EmbeddedResourceFile_table[]={\n"); "EmbeddedResourceFile _EmbeddedResourceFile_table(EMBEDDED_RESOURCE_POSTFIX)[]={\n");
print_line(print_lines, false); print_line(print_lines, false);
} }
@ -157,20 +156,21 @@ void process_file(const char* input_file_path,
fprintf(out_file, fprintf(out_file,
" {\n" " {\n"
" .path=(char*)\"%s\",\n" " .path=(char*)\"%s\",\n"
" .data=(_byte[]){", " .data=(char[]){",
embedded_file_path); embedded_file_path);
// writing input file content // writing input file content
int byte=0; int byte=0;
unsigned long long size=0; unsigned long long size=0;
while( (byte=fgetc(input_file)) != EOF ){ while( (byte=fgetc(input_file)) != EOF ){
if(size!=0)
fprintf(out_file, ",");
if(size%16==0) if(size%16==0)
fprintf(out_file, "\n "); fprintf(out_file, "\n ");
fprintf(out_file, "0x%X", byte); fprintf(out_file, "0x%02X,", byte);
size+=1; size+=1;
} }
// trailing zero to use file.data as cstring
fprintf(out_file, "0x0");
fprintf(out_file, fprintf(out_file,
"\n },\n" "\n },\n"
" .size=%llu\n" " .size=%llu\n"
@ -251,7 +251,12 @@ int main(const int argc, const char * const* argv){
print_line(true, false); print_line(true, false);
fprintf(out_file, fprintf(out_file,
"\n};\n\n" "\n};\n\n"
"unsigned int _EmbeddedResourceFile_table_count=%u;\n", "unsigned int _EmbeddedResourceFile_table_count(EMBEDDED_RESOURCE_POSTFIX)=%u;\n"
"\n"
"#undef _EmbeddedResourceFile_table\n"
"#undef _EmbeddedResourceFile_table_count\n"
"#undef EMBEDDED_RESOURCE_POSTFIX\n",
"#undef RSCAT\n",
_input_files_n); _input_files_n);
if(!out_file_set) if(!out_file_set)
fclose(out_file); fclose(out_file);