mirror of
https://github.com/raysan5/raylib.git
synced 2025-09-06 03:18:14 +00:00
REXM: REVIEWED: Update examples status report when examples Updated
This commit is contained in:
@@ -862,6 +862,86 @@ int main(int argc, char *argv[])
|
||||
UnloadExampleInfo(exInfoHeader);
|
||||
}
|
||||
|
||||
if (opCode == OP_UPDATE)
|
||||
{
|
||||
// Actions to fix/review anything possible from validation results
|
||||
//------------------------------------------------------------------------------------------------
|
||||
// Check examples "status" information
|
||||
for (int i = 0; i < exCollectionCount; i++)
|
||||
{
|
||||
rlExampleInfo *exInfo = &exCollection[i];
|
||||
|
||||
if (exInfo->status & VALID_MISSING_C) LOG("WARNING: [%s] Missing code file\n", exInfo->name);
|
||||
else
|
||||
{
|
||||
// NOTE: Some issues can not be automatically fixed, only logged
|
||||
//if (exInfo->status & VALID_MISSING_PNG) LOG("WARNING: [%s] Missing screenshot file\n", exInfo->name);
|
||||
//if (exInfo->status & VALID_INVALID_PNG) LOG("WARNING: [%s] Invalid screenshot file (using template)\n", exInfo->name);
|
||||
//if (exInfo->status & VALID_MISSING_RESOURCES) LOG("WARNING: [%s] Missing resources detected\n", exInfo->name);
|
||||
//if (exInfo->status & VALID_INCONSISTENT_INFO) LOG("WARNING: [%s] Inconsistent example header info\n", exInfo->name);
|
||||
//if (exInfo->status & VALID_INVALID_CATEGORY) LOG("WARNING: [%s] Invalid example category\n", exInfo->name);
|
||||
|
||||
// Review: Add: raylib/projects/VS2022/examples/<category>_example_name.vcxproj
|
||||
// Review: Add: raylib/projects/VS2022/raylib.sln
|
||||
// Solves: VALID_MISSING_VCXPROJ, VALID_NOT_IN_VCXSOL
|
||||
if (exInfo->status & VALID_MISSING_VCXPROJ)
|
||||
{
|
||||
FileCopy(TextFormat("%s/../projects/VS2022/examples/core_basic_window.vcxproj", exBasePath),
|
||||
TextFormat("%s/../projects/VS2022/examples/%s.vcxproj", exBasePath, exInfo->name));
|
||||
FileTextReplace(TextFormat("%s/../projects/VS2022/examples/%s.vcxproj", exBasePath, exInfo->name),
|
||||
"core_basic_window", exInfo->name);
|
||||
FileTextReplace(TextFormat("%s/../projects/VS2022/examples/%s.vcxproj", exBasePath, exInfo->name),
|
||||
"..\\..\\examples\\core", TextFormat("..\\..\\examples\\%s", exInfo->category));
|
||||
|
||||
exInfo->status |= VALID_MISSING_VCXPROJ;
|
||||
}
|
||||
|
||||
// Add project (.vcxproj) to raylib solution (.sln)
|
||||
if (exInfo->status & VALID_NOT_IN_VCXSOL)
|
||||
{
|
||||
AddVSProjectToSolution(TextFormat("%s/../projects/VS2022/examples/%s.vcxproj", exBasePath, exInfo->name),
|
||||
exVSProjectSolutionFile, exInfo->category);
|
||||
|
||||
exInfo->status |= VALID_NOT_IN_VCXSOL;
|
||||
}
|
||||
|
||||
// Review: Add/Remove: raylib.com/examples/<category>/<category>_example_name.html
|
||||
// Review: Add/Remove: raylib.com/examples/<category>/<category>_example_name.data
|
||||
// Review: Add/Remove: raylib.com/examples/<category>/<category>_example_name.wasm
|
||||
// Review: Add/Remove: raylib.com/examples/<category>/<category>_example_name.js
|
||||
// Solves: VALID_MISSING_WEB_OUTPUT
|
||||
if (exInfo->status & VALID_MISSING_WEB_OUTPUT)
|
||||
{
|
||||
system(TextFormat("%s/build_example_web.bat %s/%s", exBasePath, exInfo->category, exInfo->name));
|
||||
|
||||
// Copy results to web side
|
||||
FileCopy(TextFormat("%s/%s/%s.html", exBasePath, exInfo->category, exInfo->name),
|
||||
TextFormat("%s/%s/%s.html", exWebPath, exInfo->category, exInfo->name));
|
||||
FileCopy(TextFormat("%s/%s/%s.data", exBasePath, exInfo->category, exInfo->name),
|
||||
TextFormat("%s/%s/%s.data", exWebPath, exInfo->category, exInfo->name));
|
||||
FileCopy(TextFormat("%s/%s/%s.wasm", exBasePath, exInfo->category, exInfo->name),
|
||||
TextFormat("%s/%s/%s.wasm", exWebPath, exInfo->category, exInfo->name));
|
||||
FileCopy(TextFormat("%s/%s/%s.js", exBasePath, exInfo->category, exInfo->name),
|
||||
TextFormat("%s/%s/%s.js", exWebPath, exInfo->category, exInfo->name));
|
||||
|
||||
exInfo->status |= VALID_MISSING_WEB_OUTPUT;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Update files: Makefile, Makefile.Web, README.md, examples.js
|
||||
// Solves: VALID_NOT_IN_MAKEFILE, VALID_NOT_IN_MAKEFILE_WEB, VALID_NOT_IN_README, VALID_NOT_IN_JS
|
||||
UpdateRequiredFiles();
|
||||
for (int i = 0; i < exCollectionCount; i++)
|
||||
{
|
||||
exCollection[i].status |= VALID_NOT_IN_MAKEFILE;
|
||||
exCollection[i].status |= VALID_NOT_IN_MAKEFILE_WEB;
|
||||
exCollection[i].status |= VALID_NOT_IN_README;
|
||||
exCollection[i].status |= VALID_NOT_IN_JS;
|
||||
}
|
||||
//------------------------------------------------------------------------------------------------
|
||||
}
|
||||
|
||||
// Generate validation report/table with results (.md)
|
||||
/*
|
||||
Columns:
|
||||
@@ -931,75 +1011,6 @@ int main(int argc, char *argv[])
|
||||
SaveFileText(TextFormat("%s/../tools/rexm/%s", exBasePath, "examples_report.md"), report);
|
||||
RL_FREE(report);
|
||||
|
||||
//UnloadExamplesData(exCollection); // Done at the end, it can be required for fixing
|
||||
|
||||
if (opCode == OP_UPDATE)
|
||||
{
|
||||
// Actions to fix/review anything possible from validation results
|
||||
//------------------------------------------------------------------------------------------------
|
||||
// Check examples "status" information
|
||||
for (int i = 0; i < exCollectionCount; i++)
|
||||
{
|
||||
rlExampleInfo *exInfo = &exCollection[i];
|
||||
|
||||
if (exInfo->status & VALID_MISSING_C) LOG("WARNING: [%s] Missing code file\n", exInfo->name);
|
||||
else
|
||||
{
|
||||
// NOTE: Some issues can not be automatically fixed, only logged
|
||||
//if (exInfo->status & VALID_MISSING_PNG) LOG("WARNING: [%s] Missing screenshot file\n", exInfo->name);
|
||||
//if (exInfo->status & VALID_INVALID_PNG) LOG("WARNING: [%s] Invalid screenshot file (using template)\n", exInfo->name);
|
||||
//if (exInfo->status & VALID_MISSING_RESOURCES) LOG("WARNING: [%s] Missing resources detected\n", exInfo->name);
|
||||
//if (exInfo->status & VALID_INCONSISTENT_INFO) LOG("WARNING: [%s] Inconsistent example header info\n", exInfo->name);
|
||||
//if (exInfo->status & VALID_INVALID_CATEGORY) LOG("WARNING: [%s] Invalid example category\n", exInfo->name);
|
||||
|
||||
// Review: Add: raylib/projects/VS2022/examples/<category>_example_name.vcxproj
|
||||
// Review: Add: raylib/projects/VS2022/raylib.sln
|
||||
// Solves: VALID_MISSING_VCXPROJ, VALID_NOT_IN_VCXSOL
|
||||
if (exInfo->status & VALID_MISSING_VCXPROJ)
|
||||
{
|
||||
FileCopy(TextFormat("%s/../projects/VS2022/examples/core_basic_window.vcxproj", exBasePath),
|
||||
TextFormat("%s/../projects/VS2022/examples/%s.vcxproj", exBasePath, exInfo->name));
|
||||
FileTextReplace(TextFormat("%s/../projects/VS2022/examples/%s.vcxproj", exBasePath, exInfo->name),
|
||||
"core_basic_window", exInfo->name);
|
||||
FileTextReplace(TextFormat("%s/../projects/VS2022/examples/%s.vcxproj", exBasePath, exInfo->name),
|
||||
"..\\..\\examples\\core", TextFormat("..\\..\\examples\\%s", exInfo->category));
|
||||
}
|
||||
|
||||
// Add project (.vcxproj) to raylib solution (.sln)
|
||||
if (exInfo->status & VALID_NOT_IN_VCXSOL)
|
||||
{
|
||||
AddVSProjectToSolution(TextFormat("%s/../projects/VS2022/examples/%s.vcxproj", exBasePath, exInfo->name),
|
||||
exVSProjectSolutionFile, exInfo->category);
|
||||
}
|
||||
|
||||
// Review: Add/Remove: raylib.com/examples/<category>/<category>_example_name.html
|
||||
// Review: Add/Remove: raylib.com/examples/<category>/<category>_example_name.data
|
||||
// Review: Add/Remove: raylib.com/examples/<category>/<category>_example_name.wasm
|
||||
// Review: Add/Remove: raylib.com/examples/<category>/<category>_example_name.js
|
||||
// Solves: VALID_MISSING_WEB_OUTPUT
|
||||
if (exInfo->status & VALID_MISSING_WEB_OUTPUT)
|
||||
{
|
||||
system(TextFormat("%s/build_example_web.bat %s/%s", exBasePath, exInfo->category, exInfo->name));
|
||||
|
||||
// Copy results to web side
|
||||
FileCopy(TextFormat("%s/%s/%s.html", exBasePath, exInfo->category, exInfo->name),
|
||||
TextFormat("%s/%s/%s.html", exWebPath, exInfo->category, exInfo->name));
|
||||
FileCopy(TextFormat("%s/%s/%s.data", exBasePath, exInfo->category, exInfo->name),
|
||||
TextFormat("%s/%s/%s.data", exWebPath, exInfo->category, exInfo->name));
|
||||
FileCopy(TextFormat("%s/%s/%s.wasm", exBasePath, exInfo->category, exInfo->name),
|
||||
TextFormat("%s/%s/%s.wasm", exWebPath, exInfo->category, exInfo->name));
|
||||
FileCopy(TextFormat("%s/%s/%s.js", exBasePath, exInfo->category, exInfo->name),
|
||||
TextFormat("%s/%s/%s.js", exWebPath, exInfo->category, exInfo->name));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Update files: Makefile, Makefile.Web, README.md, examples.js
|
||||
// Solves: VALID_NOT_IN_MAKEFILE, VALID_NOT_IN_MAKEFILE_WEB, VALID_NOT_IN_README, VALID_NOT_IN_JS
|
||||
UpdateRequiredFiles();
|
||||
//------------------------------------------------------------------------------------------------
|
||||
}
|
||||
|
||||
UnloadExamplesData(exCollection);
|
||||
//------------------------------------------------------------------------------------------------
|
||||
|
||||
|
Reference in New Issue
Block a user