3 #include <Strings/components/utils/io/io.h>
4 #include <Strings/components/utils/string/string.h>
5 #include <Strings/components/logger/logger.h>
7 #include "../ToolCommand.hpp"
8 #include "../console.h"
10 #ifdef TOOL_LIB_EXPORTS
11 #define TOOL_LIB_API __declspec(dllexport)
13 #define TOOL_LIB_API __declspec(dllimport)
19 int successful_compiles = 0;
20 int warning_compiles = 0;
21 int failed_compiles = 0;
23 void attempt_shader_compile(std::string file_path, std::string output_file_path,
bool vertex_shader);
24 void compile_shaders(std::string base_directory);
31 syntax =
"compile-shaders <directory>";
32 description =
"[DEPRECATED: bgfx only] scans through a given directory and compiles all vertex and fragment shaders found";
35 int execute(std::vector<std::string> args)
39 BlamStrings::Logger::LogEvent(
"no directory path was provided, cannot compile shaders", BlamLogLevel::Warning);
44 if (BlamStrings::Utils::IO::FileExists(args[0]))
46 if (BlamStrings::Utils::IO::IsDirectory(args[0]))
48 std::vector<std::string> directory_list = BlamStrings::Utils::IO::GetDirectoryList(args[0]);
50 for (
int i = 0; i < directory_list.size(); i++)
52 compile_shaders(directory_list.at(i));
55 BlamStrings::Logger::LogEvent(
"shader compilation finished", TerminalColor::Cyan);
56 BlamStrings::Logger::LogEvent(
"results:");
57 BlamStrings::Logger::LogEvent(
"succeeded : " + std::to_string(successful_compiles), TerminalColor::BrightGreen);
58 BlamStrings::Logger::LogEvent(
"warnings : " + std::to_string(warning_compiles), TerminalColor::Yellow);
59 BlamStrings::Logger::LogEvent(
"failures : " + std::to_string(failed_compiles), TerminalColor::BrightRed);
63 BlamStrings::Logger::LogEvent(
"the path '" + args[0] +
"' refers to a file, not a directory, cannot compile shaders", BlamLogLevel::Warning);
69 BlamStrings::Logger::LogEvent(
"directory '" + args[0] +
"' does not exist, cannot compile shaders", BlamLogLevel::Warning);