feat(build-system): enhance CMake configuration and introduce new utility files

- Refactored CMakeLists.txt to streamline project configuration and improve readability.
- Introduced new utility functions in `utils.cmake` for setting compiler flags and managing dependencies.
- Added `dependencies.cmake` to centralize third-party dependency management, enhancing modularity.
- Updated CI workflows to include new build options and improved logging for better feedback during configuration.
- Implemented precompiled headers in various libraries to speed up compilation times.

Benefits:
- Improved maintainability and clarity of the build system.
- Enhanced build performance through precompiled headers.
- Streamlined dependency management for easier integration of third-party libraries.
This commit is contained in:
scawful
2025-10-11 02:44:17 -04:00
parent 31d0337b11
commit f54949bdd8
56 changed files with 2673 additions and 4872 deletions

View File

@@ -1675,9 +1675,9 @@ absl::Status TestManager::TestRomDataIntegrity(Rom* rom) {
});
}
#if defined(YAZE_WITH_GRPC)
std::string TestManager::RegisterHarnessTest(const std::string& name,
const std::string& category) {
#if defined(YAZE_WITH_GRPC)
absl::MutexLock lock(&harness_history_mutex_);
std::string test_id = absl::StrCat("harness_", absl::ToUnixMicros(absl::Now()), "_", harness_history_.size());
HarnessTestExecution execution;
@@ -1693,12 +1693,15 @@ std::string TestManager::RegisterHarnessTest(const std::string& name,
aggregate.latest_execution = execution;
harness_history_order_.push_back(test_id);
return test_id;
}
#else
std::string TestManager::RegisterHarnessTest(const std::string& name,
const std::string& category) {
(void)name;
(void)category;
return {};
#endif
}
#endif
#if defined(YAZE_WITH_GRPC)
void TestManager::MarkHarnessTestRunning(const std::string& test_id) {
@@ -1852,10 +1855,12 @@ void TestManager::CaptureFailureContext(const std::string& test_id) {
if (harness_listener_) {
harness_listener_->OnHarnessTestUpdated(execution);
}
#else
(void)test_id;
#endif
}
#else
void TestManager::CaptureFailureContext(const std::string& test_id) {
(void)test_id;
}
#endif
#if defined(YAZE_WITH_GRPC)
void TestManager::TrimHarnessHistoryLocked() {
@@ -1870,14 +1875,6 @@ absl::Status TestManager::ReplayLastPlan() {
return absl::FailedPreconditionError("Harness plan replay not available");
}
absl::Status TestManager::ShowHarnessDashboard() {
return absl::OkStatus();
}
absl::Status TestManager::ShowHarnessActiveTests() {
return absl::OkStatus();
}
void TestManager::SetHarnessListener(HarnessListener* listener) {
absl::MutexLock lock(&mutex_);
harness_listener_ = listener;
@@ -1886,15 +1883,24 @@ void TestManager::SetHarnessListener(HarnessListener* listener) {
absl::Status TestManager::ReplayLastPlan() {
return absl::UnimplementedError("Harness features require YAZE_WITH_GRPC");
}
#endif
absl::Status TestManager::ShowHarnessDashboard() {
// These methods are always available, but may return unimplemented without GRPC
#if defined(YAZE_WITH_GRPC)
return absl::OkStatus();
#else
return absl::UnimplementedError("Harness features require YAZE_WITH_GRPC");
#endif
}
absl::Status TestManager::ShowHarnessActiveTests() {
#if defined(YAZE_WITH_GRPC)
return absl::OkStatus();
#else
return absl::UnimplementedError("Harness features require YAZE_WITH_GRPC");
}
#endif
}
void TestManager::RecordPlanSummary(const std::string& summary) {
(void)summary;