diff --git a/CMakeLists.txt b/CMakeLists.txt index db7af05f..fa71f68f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -76,6 +76,17 @@ else() message(STATUS "✓ All features enabled: JSON, gRPC, AI Agent") endif() +# Define preprocessor macros for feature flags (so #ifdef works in source code) +if(YAZE_WITH_GRPC) + add_compile_definitions(YAZE_WITH_GRPC) +endif() +if(YAZE_WITH_JSON) + add_compile_definitions(YAZE_WITH_JSON) +endif() +if(Z3ED_AI) + add_compile_definitions(Z3ED_AI) +endif() + option(YAZE_SUPPRESS_WARNINGS "Suppress compiler warnings (use -v preset suffix for verbose)" ON) set(YAZE_TEST_ROM_PATH "${CMAKE_BINARY_DIR}/bin/zelda3.sfc" CACHE STRING "Path to test ROM file") diff --git a/src/cli/agent.cmake b/src/cli/agent.cmake index 8b2d40ef..60d18359 100644 --- a/src/cli/agent.cmake +++ b/src/cli/agent.cmake @@ -1,9 +1,7 @@ set(YAZE_AGENT_SOURCES cli/service/agent/proposal_executor.cc cli/handlers/agent/todo_commands.cc - cli/service/agent/agent_control_server.cc cli/service/agent/conversational_agent_service.cc - cli/service/agent/emulator_service_impl.cc cli/service/agent/simple_chat_session.cc cli/service/agent/enhanced_tui.cc cli/service/agent/tool_dispatcher.cc @@ -53,6 +51,14 @@ set(YAZE_AGENT_SOURCES cli/service/rom/rom_sandbox_manager.cc ) +# gRPC-dependent sources (only added when gRPC is enabled) +if(YAZE_WITH_GRPC) + list(APPEND YAZE_AGENT_SOURCES + cli/service/agent/agent_control_server.cc + cli/service/agent/emulator_service_impl.cc + ) +endif() + if(YAZE_WITH_JSON) list(APPEND YAZE_AGENT_SOURCES cli/service/ai/gemini_ai_service.cc) endif() @@ -121,6 +127,9 @@ if(YAZE_WITH_GRPC) grpc++_reflection libprotobuf ) + + # Note: YAZE_WITH_GRPC is defined globally via add_compile_definitions in root CMakeLists.txt + # This ensures #ifdef YAZE_WITH_GRPC works in all translation units message(STATUS "✓ gRPC GUI automation enabled for yaze_agent") endif()