Build tool for AI agents to compile and test the project. More...
#include <build_tool.h>

Classes | |
| struct | BuildConfig |
| struct | BuildResult |
| struct | BuildStatus |
Public Member Functions | |
| BuildTool () | |
| BuildTool (const BuildConfig &config) | |
| ~BuildTool () | |
| absl::StatusOr< BuildResult > | Configure (const std::string &preset) |
| Configure the build system with a CMake preset. | |
| absl::StatusOr< BuildResult > | Build (const std::string &target="", const std::string &config="") |
| Build a specific target or all targets. | |
| absl::StatusOr< BuildResult > | RunTests (const std::string &filter="", const std::string &rom_path="") |
| Run tests with optional filter. | |
| BuildStatus | GetBuildStatus () const |
| Get current build status. | |
| absl::StatusOr< BuildResult > | Clean () |
| Clean the build directory. | |
| bool | IsBuildDirectoryReady () const |
| Check if a build directory exists and is configured. | |
| std::vector< std::string > | ListAvailablePresets () const |
| List available CMake presets. | |
| std::optional< BuildResult > | GetLastResult () const |
| Get the last build result. | |
| absl::Status | CancelCurrentOperation () |
| Cancel the current build operation. | |
Private Member Functions | |
| absl::StatusOr< BuildResult > | ExecuteCommand (const std::string &command, const std::string &operation_name) |
| absl::StatusOr< BuildResult > | ExecuteCommandInternal (const std::string &command, const std::chrono::seconds &timeout) |
| std::string | GetProjectRoot () const |
| std::string | GetCurrentPlatform () const |
| std::vector< std::string > | ParsePresetsFile () const |
| bool | IsPresetValid (const std::string &preset) const |
| void | UpdateStatus (const std::string &operation, bool is_running) |
Private Attributes | |
| BuildConfig | config_ |
| std::mutex | status_mutex_ |
| std::atomic< bool > | is_running_ {false} |
| std::string | current_operation_ |
| std::optional< BuildResult > | last_result_ |
| std::chrono::system_clock::time_point | operation_start_time_ |
| std::unique_ptr< std::thread > | execution_thread_ |
| std::atomic< bool > | cancel_requested_ {false} |
Build tool for AI agents to compile and test the project.
This tool provides safe access to build operations with:
Definition at line 32 of file build_tool.h.
|
inline |
Definition at line 64 of file build_tool.h.
|
explicit |
Definition at line 39 of file build_tool.cc.
References yaze::cli::agent::tools::BuildTool::BuildConfig::build_directory, config_, and GetProjectRoot().

| yaze::cli::agent::tools::BuildTool::~BuildTool | ( | ) |
Definition at line 53 of file build_tool.cc.
References CancelCurrentOperation(), execution_thread_, and is_running_.

| absl::StatusOr< BuildTool::BuildResult > yaze::cli::agent::tools::BuildTool::Configure | ( | const std::string & | preset | ) |
Configure the build system with a CMake preset.
| preset | The preset name (e.g., "mac-ai", "lin-dbg", "win-ai") |
Definition at line 69 of file build_tool.cc.
References yaze::cli::agent::tools::BuildTool::BuildConfig::build_directory, config_, ExecuteCommand(), IsPresetValid(), ListAvailablePresets(), and yaze::cli::agent::tools::BuildTool::BuildConfig::verbose.

| absl::StatusOr< BuildTool::BuildResult > yaze::cli::agent::tools::BuildTool::Build | ( | const std::string & | target = "", |
| const std::string & | config = "" ) |
Build a specific target or all targets.
| target | The target name (empty for all, "yaze", "yaze_test", "z3ed") |
| config | The build configuration (Debug, Release, RelWithDebInfo) |
Definition at line 104 of file build_tool.cc.
References yaze::cli::agent::tools::BuildTool::BuildConfig::build_directory, config_, ExecuteCommand(), IsBuildDirectoryReady(), and yaze::cli::agent::tools::BuildTool::BuildConfig::verbose.

| absl::StatusOr< BuildTool::BuildResult > yaze::cli::agent::tools::BuildTool::RunTests | ( | const std::string & | filter = "", |
| const std::string & | rom_path = "" ) |
Run tests with optional filter.
| filter | Test filter pattern (e.g., "*Canvas*", "unit", "integration") |
| rom_path | Optional ROM path for ROM-dependent tests |
Definition at line 138 of file build_tool.cc.
References yaze::cli::agent::tools::BuildTool::BuildConfig::build_directory, config_, ExecuteCommand(), IsBuildDirectoryReady(), and yaze::cli::agent::tools::BuildTool::BuildConfig::verbose.

| BuildTool::BuildStatus yaze::cli::agent::tools::BuildTool::GetBuildStatus | ( | ) | const |
Get current build status.
Definition at line 194 of file build_tool.cc.
References yaze::cli::agent::tools::BuildTool::BuildStatus::current_operation, current_operation_, yaze::cli::agent::tools::BuildTool::BuildStatus::is_running, is_running_, last_result_, yaze::cli::agent::tools::BuildTool::BuildStatus::last_result_summary, operation_start_time_, yaze::cli::agent::tools::BuildTool::BuildStatus::progress_percent, yaze::cli::agent::tools::BuildTool::BuildStatus::start_time, and status_mutex_.
| absl::StatusOr< BuildTool::BuildResult > yaze::cli::agent::tools::BuildTool::Clean | ( | ) |
Clean the build directory.
Definition at line 216 of file build_tool.cc.
References yaze::cli::agent::tools::BuildTool::BuildConfig::build_directory, yaze::cli::agent::tools::BuildTool::BuildResult::command_executed, config_, yaze::cli::agent::tools::BuildTool::BuildResult::duration, ExecuteCommand(), yaze::cli::agent::tools::BuildTool::BuildResult::exit_code, IsBuildDirectoryReady(), yaze::cli::agent::tools::BuildTool::BuildResult::output, and yaze::cli::agent::tools::BuildTool::BuildResult::success.

| bool yaze::cli::agent::tools::BuildTool::IsBuildDirectoryReady | ( | ) | const |
Check if a build directory exists and is configured.
Definition at line 235 of file build_tool.cc.
References yaze::cli::agent::tools::BuildTool::BuildConfig::build_directory, and config_.
Referenced by Build(), Clean(), and RunTests().
| std::vector< std::string > yaze::cli::agent::tools::BuildTool::ListAvailablePresets | ( | ) | const |
List available CMake presets.
Definition at line 243 of file build_tool.cc.
References ParsePresetsFile().
Referenced by Configure(), and IsPresetValid().

| std::optional< BuildTool::BuildResult > yaze::cli::agent::tools::BuildTool::GetLastResult | ( | ) | const |
Get the last build result.
Definition at line 247 of file build_tool.cc.
References last_result_, and status_mutex_.
| absl::Status yaze::cli::agent::tools::BuildTool::CancelCurrentOperation | ( | ) |
Cancel the current build operation.
Definition at line 252 of file build_tool.cc.
References cancel_requested_, and execution_thread_.
Referenced by ~BuildTool().
|
private |
Definition at line 266 of file build_tool.cc.
References config_, ExecuteCommandInternal(), is_running_, last_result_, status_mutex_, yaze::cli::agent::tools::BuildTool::BuildConfig::timeout, and UpdateStatus().
Referenced by Build(), Clean(), Configure(), and RunTests().

|
private |
Definition at line 305 of file build_tool.cc.
References cancel_requested_, yaze::cli::agent::tools::BuildTool::BuildConfig::capture_output, yaze::cli::agent::tools::BuildTool::BuildResult::command_executed, config_, yaze::cli::agent::tools::BuildTool::BuildResult::error_output, yaze::cli::agent::tools::BuildTool::BuildResult::exit_code, GetProjectRoot(), yaze::cli::agent::tools::BuildTool::BuildConfig::max_output_size, yaze::cli::agent::tools::BuildTool::BuildResult::output, and yaze::cli::agent::tools::BuildTool::BuildResult::success.
Referenced by ExecuteCommand().

|
private |
Definition at line 439 of file build_tool.cc.
Referenced by BuildTool(), ExecuteCommandInternal(), and ParsePresetsFile().
|
private |
Definition at line 467 of file build_tool.cc.
Referenced by ParsePresetsFile().
|
private |
Definition at line 479 of file build_tool.cc.
References GetCurrentPlatform(), and GetProjectRoot().
Referenced by ListAvailablePresets().

|
private |
Definition at line 605 of file build_tool.cc.
References ListAvailablePresets().
Referenced by Configure().

|
private |
Definition at line 610 of file build_tool.cc.
References current_operation_, is_running_, operation_start_time_, and status_mutex_.
Referenced by ExecuteCommand().
|
private |
Definition at line 155 of file build_tool.h.
Referenced by Build(), BuildTool(), Clean(), Configure(), ExecuteCommand(), ExecuteCommandInternal(), IsBuildDirectoryReady(), and RunTests().
|
mutableprivate |
Definition at line 156 of file build_tool.h.
Referenced by ExecuteCommand(), GetBuildStatus(), GetLastResult(), and UpdateStatus().
|
private |
Definition at line 157 of file build_tool.h.
Referenced by ExecuteCommand(), GetBuildStatus(), UpdateStatus(), and ~BuildTool().
|
private |
Definition at line 158 of file build_tool.h.
Referenced by GetBuildStatus(), and UpdateStatus().
|
private |
Definition at line 159 of file build_tool.h.
Referenced by ExecuteCommand(), GetBuildStatus(), and GetLastResult().
|
private |
Definition at line 160 of file build_tool.h.
Referenced by GetBuildStatus(), and UpdateStatus().
|
private |
Definition at line 161 of file build_tool.h.
Referenced by CancelCurrentOperation(), and ~BuildTool().
|
private |
Definition at line 162 of file build_tool.h.
Referenced by CancelCurrentOperation(), and ExecuteCommandInternal().