milvus/internal/core/conanfile.py

100 lines
3.1 KiB
Python
Raw Normal View History

from conans import ConanFile
class MilvusConan(ConanFile):
keep_imports = True
settings = "os", "compiler", "build_type", "arch"
requires = (
"rocksdb/6.29.5@milvus/dev",
"boost/1.82.0",
"onetbb/2021.9.0",
"nlohmann_json/3.11.2",
"zstd/1.5.4",
"lz4/1.9.4",
"snappy/1.1.9",
"lzo/2.10",
"arrow/15.0.0",
"openssl/3.1.2",
"aws-sdk-cpp/1.9.234",
"googleapis/cci.20221108",
"benchmark/1.7.0",
"gtest/1.13.0",
"protobuf/3.21.4",
"rapidxml/1.13",
"yaml-cpp/0.7.0",
"marisa/0.2.6",
"zlib/1.2.13",
"libcurl/7.86.0",
"glog/0.6.0",
"fmt/9.1.0",
"gflags/2.2.2",
"double-conversion/3.2.1",
"libevent/2.1.12",
"libdwarf/20191104",
"libiberty/9.1.0",
"libsodium/cci.20220430",
"xsimd/9.0.1",
"xz_utils/5.4.0",
"prometheus-cpp/1.1.0",
"re2/20230301",
"folly/2023.10.30.08@milvus/dev",
"google-cloud-cpp/2.5.0@milvus/2.4#b8dda0943d40adee69d7adc5fafc317d",
"opentelemetry-cpp/1.8.3@milvus/2.4#3b8139532791a163c8ff2819c55eb4ac",
"librdkafka/1.9.1",
"abseil/20230125.3",
"grpc/1.54.3@milvus/dev#5dfb5e1477b22c6d1e6d6b90ab5501d8",
)
generators = ("cmake", "cmake_find_package")
default_options = {
"libevent:shared": True,
"double-conversion:shared": True,
"folly:shared": True,
"librdkafka:shared": True,
"librdkafka:zstd": True,
"librdkafka:ssl": True,
"librdkafka:sasl": True,
"rocksdb:shared": True,
"rocksdb:with_zstd": True,
"arrow:filesystem_layer": True,
"arrow:parquet": True,
"arrow:compute": True,
"arrow:with_re2": True,
"arrow:with_zstd": True,
"arrow:with_boost": True,
"arrow:with_thrift": True,
"arrow:with_jemalloc": True,
"arrow:shared": False,
"arrow:with_s3": True,
"aws-sdk-cpp:config": True,
"aws-sdk-cpp:text-to-speech": False,
"aws-sdk-cpp:transfer": False,
"gtest:build_gmock": False,
"boost:without_locale": False,
"glog:with_gflags": True,
"glog:shared": True,
"prometheus-cpp:with_pull": False,
"fmt:header_only": True,
"onetbb:tbbmalloc": False,
"onetbb:tbbproxy": False,
"grpc:shared": True,
}
def configure(self):
if self.settings.arch not in ("x86_64", "x86"):
del self.options["folly"].use_sse4_2
if self.settings.os == "Macos":
# By default abseil use static link but can not be compatible with macos X86
self.options["abseil"].shared = True
self.options["arrow"].with_jemalloc = False
def requirements(self):
if self.settings.os != "Macos":
self.requires("libunwind/1.7.2")
def imports(self):
self.copy("*.dylib", "../lib", "lib")
self.copy("*.dll", "../lib", "lib")
self.copy("*.so*", "../lib", "lib")
self.copy("*", "../bin", "bin")
self.copy("*.proto", "../include", "include")