chore: enhance clangd and CI configurations for improved development experience

- Updated `.clangd` configuration to include additional include paths and feature flags tailored for ROM hacking workflows, optimizing IntelliSense support.
- Introduced `.pre-commit-config.yaml` for managing code quality checks and formatting, ensuring consistent code style across the project.
- Added `cmake-format.yaml` for CMake formatting configuration, promoting adherence to style guidelines.
- Enhanced CI workflows to include new actions for testing and building, improving overall reliability and efficiency in the development process.

Benefits:
- Streamlines development setup and improves code quality through automated checks.
- Facilitates better collaboration by ensuring consistent coding standards and configurations.
This commit is contained in:
scawful
2025-10-31 20:19:22 -04:00
parent c0f31131e2
commit d07c0abae8
41 changed files with 3039 additions and 1662 deletions

View File

@@ -0,0 +1,39 @@
# Dear ImGui dependency management
# Uses CPM.cmake for consistent cross-platform builds
include(cmake/CPM.cmake)
include(cmake/dependencies.lock)
message(STATUS "Setting up Dear ImGui ${IMGUI_VERSION} with CPM.cmake")
# Use CPM to fetch Dear ImGui
CPMAddPackage(
NAME imgui
VERSION ${IMGUI_VERSION}
GITHUB_REPOSITORY ocornut/imgui
GIT_TAG v${IMGUI_VERSION}
OPTIONS
"IMGUI_BUILD_EXAMPLES OFF"
"IMGUI_BUILD_DEMO OFF"
)
# ImGui doesn't create targets during CPM fetch, they're created during build
# We'll create our own interface target and link to ImGui when it's available
add_library(yaze_imgui INTERFACE)
# Note: ImGui targets will be available after the build phase
# For now, we'll create a placeholder that can be linked later
# Add platform-specific backends
if(TARGET imgui_impl_sdl2)
target_link_libraries(yaze_imgui INTERFACE imgui_impl_sdl2)
endif()
if(TARGET imgui_impl_opengl3)
target_link_libraries(yaze_imgui INTERFACE imgui_impl_opengl3)
endif()
# Export ImGui targets for use in other CMake files
set(YAZE_IMGUI_TARGETS yaze_imgui)
message(STATUS "Dear ImGui setup complete")