diff --git a/resource/CMakeLists.txt b/resource/CMakeLists.txt new file mode 100644 index 0000000..c3177ee --- /dev/null +++ b/resource/CMakeLists.txt @@ -0,0 +1,8 @@ +project(SparrowResource) +cmake_minimum_required(VERSION 2.8) + +# choose source file +set(EXEC_SRC_LIST main.cpp) + +include(../template.cmake) + diff --git a/resource/main.cpp b/resource/main.cpp index fb22ad0..6b40f74 100644 --- a/resource/main.cpp +++ b/resource/main.cpp @@ -5,27 +5,50 @@ using namespace std; #define NB_VAL_PER_LINE 256 +#define FILE_BEGIN "#include \n\ +#include \n\ +\n\ +namespace Resource {\n\ +std::unordered_map *resourceFilesData;\n" + +#define FILE_MID "\nvoid initResourceData()\n\ +{\n\ + resourceFilesData = new std::unordered_map();\n" + +#define FILE_END "\n\ +}\n\ +\n\ +const char* get(const std::string &fileName)\n\ +{\n\ + if(resourceFilesData->count(fileName) > 0)\n\ + return (*resourceFilesData)[fileName];\n\ + else\n\ + return NULL;\n\ +}\n\ +}\n" + +unsigned int n = 0; + bool addFile(const string &inFile, FILE *out) { - static unsigned int n = 0; FILE *in = fopen(inFile.c_str(), "r"); if(in == NULL) { fprintf(stderr, "can't open \"%s\" for readingn", inFile.c_str()); return false; } - fprintf(out, "\n\tunsigned char data%d[] = {\n", n); - unsigned char ptr[NB_VAL_PER_LINE]; + fprintf(out, "\nconst char data%d[] = {\n", n); + char ptr[NB_VAL_PER_LINE]; size_t nbRead; do { - nbRead = fread(ptr, sizeof(unsigned char), NB_VAL_PER_LINE, in); + nbRead = fread(ptr, sizeof(char), NB_VAL_PER_LINE, in); for(unsigned int i=0; i\n#include \n\nnamespace Resource {\nstd::unordered_map *resourceFilesData;\n\nvoid initResourceData()\n{\n\tresourceFilesData = new std::unordered_map();\n"); + fprintf(out, FILE_BEGIN); for(int i=2; icount(fileName) > 0)\n\t\treturn (*resourceFilesData)[fileName];\n\telse\n\t\treturn NULL;\n}\n}\n"); + fprintf(out, FILE_MID); + for(int i=0; i +#include "resource.h" + +using namespace std; + +int main() +{ + cout << "Resource test" << endl; + Resource::initResourceData(); + const char *str = Resource::get("plop.txt"); + if(str != NULL) + cout << str << endl; + else + cout << "nope" << endl; +} \ No newline at end of file diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt deleted file mode 100644 index ab2fc83..0000000 --- a/test/CMakeLists.txt +++ /dev/null @@ -1,9 +0,0 @@ - - - -include(test.cmake) - -cmake_minimum_required(VERSION 2.8) - -include(../template.cmake) - diff --git a/test/test.cmake b/test/test.cmake deleted file mode 100644 index e69de29..0000000