@@ -63,20 +63,34 @@ if (VIAMCPPSDK_USE_DYNAMIC_PROTOS)
6363 #
6464 find_program (BUF_COMMAND buf)
6565 if (NOT BUF_COMMAND)
66+
67+ set (HOST_SYSTEM_PROCESSOR_FOR_BUF_DOWNLOAD ${CMAKE_HOST_SYSTEM_PROCESSOR} )
68+ if (CMAKE_HOST_WIN32 )
69+ if (HOST_SYSTEM_PROCESSOR_FOR_BUF_DOWNLOAD STREQUAL "AMD64" )
70+ set (HOST_SYSTEM_PROCESSOR_FOR_BUF_DOWNLOAD x86_64)
71+ elseif (HOST_SYSTEM_PROCESSOR_FOR_BUF_DOWNLOAD STREQUAL "ARM64" )
72+ set (HOST_SYSTEM_PROCESSOR_FOR_BUF_DOWNLOAD arm64)
73+ else ()
74+ message (FATAL_ERROR "Unknown Windows platform to correct buf download URL: ${HOST_SYSTEM_PROCESSOR_FOR_BUF_DOWNLOAD} " )
75+ endif ()
76+ endif ()
77+
78+ set (BUF_DOWNLOAD_URL https://github.com/bufbuild/buf/releases/latest/download/buf-${CMAKE_HOST_SYSTEM_NAME} -${HOST_SYSTEM_PROCESSOR_FOR_BUF_DOWNLOAD}${CMAKE_HOST_EXECUTABLE_SUFFIX} )
79+
6680 file (
6781 DOWNLOAD
68- https://github.com/bufbuild/buf/releases/latest/download/buf- ${CMAKE_HOST_SYSTEM_NAME} - ${CMAKE_HOST_SYSTEM_PROCESSOR }
69- ${CMAKE_CURRENT_BINARY_DIR} /buf_latest
82+ ${BUF_DOWNLOAD_URL }
83+ ${CMAKE_CURRENT_BINARY_DIR} /buf_latest${CMAKE_HOST_EXECUTABLE_SUFFIX}
7084 STATUS buf_status
7185 )
7286 list (GET buf_status 0 buf_status_code)
7387 list (GET buf_status 1 buf_status_string)
7488
7589 if (NOT buf_status_code EQUAL 0)
76- message (FATAL_ERROR "No local `buf` program found (try setting PATH?) and failed to download: ${buf_status_string} " )
90+ message (FATAL_ERROR "No local `buf` program found (try setting PATH?) and failed to download: ${buf_status_string} for ${BUF_DOWNLOAD_URL} " )
7791 endif ()
7892
79- set (BUF_COMMAND ${CMAKE_CURRENT_BINARY_DIR} /buf_latest)
93+ set (BUF_COMMAND ${CMAKE_CURRENT_BINARY_DIR} /buf_latest${CMAKE_HOST_EXECUTABLE_SUFFIX} )
8094 file (CHMOD ${BUF_COMMAND} PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE)
8195 endif ()
8296
@@ -116,7 +130,7 @@ if (VIAMCPPSDK_USE_DYNAMIC_PROTOS)
116130 # List of names of non-compilable generated code
117131 # The Switch component generates protobuf which uses `switch` as a namespace.
118132 # This needs to be processed below.
119- set (VIAMCPPSDK_SWITCH_REPLACE_PATHS
133+ set (VIAMCPPSDK_SWITCH_REPLACE_PATHS
120134 ${PROTO_GEN_DIR} /component /switch/v1/switch.grpc.pb.cc
121135 ${PROTO_GEN_DIR} /component /switch/v1/switch.grpc.pb.h
122136 ${PROTO_GEN_DIR} /component /switch/v1/switch.pb.cc
@@ -261,7 +275,7 @@ if (VIAMCPPSDK_USE_DYNAMIC_PROTOS)
261275 COMMAND ${BUF_COMMAND} generate ${BUF_VIAM_API_SOURCE} --template buf.gen.yaml --path ${BUF_PROTO_COMPONENTS_JOINED}
262276
263277 # 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
278+ COMMAND ${CMAKE_COMMAND} "-DSWITCH_REPLACE_PATHS=\" ${VIAMCPPSDK_SWITCH_REPLACE_PATHS} \" " -P ${CMAKE_CURRENT_SOURCE_DIR} /viamcppsdk_replace_switch.cmake
265279 MAIN_DEPENDENCY buf.gen.yaml
266280 )
267281
0 commit comments