feat: enable gRPC in CI builds and update Abseil dependencies
- Updated CI presets for Linux, macOS, and Windows to enable gRPC, improving build performance with caching. - Adjusted Abseil inclusion logic to only include standalone Abseil when gRPC is disabled, ensuring compatibility and reducing unnecessary dependencies. - Enhanced the list of exported Abseil targets from gRPC's bundled version for better utility access. This change aims to streamline CI processes while maintaining the necessary dependencies for successful builds.
This commit is contained in:
@@ -131,45 +131,45 @@
|
||||
"name": "ci-linux",
|
||||
"inherits": "base",
|
||||
"displayName": "CI Build - Linux",
|
||||
"description": "Fast, reliable Linux CI build without gRPC",
|
||||
"description": "CI build with gRPC enabled (uses caching for speed)",
|
||||
"cacheVariables": {
|
||||
"CMAKE_BUILD_TYPE": "RelWithDebInfo",
|
||||
"YAZE_BUILD_TESTS": "ON",
|
||||
"YAZE_ENABLE_GRPC": "OFF",
|
||||
"YAZE_ENABLE_GRPC": "ON",
|
||||
"YAZE_ENABLE_JSON": "ON",
|
||||
"YAZE_ENABLE_AI": "OFF",
|
||||
"YAZE_ENABLE_ROM_TESTS": "OFF",
|
||||
"YAZE_MINIMAL_BUILD": "ON"
|
||||
"YAZE_MINIMAL_BUILD": "OFF"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "ci-macos",
|
||||
"inherits": "base",
|
||||
"displayName": "CI Build - macOS",
|
||||
"description": "Fast, reliable macOS CI build without gRPC",
|
||||
"description": "CI build with gRPC enabled (uses caching for speed)",
|
||||
"cacheVariables": {
|
||||
"CMAKE_BUILD_TYPE": "RelWithDebInfo",
|
||||
"YAZE_BUILD_TESTS": "ON",
|
||||
"YAZE_ENABLE_GRPC": "OFF",
|
||||
"YAZE_ENABLE_GRPC": "ON",
|
||||
"YAZE_ENABLE_JSON": "ON",
|
||||
"YAZE_ENABLE_AI": "OFF",
|
||||
"YAZE_ENABLE_ROM_TESTS": "OFF",
|
||||
"YAZE_MINIMAL_BUILD": "ON"
|
||||
"YAZE_MINIMAL_BUILD": "OFF"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "ci-windows",
|
||||
"inherits": "windows-base",
|
||||
"displayName": "CI Build - Windows",
|
||||
"description": "Fast, reliable Windows CI build without gRPC",
|
||||
"description": "CI build with gRPC enabled (uses MSVC-compatible version 1.67.1)",
|
||||
"cacheVariables": {
|
||||
"CMAKE_BUILD_TYPE": "RelWithDebInfo",
|
||||
"YAZE_BUILD_TESTS": "ON",
|
||||
"YAZE_ENABLE_GRPC": "OFF",
|
||||
"YAZE_ENABLE_GRPC": "ON",
|
||||
"YAZE_ENABLE_JSON": "ON",
|
||||
"YAZE_ENABLE_AI": "OFF",
|
||||
"YAZE_ENABLE_ROM_TESTS": "OFF",
|
||||
"YAZE_MINIMAL_BUILD": "ON"
|
||||
"YAZE_MINIMAL_BUILD": "OFF"
|
||||
}
|
||||
},
|
||||
{
|
||||
|
||||
@@ -30,8 +30,9 @@ include(cmake/dependencies/imgui.cmake)
|
||||
# Debug: message(STATUS "After ImGui setup, YAZE_IMGUI_TARGETS = '${YAZE_IMGUI_TARGETS}'")
|
||||
list(APPEND YAZE_ALL_DEPENDENCIES ${YAZE_IMGUI_TARGETS})
|
||||
|
||||
# Abseil is required for failure_signal_handler and other utilities
|
||||
# Include it always, not just when gRPC is enabled
|
||||
# Abseil is required for failure_signal_handler, status, and other utilities
|
||||
# Only include standalone Abseil when gRPC is disabled - when gRPC is enabled,
|
||||
# it provides its own bundled Abseil via CPM
|
||||
if(NOT YAZE_ENABLE_GRPC)
|
||||
include(cmake/absl.cmake)
|
||||
endif()
|
||||
|
||||
@@ -100,21 +100,46 @@ target_link_libraries(yaze_grpc_deps INTERFACE
|
||||
protobuf::libprotobuf
|
||||
)
|
||||
|
||||
# Export Abseil targets that are commonly used
|
||||
# Export Abseil targets from gRPC's bundled Abseil
|
||||
# When gRPC_ABSL_PROVIDER is "module", gRPC fetches and builds Abseil
|
||||
# All Abseil targets are available, we just need to list them
|
||||
# Note: All targets are available even if not listed here, but listing ensures consistency
|
||||
set(ABSL_TARGETS
|
||||
absl::base
|
||||
absl::config
|
||||
absl::core_headers
|
||||
absl::flags
|
||||
absl::flags_parse
|
||||
absl::status
|
||||
absl::statusor
|
||||
absl::utility
|
||||
absl::memory
|
||||
absl::container_memory
|
||||
absl::strings
|
||||
absl::str_format
|
||||
absl::synchronization
|
||||
absl::cord
|
||||
absl::hash
|
||||
absl::time
|
||||
absl::status
|
||||
absl::statusor
|
||||
absl::flags
|
||||
absl::flags_parse
|
||||
absl::flags_usage
|
||||
absl::flags_commandlineflag
|
||||
absl::flags_marshalling
|
||||
absl::flags_private_handle_accessor
|
||||
absl::flags_program_name
|
||||
absl::flags_config
|
||||
absl::flags_reflection
|
||||
absl::examine_stack
|
||||
absl::stacktrace
|
||||
absl::failure_signal_handler
|
||||
absl::flat_hash_map
|
||||
absl::synchronization
|
||||
absl::symbolize
|
||||
)
|
||||
|
||||
# Only expose absl::int128 when it's supported without warnings
|
||||
if(NOT WIN32)
|
||||
list(APPEND ABSL_TARGETS absl::int128)
|
||||
endif()
|
||||
|
||||
# Export gRPC targets for use in other CMake files
|
||||
set(YAZE_GRPC_TARGETS
|
||||
grpc::grpc++
|
||||
|
||||
Reference in New Issue
Block a user