|
|
@ -78,8 +78,10 @@ typedef struct { |
|
|
|
float verUpdated; // Example raylib last update version |
|
|
|
char author[64]; // Example author |
|
|
|
char authorGitHub[64]; // Example author, GitHub user name |
|
|
|
int resCount; // Example resources counter |
|
|
|
|
|
|
|
int status; // Example validation status info |
|
|
|
int resCount; // Example resources counter |
|
|
|
char **resPaths; // Example resources paths (MAX: 256) |
|
|
|
} rlExampleInfo; |
|
|
|
|
|
|
|
// Validation status for a single example |
|
|
@ -166,7 +168,7 @@ static char **ScanExampleResources(const char *filePath, int *resPathCount); |
|
|
|
// Clear resource paths scanned |
|
|
|
static void ClearExampleResources(char **resPaths); |
|
|
|
|
|
|
|
// Add VS project (.vcxproj) to existing VS solution (.sol) |
|
|
|
// Add VS project (.vcxproj) to existing VS solution (.sln) |
|
|
|
static int AddVSProjectToSolution(const char *projFile, const char *slnFile, const char *category); |
|
|
|
|
|
|
|
// Generate unique UUID v4 string |
|
|
@ -630,7 +632,6 @@ int main(int argc, char *argv[]) |
|
|
|
|
|
|
|
// Recompile example (on raylib side) |
|
|
|
// NOTE: Tools requirements: emscripten, w64devkit |
|
|
|
// TODO: Avoid platform-specific .BAT file |
|
|
|
system(TextFormat("%s/build_example_web.bat %s/%s", exBasePath, exRecategory, exRename)); |
|
|
|
|
|
|
|
// Copy results to web side |
|
|
@ -712,8 +713,9 @@ int main(int argc, char *argv[]) |
|
|
|
// Remove: raylib/projects/VS2022/examples/<category>_example_name.vcxproj |
|
|
|
remove(TextFormat("%s/../projects/VS2022/examples/%s.vcxproj", exBasePath, exName)); |
|
|
|
|
|
|
|
// TODO: Edit: raylib/projects/VS2022/raylib.sln --> Remove example project |
|
|
|
// Edit: raylib/projects/VS2022/raylib.sln --> Remove example project |
|
|
|
//--------------------------------------------------------------------------- |
|
|
|
// TODO: Remove project from solution |
|
|
|
//RemoveVSProjectFromSolution(TextFormat("%s/../projects/VS2022/examples/%s.vcxproj", exBasePath, exName), |
|
|
|
// TextFormat("%s/../projects/VS2022/raylib.sln", exBasePath)); |
|
|
|
//--------------------------------------------------------------------------- |
|
|
@ -754,7 +756,7 @@ int main(int argc, char *argv[]) |
|
|
|
// NOTE: Source of truth is what we have in the examples directories (on validation/update) |
|
|
|
FilePathList list = LoadDirectoryFilesEx(exBasePath, ".c", true); |
|
|
|
|
|
|
|
">const char *exList = LoadFileText(exCollectionFilePath); |
|
|
|
char *exList = LoadFileText(exCollectionFilePath); |
|
|
|
char *exListUpdated = (char *)RL_CALLOC(REXM_MAX_BUFFER_SIZE, 1); |
|
|
|
bool listUpdated = false; |
|
|
|
|
|
|
@ -1755,6 +1757,8 @@ rlExampleInfo *LoadExampleInfo(const char *exFileName) |
|
|
|
} |
|
|
|
|
|
|
|
UnloadFileText(exText); |
|
|
|
|
|
|
|
exInfo->resPaths = ScanExampleResources(exFileName, &exInfo->resCount); |
|
|
|
} |
|
|
|
|
|
|
|
return exInfo; |
|
|
@ -1763,6 +1767,7 @@ rlExampleInfo *LoadExampleInfo(const char *exFileName) |
|
|
|
// Unload example information |
|
|
|
static void UnloadExampleInfo(rlExampleInfo *exInfo) |
|
|
|
{ |
|
|
|
ClearExampleResources(exInfo->resPaths); |
|
|
|
RL_FREE(exInfo); |
|
|
|
} |
|
|
|
|
|
|
@ -1854,9 +1859,9 @@ static char **ScanExampleResources(const char *filePath, int *resPathCount) |
|
|
|
char *end = strchr(start, '"'); |
|
|
|
if (!end) break; |
|
|
|
|
|
|
|
// TODO: WARNING: Some paths could be for files to save, not files to load, verify it |
|
|
|
// WARNING: Some paths could be for saving files, not loading, those "resource" files must be omitted |
|
|
|
// HACK: Just check previous position from pointer for function name including the string... |
|
|
|
// This is a horrible solution, the good one would be getting the data loading function names... |
|
|
|
// This is a dirty solution, the good one would be getting the data loading function names... |
|
|
|
if (TextFindIndex(ptr - 40, "ExportImage") == -1) |
|
|
|
{ |
|
|
|
int len = (int)(end - start); |
|
|
@ -1913,12 +1918,12 @@ static void ClearExampleResources(char **resPaths) |
|
|
|
RL_FREE(resPaths); |
|
|
|
} |
|
|
|
|
|
|
|
// l">TODO: Add VS project (.vcxproj) to existing VS solution (.sol) |
|
|
|
// Add VS project (.vcxproj) to existing VS solution (.sln) |
|
|
|
// WARNING: Adding a .vcxproj to .sln can not be automated with: |
|
|
|
// - "dotnet" tool (C# projects only) |
|
|
|
// - "devenv" tool (no adding support, only building) |
|
|
|
// It must be done manually editing the .sln file |
|
|
|
static int AddVSProjectToSolution(const char *projFile, const char *slnFile, char *category) |
|
|
|
static int AddVSProjectToSolution(const char *projFile, const char *slnFile, ">const char *category) |
|
|
|
{ |
|
|
|
int result = 0; |
|
|
|
|
|
|
@ -1926,7 +1931,7 @@ static int AddVSProjectToSolution(const char *projFile, const char *slnFile, cha |
|
|
|
// *projFile ptr will be overwriten after a while |
|
|
|
|
|
|
|
// Generate unique UUID |
|
|
|
char *uuid = GenerateUUIDv4(); |
|
|
|
">const char *uuid = GenerateUUIDv4(); |
|
|
|
|
|
|
|
// Replace default UUID (core_basic_window) on project file by new one |
|
|
|
FileTextReplace(projFile, "0981CA98-E4A5-4DF1-987F-A41D09131EFC", uuid); |
|
|
|