@@ -42,19 +42,31 @@ def configure(self):
4242 for lib in ["grpc" , "protobuf" , "abseil" ]:
4343 self .options [lib ].shared = True
4444
45+ def _xtensor_requires (self ):
46+ if self .settings .compiler .cppstd in ["14" , "gnu14" ]:
47+ return 'xtensor/[>=0.24.3 <0.26.0]'
48+
49+ return 'xtensor/[>=0.24.3]'
50+
51+ def _grpc_requires (self ):
52+ if self .settings .compiler .cppstd in ["14" , "gnu14" ]:
53+ return 'grpc/[>=1.48.4 <1.70.0]'
54+
55+ return 'grpc/[>=1.48.4]'
56+
4557 def requirements (self ):
4658 self .requires ('boost/[>=1.74.0]' , transitive_headers = True )
4759
4860 # The SDK supports older grpc and protobuf, but these are the oldest
4961 # maintained conan packages.
50- self .requires ('grpc/[>=1.48.4]' )
51- self .requires ('protobuf/[>=3.17.1]' )
52- self .requires ('xtensor/[>=0.24.3]' , transitive_headers = True )
62+ self .requires (self . _grpc_requires () )
63+ self .requires ('protobuf/[>=3.17.1 <6.30.0 ]' )
64+ self .requires (self . _xtensor_requires () , transitive_headers = True )
5365
5466 def build_requirements (self ):
5567 if self .options .offline_proto_generation :
56- self .tool_requires ('grpc/[>=1.48.4]' )
57- self .tool_requires ('protobuf/[>=3.17.1]' )
68+ self .tool_requires (self . _grpc_requires () )
69+ self .tool_requires ('protobuf/[>=3.17.1 <6.30.0 ]' )
5870
5971 def layout (self ):
6072 cmake_layout (self )
@@ -91,10 +103,7 @@ def package(self):
91103
92104 def package_info (self ):
93105
94- # TODO(RSDK-10366): Currently, rust_utils is not published for windows
95- # and the C++ SDK just doesn't include it as a dependency on that platform
96- if not self .settings .os == "Windows" :
97- self .cpp_info .components ["viam_rust_utils" ].libs = ["viam_rust_utils" ]
106+ self .cpp_info .components ["viam_rust_utils" ].libs = ["viam_rust_utils" ]
98107
99108 self .cpp_info .components ["viamsdk" ].libs = ["viamsdk" ]
100109
@@ -137,11 +146,8 @@ def package_info(self):
137146 "viamapi" ,
138147 ])
139148
140- # TODO(RSDK-10366): Currently, rust_utils is not published for windows
141- # and the C++ SDK just doesn't include it as a dependency on that platform
142- if self .settings .os != "Windows" :
143- self .cpp_info .components ["viamsdk" ].requires .extend ([
144- "viam_rust_utils"
145- ])
149+ self .cpp_info .components ["viamsdk" ].requires .extend ([
150+ "viam_rust_utils"
151+ ])
146152
147153 self .cpp_info .components ["viamsdk" ].frameworks = ["Security" ]
0 commit comments