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

@@ -1,33 +1,34 @@
set(
YAZE_GUI_SRC
app/gui/canvas.cc
app/gui/canvas/bpp_format_ui.cc
app/gui/canvas/canvas_automation_api.cc
app/gui/canvas/canvas_context_menu.cc
app/gui/canvas/canvas_interaction_handler.cc
app/gui/canvas/canvas_modals.cc
app/gui/canvas/canvas_performance_integration.cc
app/gui/canvas/canvas_usage_tracker.cc
app/gui/canvas/canvas_utils.cc
app/gui/color.cc
app/gui/editor_card_manager.cc
app/gui/editor_layout.cc
app/gui/input.cc
app/gui/modules/asset_browser.cc
app/gui/modules/text_editor.cc
app/gui/widgets/agent_chat_widget.cc
app/gui/widgets/dungeon_object_emulator_preview.cc
app/gui/widgets/collaboration_panel.cc
app/gui/canvas.cc
app/gui/canvas/canvas_utils.cc
app/gui/widgets/palette_widget.cc
app/gui/widgets/palette_editor_widget.cc
app/gui/input.cc
app/gui/style.cc
app/gui/color.cc
app/gui/theme_manager.cc
app/gui/canvas/bpp_format_ui.cc
app/gui/widgets/widget_id_registry.cc
app/gui/widgets/widget_auto_register.cc
app/gui/widgets/widget_state_capture.cc
app/gui/ui_helpers.cc
app/gui/editor_layout.cc
app/gui/editor_card_manager.cc
# Canvas system components
app/gui/canvas/canvas_modals.cc
app/gui/canvas/canvas_context_menu.cc
app/gui/canvas/canvas_usage_tracker.cc
app/gui/canvas/canvas_performance_integration.cc
app/gui/canvas/canvas_interaction_handler.cc
app/gui/canvas/canvas_automation_api.cc
app/gui/widgets/agent_chat_widget.cc
app/gui/widgets/collaboration_panel.cc
app/gui/widgets/dungeon_object_emulator_preview.cc
app/gui/widgets/palette_editor_widget.cc
app/gui/widgets/palette_widget.cc
app/gui/widgets/tile_selector_widget.cc
app/gui/widgets/widget_auto_register.cc
app/gui/widgets/widget_id_registry.cc
app/gui/widgets/widget_measurement.cc
app/gui/widgets/widget_state_capture.cc
# Canvas system components
)
# ==============================================================================
@@ -47,12 +48,7 @@ set(
add_library(yaze_gui STATIC ${YAZE_GUI_SRC})
target_precompile_headers(yaze_gui PRIVATE
<array>
<memory>
<set>
<string>
<string_view>
<vector>
"$<$<COMPILE_LANGUAGE:CXX>:${CMAKE_SOURCE_DIR}/src/yaze_pch.h>"
)
target_include_directories(yaze_gui PUBLIC

View File

@@ -67,6 +67,8 @@ void EnhancedTheme::ApplyToImGui() const {
colors[ImGuiCol_Tab] = ConvertColorToImVec4(tab);
colors[ImGuiCol_TabHovered] = ConvertColorToImVec4(tab_hovered);
colors[ImGuiCol_TabSelected] = ConvertColorToImVec4(tab_active);
colors[ImGuiCol_TabUnfocused] = ConvertColorToImVec4(tab_unfocused);
colors[ImGuiCol_TabUnfocusedActive] = ConvertColorToImVec4(tab_unfocused_active);
colors[ImGuiCol_DockingPreview] = ConvertColorToImVec4(docking_preview);
colors[ImGuiCol_DockingEmptyBg] = ConvertColorToImVec4(docking_empty_bg);
@@ -170,6 +172,8 @@ void ThemeManager::CreateFallbackYazeClassic() {
theme.tab = RGBA(46, 66, 46); // alttpDarkGreen
theme.tab_hovered = RGBA(71, 92, 71); // alttpMidGreen
theme.tab_active = RGBA(89, 119, 89); // TabActive
theme.tab_unfocused = RGBA(37, 52, 37); // Darker version of tab
theme.tab_unfocused_active = RGBA(62, 83, 62); // Darker version of tab_active
// Complete all remaining ImGui colors from original ColorsYaze() function
theme.title_bg = RGBA(71, 92, 71); // alttpMidGreen
@@ -875,6 +879,8 @@ void ThemeManager::ApplyClassicYazeTheme() {
classic_theme.tab = RGBA(46, 66, 46); // alttpDarkGreen
classic_theme.tab_hovered = RGBA(71, 92, 71); // alttpMidGreen
classic_theme.tab_active = RGBA(89, 119, 89); // TabActive
classic_theme.tab_unfocused = RGBA(37, 52, 37); // Darker version of tab
classic_theme.tab_unfocused_active = RGBA(62, 83, 62); // Darker version of tab_active
// Complete all remaining ImGui colors from original ColorsYaze() function
classic_theme.title_bg = RGBA(71, 92, 71); // alttpMidGreen
@@ -1432,6 +1438,8 @@ void ThemeManager::ShowSimpleThemeEditor(bool* p_open) {
{"Tab", &edit_theme.tab},
{"Tab Hovered", &edit_theme.tab_hovered},
{"Tab Active", &edit_theme.tab_active},
{"Tab Unfocused", &edit_theme.tab_unfocused},
{"Tab Unfocused Active", &edit_theme.tab_unfocused_active},
{"Tab Dimmed", &edit_theme.tab_dimmed},
{"Tab Dimmed Selected", &edit_theme.tab_dimmed_selected},
{"Title Background", &edit_theme.title_bg},

View File

@@ -108,6 +108,8 @@ struct EnhancedTheme {
Color tree_lines;
// Additional ImGui colors for complete coverage
Color tab_unfocused;
Color tab_unfocused_active;
Color tab_dimmed;
Color tab_dimmed_selected;
Color tab_dimmed_selected_overline;