xref: /OK3568_Linux_fs/yocto/meta-openembedded/meta-oe/recipes-dbs/rocksdb/rocksdb_6.20.3.bb (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1SUMMARY = "RocksDB an embeddable, persistent key-value store"
2DESCRIPTION = "RocksDB is library that provides an embeddable, persistent key-value store for fast storage."
3HOMEPAGE = "http://rocksdb.org/"
4LICENSE = "(Apache-2.0 | GPL-2.0-only) & BSD-3-Clause"
5LIC_FILES_CHKSUM = "file://LICENSE.Apache;md5=3b83ef96387f14655fc854ddc3c6bd57 \
6                    file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
7                    file://LICENSE.leveldb;md5=fb04ff57a14f308f2eed4a9b87d45837"
8
9SRCREV = "8608d75d85f8e1b3b64b73a4fb6d19baec61ba5c"
10SRCBRANCH = "6.20.fb"
11
12SRC_URI = "git://github.com/facebook/${BPN}.git;branch=${SRCBRANCH};protocol=https \
13           file://0001-cmake-Add-check-for-atomic-support.patch \
14           file://0001-cmake-Use-exported-target-for-bz2.patch \
15           file://0001-folly-Use-SYS_futex-for-syscall.patch \
16           file://0001-jemalloc_helper-Limit-the-mm_malloc.h-hack-to-glibc-.patch \
17           file://0001-range_tree-Implement-toku_time_now-for-rv32-rv64-in-.patch \
18           file://ppc64.patch \
19           file://mips.patch \
20           file://arm.patch \
21          "
22
23SRC_URI:append:riscv32 = " file://0001-replace-old-sync-with-new-atomic-builtin-equivalents.patch"
24SRC_URI:append:mips = " file://0001-replace-old-sync-with-new-atomic-builtin-equivalents.patch"
25SRC_URI:append:powerpc = " file://0001-replace-old-sync-with-new-atomic-builtin-equivalents.patch"
26SRC_URI:remove:toolchain-clang:riscv32 = "file://0001-replace-old-sync-with-new-atomic-builtin-equivalents.patch"
27
28S = "${WORKDIR}/git"
29
30inherit cmake
31
32PACKAGECONFIG ??= "bzip2 zlib lz4 gflags"
33PACKAGECONFIG[bzip2] = "-DWITH_BZ2=ON,-DWITH_BZ2=OFF,bzip2"
34PACKAGECONFIG[lz4] = "-DWITH_LZ4=ON,-DWITH_LZ4=OFF,lz4"
35PACKAGECONFIG[zlib] = "-DWITH_ZLIB=ON,-DWITH_ZLIB=OFF,zlib"
36PACKAGECONFIG[zstd] = "-DWITH_ZSTD=ON,-DWITH_ZSTD=OFF,zstd"
37PACKAGECONFIG[lite] = "-DROCKSDB_LITE=ON,-DROCKSDB_LITE=OFF"
38PACKAGECONFIG[gflags] = "-DWITH_GFLAGS=ON,-DWITH_GFLAGS=OFF,gflags"
39
40# Tools and tests currently don't compile on armv5 so we disable them
41EXTRA_OECMAKE = "\
42    -DPORTABLE=ON \
43    -DWITH_TESTS=OFF \
44    -DWITH_BENCHMARK_TOOLS=OFF \
45    -DWITH_TOOLS=OFF \
46    -DFAIL_ON_WARNINGS=OFF \
47"
48
49do_install:append() {
50    # fix for qa check buildpaths
51    sed -i "s#${RECIPE_SYSROOT}##g" ${D}${libdir}/cmake/rocksdb/RocksDBTargets.cmake
52}
53
54LDFLAGS:append:riscv64 = " -pthread"
55
56# Need toku_time_now() implemented for ppc/musl
57# see utilities/transactions/lock/range/range_tree/lib/portability/toku_time.h
58COMPATIBLE_HOST:libc-musl:powerpc = "null"
59