@@ -113,6 +113,16 @@ if (VIAMCPPSDK_USE_DYNAMIC_PROTOS)
113113 )
114114 endif ()
115115
116+ # List of names of non-compilable generated code
117+ # The Switch component generates protobuf which uses `switch` as a namespace.
118+ # This needs to be processed below.
119+ set (VIAMCPPSDK_SWITCH_REPLACE_PATHS
120+ ${PROTO_GEN_DIR} /component /switch/v1/switch.grpc.pb.cc
121+ ${PROTO_GEN_DIR} /component /switch/v1/switch.grpc.pb.h
122+ ${PROTO_GEN_DIR} /component /switch/v1/switch.pb.cc
123+ ${PROTO_GEN_DIR} /component /switch/v1/switch.pb.h
124+ )
125+
116126 add_custom_command (
117127 OUTPUT
118128 # Unfortunately, there isn't a good way to know in advance what
@@ -201,6 +211,10 @@ if (VIAMCPPSDK_USE_DYNAMIC_PROTOS)
201211 ${PROTO_GEN_DIR} /component /servo/v1/servo.grpc.pb.h
202212 ${PROTO_GEN_DIR} /component /servo/v1/servo.pb.cc
203213 ${PROTO_GEN_DIR} /component /servo/v1/servo.pb.h
214+ ${PROTO_GEN_DIR} /component /switch/v1/switch.grpc.pb.cc
215+ ${PROTO_GEN_DIR} /component /switch/v1/switch.grpc.pb.h
216+ ${PROTO_GEN_DIR} /component /switch/v1/switch.pb.cc
217+ ${PROTO_GEN_DIR} /component /switch/v1/switch.pb.h
204218 ${PROTO_GEN_DIR} /google/api/annotations.pb.cc
205219 ${PROTO_GEN_DIR} /google/api/annotations.pb.h
206220 ${PROTO_GEN_DIR} /google/api/httpbody.pb.cc
@@ -245,6 +259,9 @@ if (VIAMCPPSDK_USE_DYNAMIC_PROTOS)
245259 COMMAND ${BUF_COMMAND} generate ${BUF_GOOGLE_API_SOURCE} --template buf.gen.yaml --path google/rpc --path google/api
246260 COMMAND ${BUF_COMMAND} generate ${BUF_VIAM_GOUTILS_SOURCE} --template buf.gen.yaml
247261 COMMAND ${BUF_COMMAND} generate ${BUF_VIAM_API_SOURCE} --template buf.gen.yaml --path ${BUF_PROTO_COMPONENTS_JOINED}
262+
263+ # After generating the protos, include a step to invoke a search-and-replace for switch -> switch_ in the Switch component files
264+ COMMAND ${CMAKE_COMMAND} "-DSWITCH_REPLACE_PATHS=\" ${VIAMCPPSDK_SWITCH_REPLACE_PATHS} \" " -P ${CMAKE_CURRENT_SOURCE_DIR} /viamcppsdk_replace_switch.cmake
248265 MAIN_DEPENDENCY buf.gen.yaml
249266 )
250267
@@ -328,6 +345,8 @@ target_sources(viamapi
328345 ${PROTO_GEN_DIR} /component /sensor/v1/sensor.pb.cc
329346 ${PROTO_GEN_DIR} /component /servo/v1/servo.grpc.pb.cc
330347 ${PROTO_GEN_DIR} /component /servo/v1/servo.pb.cc
348+ ${PROTO_GEN_DIR} /component /switch/v1/switch.grpc.pb.cc
349+ ${PROTO_GEN_DIR} /component /switch/v1/switch.pb.cc
331350 ${PROTO_GEN_DIR} /google/api/annotations.pb.cc
332351 ${PROTO_GEN_DIR} /google/api/http.pb.cc
333352 ${PROTO_GEN_DIR} /google/api/httpbody.pb.cc
@@ -390,6 +409,8 @@ target_sources(viamapi
390409 ${PROTO_GEN_DIR} /../../viam/api/component /sensor/v1/sensor.pb.h
391410 ${PROTO_GEN_DIR} /../../viam/api/component /servo/v1/servo.grpc.pb.h
392411 ${PROTO_GEN_DIR} /../../viam/api/component /servo/v1/servo.pb.h
412+ ${PROTO_GEN_DIR} /../../viam/api/component /switch/v1/switch.grpc.pb.h
413+ ${PROTO_GEN_DIR} /../../viam/api/component /switch/v1/switch.pb.h
393414 ${PROTO_GEN_DIR} /../../viam/api/google/api/annotations.pb.h
394415 ${PROTO_GEN_DIR} /../../viam/api/google/api/http.pb.h
395416 ${PROTO_GEN_DIR} /../../viam/api/google/api/httpbody.pb.h
0 commit comments