Merge remote-tracking branch 'origin/develop' into claude/debug-ci-build-failures-011CUmiMP8xwyFa1kdhkJGaX

This commit is contained in:
scawful
2025-11-04 21:48:38 -05:00
9 changed files with 301 additions and 67 deletions

View File

@@ -76,4 +76,4 @@ endif()
message(STATUS "=================================")
# Export all dependency targets for use in other CMake files
set(YAZE_ALL_DEPENDENCIES ${YAZE_ALL_DEPENDENCIES} PARENT_SCOPE)
set(YAZE_ALL_DEPENDENCIES ${YAZE_ALL_DEPENDENCIES})

View File

@@ -11,6 +11,7 @@ set(YAML_CPP_VERSION "0.8.0" CACHE STRING "yaml-cpp version")
set(GRPC_VERSION "1.67.1" CACHE STRING "gRPC version - MSVC compatible")
set(PROTOBUF_VERSION "3.25.1" CACHE STRING "Protobuf version")
set(ABSEIL_VERSION "20240116.0" CACHE STRING "Abseil version")
# Cache revision: increment to force CPM cache invalidation (current: 2)
# Testing
set(GTEST_VERSION "1.14.0" CACHE STRING "Google Test version")
@@ -21,6 +22,7 @@ set(FTXUI_VERSION "5.0.0" CACHE STRING "FTXUI version")
# ImGui
set(IMGUI_VERSION "1.90.4" CACHE STRING "Dear ImGui version")
# Cache revision: increment to force rebuild (current: 2)
# ASAR
set(ASAR_VERSION "main" CACHE STRING "ASAR version")

View File

@@ -58,11 +58,14 @@ set(utf8_range_BUILD_TESTS OFF CACHE BOOL "" FORCE)
set(utf8_range_INSTALL OFF CACHE BOOL "" FORCE)
# Use CPM to fetch gRPC with bundled dependencies
# GIT_SUBMODULES "" disables submodule recursion since gRPC handles its own deps via CMake
CPMAddPackage(
NAME grpc
VERSION ${GRPC_VERSION}
GITHUB_REPOSITORY grpc/grpc
GIT_TAG v${GRPC_VERSION}
GIT_SUBMODULES ""
GIT_SHALLOW TRUE
)
# Check which target naming convention is used
@@ -110,7 +113,6 @@ set(ABSL_TARGETS
absl::str_format
absl::synchronization
absl::time
PARENT_SCOPE
)
# Export gRPC targets for use in other CMake files
@@ -120,7 +122,6 @@ set(YAZE_GRPC_TARGETS
protobuf::libprotobuf
protoc
grpc_cpp_plugin
PARENT_SCOPE
)
message(STATUS "gRPC setup complete - targets available: ${YAZE_GRPC_TARGETS}")
@@ -149,7 +150,6 @@ message(STATUS "Protobuf include dir: ${_gRPC_PROTOBUF_WELLKNOWN_INCLUDE_DIR}")
# Export protobuf targets
set(YAZE_PROTOBUF_TARGETS
protobuf::libprotobuf
PARENT_SCOPE
)
# Function to add protobuf/gRPC code generation to a target

View File

@@ -25,6 +25,9 @@ target_include_directories(ImGui PUBLIC
${IMGUI_DIR}/backends
)
# Set C++ standard requirement (ImGui 1.90+ requires C++11, we use C++17 for consistency)
target_compile_features(ImGui PUBLIC cxx_std_17)
# Link to SDL2
target_link_libraries(ImGui PUBLIC ${YAZE_SDL2_TARGETS})
@@ -52,6 +55,7 @@ if(YAZE_BUILD_TESTS)
${IMGUI_TEST_ENGINE_DIR}
${CMAKE_SOURCE_DIR}/src/lib
)
target_compile_features(ImGuiTestEngine PUBLIC cxx_std_17)
target_link_libraries(ImGuiTestEngine PUBLIC ImGui ${YAZE_SDL2_TARGETS})
target_compile_definitions(ImGuiTestEngine PUBLIC
IMGUI_ENABLE_TEST_ENGINE=1
@@ -63,7 +67,6 @@ if(YAZE_BUILD_TESTS)
endif()
# Export ImGui targets for use in other CMake files
set(YAZE_IMGUI_TARGETS ImGui PARENT_SCOPE)
set(YAZE_IMGUI_TARGETS ImGui)
message(STATUS "Dear ImGui setup complete - YAZE_IMGUI_TARGETS = ${YAZE_IMGUI_TARGETS}")

View File

@@ -96,9 +96,6 @@ elseif(UNIX)
endif()
# Export SDL2 targets for use in other CMake files
# Use PARENT_SCOPE to set in the calling scope (dependencies.cmake)
set(YAZE_SDL2_TARGETS yaze_sdl2 PARENT_SCOPE)
# Also set locally for use in this file
set(YAZE_SDL2_TARGETS yaze_sdl2)
message(STATUS "SDL2 setup complete - YAZE_SDL2_TARGETS = ${YAZE_SDL2_TARGETS}")

View File

@@ -47,7 +47,7 @@ if(YAZE_ENABLE_COVERAGE OR DEFINED ENV{YAZE_ENABLE_BENCHMARKS})
message(FATAL_ERROR "Benchmark target not found after CPM fetch")
endif()
set(YAZE_BENCHMARK_TARGETS benchmark::benchmark PARENT_SCOPE)
set(YAZE_BENCHMARK_TARGETS benchmark::benchmark)
endif()
# Create convenience targets for the rest of the project
@@ -64,7 +64,6 @@ if(TARGET benchmark::benchmark)
endif()
# Export testing targets for use in other CMake files
set(YAZE_TESTING_TARGETS yaze_testing PARENT_SCOPE)
set(YAZE_TESTING_TARGETS yaze_testing)
message(STATUS "Testing dependencies setup complete - GTest + GMock available")

View File

@@ -13,7 +13,7 @@ if(YAZE_USE_SYSTEM_DEPS)
message(STATUS "Using system yaml-cpp")
add_library(yaze_yaml INTERFACE IMPORTED)
target_link_libraries(yaze_yaml INTERFACE yaml-cpp)
set(YAZE_YAML_TARGETS yaze_yaml PARENT_SCOPE)
set(YAZE_YAML_TARGETS yaze_yaml)
return()
endif()
endif()

View File

@@ -1,42 +0,0 @@
# gui libraries ---------------------------------------------------------------
set(IMGUI_PATH ${CMAKE_SOURCE_DIR}/src/lib/imgui)
file(GLOB IMGUI_SOURCES ${IMGUI_PATH}/*.cpp)
set(IMGUI_BACKEND_SOURCES
${IMGUI_PATH}/backends/imgui_impl_sdl2.cpp
${IMGUI_PATH}/backends/imgui_impl_sdlrenderer2.cpp
${IMGUI_PATH}/misc/cpp/imgui_stdlib.cpp
)
add_library("ImGui" STATIC ${IMGUI_SOURCES} ${IMGUI_BACKEND_SOURCES})
target_include_directories("ImGui" PUBLIC ${IMGUI_PATH} ${IMGUI_PATH}/backends)
target_include_directories(ImGui PUBLIC ${SDL2_INCLUDE_DIR})
target_compile_definitions(ImGui PUBLIC
IMGUI_IMPL_OPENGL_LOADER_CUSTOM=<SDL2/SDL_opengl.h> GL_GLEXT_PROTOTYPES=1)
# ImGui Test Engine - Always built when tests are enabled for simplified integration
# The test infrastructure is tightly coupled with the editor, so we always include it
if(YAZE_BUILD_TESTS)
set(IMGUI_TEST_ENGINE_PATH ${CMAKE_SOURCE_DIR}/src/lib/imgui_test_engine/imgui_test_engine)
file(GLOB IMGUI_TEST_ENGINE_SOURCES ${IMGUI_TEST_ENGINE_PATH}/*.cpp)
add_library("ImGuiTestEngine" STATIC ${IMGUI_TEST_ENGINE_SOURCES})
target_include_directories(ImGuiTestEngine PUBLIC ${IMGUI_PATH} ${CMAKE_SOURCE_DIR}/src/lib)
target_link_libraries(ImGuiTestEngine PUBLIC ImGui)
target_compile_definitions(ImGuiTestEngine PUBLIC
IMGUI_ENABLE_TEST_ENGINE=1
IMGUI_TEST_ENGINE_ENABLE_COROUTINE_STDTHREAD_IMPL=1)
message(STATUS "✓ ImGui Test Engine enabled (tests are ON)")
else()
message(STATUS "✗ ImGui Test Engine disabled (tests are OFF)")
endif()
set(
IMGUI_SRC
${IMGUI_PATH}/imgui.cpp
${IMGUI_PATH}/imgui_demo.cpp
${IMGUI_PATH}/imgui_draw.cpp
${IMGUI_PATH}/imgui_widgets.cpp
${IMGUI_PATH}/backends/imgui_impl_sdl2.cpp
${IMGUI_PATH}/backends/imgui_impl_sdlrenderer2.cpp
${IMGUI_PATH}/misc/cpp/imgui_stdlib.cpp
)