66from conan .tools .files import copy , get , replace_in_file
77from conan .tools .gnu import PkgConfigDeps
88from conan .tools .microsoft import is_msvc , msvc_runtime_flag
9+ from conan .tools .system .package_manager import Brew
910
1011
1112required_conan_version = ">=2.0"
@@ -34,34 +35,49 @@ class MilvusCommonConan(ConanFile):
3435 "openblas/*:use_openmp" : True ,
3536 "opentelemetry-cpp/*:with_stl" : True ,
3637 "openssl/*:shared" : True ,
38+ "openssl/*:no_apps" : True ,
3739 "prometheus-cpp/*:with_pull" : False ,
3840 "with_ut" : False ,
3941 "with_asan" : False ,
4042 }
4143
4244 @property
4345 def _minimum_cpp_standard (self ):
44- return 17
46+ return 20
4547
4648 def validate (self ):
4749 check_min_cppstd (self , self ._minimum_cpp_standard )
4850
49- def requirements (self ):
51+ def system_requirements (self ):
52+ if self .settings .os == "Macos" :
53+ Brew (self ).install (["libomp" ])
54+
55+ def build_requirements (self ):
5056 if self .options .with_ut :
51- self .requires ("gtest/1.15.0" , visible = False )
52- self .requires ("glog/0.7.1" , transitive_headers = True , transitive_libs = True )
53- self .requires ("fmt/11.0.2" , transitive_headers = True , transitive_libs = True )
54- self .requires ("prometheus-cpp/1.2.4" , transitive_headers = True , transitive_libs = True )
55- self .requires ("gflags/2.2.2" , transitive_headers = True , transitive_libs = True )
56- self .requires ("opentelemetry-cpp/1.23.0@milvus/dev" , transitive_headers = True , transitive_libs = True )
57- self .requires ("folly/2024.08.12.00@milvus/dev" , transitive_headers = True , transitive_libs = True )
58- self .requires ("protobuf/5.27.0@milvus/dev" , override = True )
59- self .requires ("lz4/1.9.4" , override = True )
60- self .requires ("openssl/3.3.2" , override = True )
61- self .requires ("libcurl/8.10.1" , override = True )
62- self .requires ("nlohmann_json/3.11.3" , force = True )
57+ self .test_requires ("gtest/1.15.0" )
58+
59+ def requirements (self ):
60+ self .requires ("glog/0.7.1#a306e61d7b8311db8cb148ad62c48030" , transitive_headers = True , transitive_libs = True )
61+ self .requires ("fmt/11.2.0#eb98daa559c7c59d591f4720dde4cd5c" , transitive_headers = True , transitive_libs = True , force = True )
62+ self .requires ("prometheus-cpp/1.2.4#0918d66c13f97acb7809759f9de49b3f" , transitive_headers = True , transitive_libs = True )
63+ self .requires ("gflags/2.2.2#7671803f1dc19354cc90bd32874dcfda" , transitive_headers = False , transitive_libs = False )
64+ self .requires ("opentelemetry-cpp/1.23.0@milvus/dev#11bc565ec6e82910ae8f7471da756720" , transitive_headers = True , transitive_libs = True )
65+ self .requires ("folly/2026.04.20.00@milvus/dev#06852bea5b6449f0c4eb0df002b5779c" , transitive_headers = True , transitive_libs = True )
66+ self .requires ("grpc/1.67.1@milvus/dev#efeaa484b59bffaa579004d5e82ec4fd" , transitive_headers = False , transitive_libs = False , override = True )
67+ self .requires ("abseil/20250127.0#481edcc75deb0efb16500f511f0f0a1c" , transitive_headers = False , transitive_libs = False , override = True )
68+ self .requires ("xz_utils/5.4.5#fc4e36861e0a47ecd4a40a00e6d29ac8" , transitive_headers = False , transitive_libs = False , override = True )
69+ self .requires ("zlib/1.3.1#8045430172a5f8d56ba001b14561b4ea" , transitive_headers = False , transitive_libs = False , override = True )
70+ self .requires ("libevent/2.1.12#95065aaefcd58d3956d6dfbfc5631d97" , transitive_headers = False , transitive_libs = False , override = True )
71+ self .requires ("boost/1.83.0#4e8a94ac1b88312af95eded83cd81ca8" , transitive_headers = True , transitive_libs = False )
72+ self .requires ("protobuf/5.27.0@milvus/dev#42f031a96d21c230a6e05bcac4bdd633" , transitive_headers = False , transitive_libs = False , force = True , override = True )
73+ self .requires ("lz4/1.9.4#7f0b5851453198536c14354ee30ca9ae" , transitive_headers = False , transitive_libs = False , force = True , override = True )
74+ self .requires ("openssl/3.3.2#9f9f130d58e7c13e76bb8a559f0a6a8b" , transitive_headers = False , transitive_libs = False , force = True , override = True )
75+ self .requires ("libcurl/8.10.1#a3113369c86086b0e84231844e7ed0a9" , transitive_headers = False , transitive_libs = False , force = True , override = True )
76+ self .requires ("nlohmann_json/3.11.3#ffb9e9236619f1c883e36662f944345d" , transitive_headers = False , transitive_libs = False , force = True )
6377 if self .settings .os != "Macos" :
64- self .requires ("openblas/0.3.30" , transitive_headers = True , transitive_libs = True )
78+ self .requires ("libunwind/1.8.1#748a981ace010b80163a08867b732e71" , transitive_headers = False , transitive_libs = False , override = True )
79+ if self .settings .os == "Linux" :
80+ self .requires ("openblas/0.3.30" , transitive_headers = True , transitive_libs = False )
6581
6682 def layout (self ):
6783 cmake_layout (self , src_folder = "src" )
@@ -127,6 +143,7 @@ def package_info(self):
127143 self .cpp_info .libs = ["milvus-common" ]
128144 self .cpp_info .defines = ["OPENTELEMETRY_STL_VERSION=2017" ]
129145 self .cpp_info .requires = [
146+ "boost::headers" ,
130147 "opentelemetry-cpp::opentelemetry_trace" ,
131148 "opentelemetry-cpp::opentelemetry_exporter_ostream_span" ,
132149 "opentelemetry-cpp::opentelemetry_exporter_otlp_http" ,
@@ -138,7 +155,7 @@ def package_info(self):
138155 "prometheus-cpp::prometheus-cpp-core" ,
139156 "prometheus-cpp::prometheus-cpp-push" ,
140157 ]
141- if self .dependencies ["opentelemetry-cpp" ].options .with_otlp_grpc :
158+ if self .dependencies ["opentelemetry-cpp" ].options .get_safe ( " with_otlp_grpc" ) :
142159 self .cpp_info .requires .append ("opentelemetry-cpp::opentelemetry_exporter_otlp_grpc" )
143160 self .cpp_info .defines .append ("HAVE_OTLP_GRPC_EXPORTER" )
144161 if self .settings .os == "Linux" :
0 commit comments