#pragma once #include "Utils/Arguments/ArgumentParser.h" #include #include class ZoneCodeGeneratorArguments { public: ZoneCodeGeneratorArguments(); bool ParseArgs(int argc, const char** argv, bool& shouldContinue); [[nodiscard]] bool ShouldGenerate() const; [[nodiscard]] bool ShouldPrint() const; std::vector m_header_paths; std::vector m_command_paths; std::string m_output_directory; // Generate a build log that is always written for the compiler to determine // the last output time. std::string m_build_log_file; std::vector m_template_names; private: void PrintUsage() const; static void PrintVersion(); ArgumentParser m_argument_parser; unsigned m_task_flags; };