1#ifndef YAZE_SRC_CLI_SERVICE_AGENT_TOOLS_BUILD_TOOL_H_
2#define YAZE_SRC_CLI_SERVICE_AGENT_TOOLS_BUILD_TOOL_H_
12#include "absl/status/status.h"
13#include "absl/status/statusor.h"
56 std::chrono::seconds
timeout = std::chrono::seconds(600);
65 explicit BuildTool(
const BuildConfig& config);
73 absl::StatusOr<BuildResult>
Configure(
const std::string& preset);
81 absl::StatusOr<BuildResult>
Build(
const std::string& target =
"",
82 const std::string& config =
"");
90 absl::StatusOr<BuildResult>
RunTests(
const std::string& filter =
"",
91 const std::string& rom_path =
"");
103 absl::StatusOr<BuildResult>
Clean();
132 const std::string& command,
133 const std::string& operation_name);
137 const std::string& command,
138 const std::chrono::seconds& timeout);
153 void UpdateStatus(
const std::string& operation,
bool is_running);
172 std::string
GetName()
const override {
return "build-configure"; }
175 return "Configure the build system with a CMake preset";
179 return "build-configure --preset <preset> [--build-dir <dir>] [--verbose]";
196 std::string
GetName()
const override {
return "build-compile"; }
199 return "Build a specific target or all targets";
203 return "build-compile [--target <target>] [--config <config>] [--build-dir <dir>]";
220 std::string
GetName()
const override {
return "build-test"; }
223 return "Run tests with optional filter";
227 return "build-test [--filter <pattern>] [--rom-path <path>] [--build-dir <dir>]";
244 std::string
GetName()
const override {
return "build-status"; }
247 return "Get current build operation status";
251 return "build-status [--build-dir <dir>]";
The Rom class is used to load, save, and modify Rom data. This is a generic SNES ROM container and do...
Utility for parsing common CLI argument patterns.
Base class for CLI command handlers.