diff options
| author | Zahir Hussain <zahir.basha@kpit.com> | 2026-02-18 18:37:50 +0530 |
|---|---|---|
| committer | Gyorgy Sarvari <skandigraun@gmail.com> | 2026-02-26 13:36:34 +0100 |
| commit | 33822593e5aed47f619a385579a47c366859408a (patch) | |
| tree | a4914f6e55fa8b9e61db1059ce745edc80030b65 | |
| parent | 631e0ac2f08dc3db4554f9602e7da257929e8107 (diff) | |
| download | meta-openembedded-33822593e5aed47f619a385579a47c366859408a.tar.gz | |
rocksdb: Add an option to set static library
Modify the CMakeLists.txt to add an Option for
STATIC target import, as available for shared library.
Link: https://github.com/facebook/rocksdb/pull/12890
Configure static library as option, default to ON.
Provides option to make it off thru PACKCONFIG, if needed.
Signed-off-by: Bhabu Bindu <bindu.bhabu@kpit.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
(cherry picked from commit 233079a41caded6b68972317f01dc09435ba1ae0)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
(cherry picked from commit 72018ca1b1a471226917e8246e8bbf9a374ccf97)
Signed-off-by: Zahir Hussain <zahir.basha@kpit.com>
Signed-off-by: Gyorgy Sarvari <skandigraun@gmail.com>
| -rw-r--r-- | meta-oe/recipes-dbs/rocksdb/files/static_library_as_option.patch | 72 | ||||
| -rw-r--r-- | meta-oe/recipes-dbs/rocksdb/rocksdb_6.20.3.bb | 4 |
2 files changed, 75 insertions, 1 deletions
diff --git a/meta-oe/recipes-dbs/rocksdb/files/static_library_as_option.patch b/meta-oe/recipes-dbs/rocksdb/files/static_library_as_option.patch new file mode 100644 index 0000000000..09b30681f8 --- /dev/null +++ b/meta-oe/recipes-dbs/rocksdb/files/static_library_as_option.patch | |||
| @@ -0,0 +1,72 @@ | |||
| 1 | From 285d306494bde3e9c24c8cd6fea1eb380a304d03 Mon Sep 17 00:00:00 2001 | ||
| 2 | From: Bindu-Bhabu <bindudaniel1996@gmail.com> | ||
| 3 | Date: Fri, 26 Jul 2024 15:14:45 +0530 | ||
| 4 | Subject: Add option to CMake for building static libraries | ||
| 5 | |||
| 6 | ROCKSDB creates a STATIC library target reference by default. | ||
| 7 | Modify the cmake so that the STATIC library is also an option | ||
| 8 | just like creating a SHARED library and set default to ON. | ||
| 9 | refersh the patch according to kirkstone version. | ||
| 10 | |||
| 11 | Upstream-Status: Submitted [https://github.com/facebook/rocksdb/pull/12890] | ||
| 12 | |||
| 13 | Signed-off-by: Nisha Parrakat <nisha.m.parrakat@bmw.de> | ||
| 14 | Signed-off-by: Bindu Bhabu <bhabu.bindu@kpit.com> | ||
| 15 | Signed-off-by: Zahir Hussain <zahir.basha@kpit.com> | ||
| 16 | --- | ||
| 17 | CMakeLists.txt | 25 +++++++++++++++---------- | ||
| 18 | 1 file changed, 15 insertions(+), 10 deletions(-) | ||
| 19 | |||
| 20 | diff --git a/CMakeLists.txt b/CMakeLists.txt | ||
| 21 | index b68a82b..6f0de6f 100644 | ||
| 22 | --- a/CMakeLists.txt | ||
| 23 | +++ b/CMakeLists.txt | ||
| 24 | @@ -919,6 +919,7 @@ set(ROCKSDB_STATIC_LIB rocksdb${ARTIFACT_SUFFIX}) | ||
| 25 | set(ROCKSDB_SHARED_LIB rocksdb-shared${ARTIFACT_SUFFIX}) | ||
| 26 | |||
| 27 | option(ROCKSDB_BUILD_SHARED "Build shared versions of the RocksDB libraries" ON) | ||
| 28 | +option(ROCKSDB_BUILD_STATIC "Build static versions of the RocksDB libraries" ON) | ||
| 29 | |||
| 30 | option(WITH_LIBRADOS "Build with librados" OFF) | ||
| 31 | if(WITH_LIBRADOS) | ||
| 32 | @@ -938,9 +939,11 @@ else() | ||
| 33 | endif() | ||
| 34 | endif() | ||
| 35 | |||
| 36 | -add_library(${ROCKSDB_STATIC_LIB} STATIC ${SOURCES} ${BUILD_VERSION_CC}) | ||
| 37 | -target_link_libraries(${ROCKSDB_STATIC_LIB} PRIVATE | ||
| 38 | - ${THIRDPARTY_LIBS} ${SYSTEM_LIBS}) | ||
| 39 | +if(ROCKSDB_BUILD_STATIC) | ||
| 40 | + add_library(${ROCKSDB_STATIC_LIB} STATIC ${SOURCES} ${BUILD_VERSION_CC}) | ||
| 41 | + target_link_libraries(${ROCKSDB_STATIC_LIB} PRIVATE | ||
| 42 | + ${THIRDPARTY_LIBS} ${SYSTEM_LIBS}) | ||
| 43 | +endif() | ||
| 44 | |||
| 45 | if(ROCKSDB_BUILD_SHARED) | ||
| 46 | add_library(${ROCKSDB_SHARED_LIB} SHARED ${SOURCES} ${BUILD_VERSION_CC}) | ||
| 47 | @@ -1021,13 +1024,15 @@ if(NOT WIN32 OR ROCKSDB_INSTALL_ON_WINDOWS) | ||
| 48 | |||
| 49 | install(DIRECTORY "${PROJECT_SOURCE_DIR}/cmake/modules" COMPONENT devel DESTINATION ${package_config_destination}) | ||
| 50 | |||
| 51 | - install( | ||
| 52 | - TARGETS ${ROCKSDB_STATIC_LIB} | ||
| 53 | - EXPORT RocksDBTargets | ||
| 54 | - COMPONENT devel | ||
| 55 | - ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}" | ||
| 56 | - INCLUDES DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}" | ||
| 57 | - ) | ||
| 58 | + if(ROCKSDB_BUILD_STATIC) | ||
| 59 | + install( | ||
| 60 | + TARGETS ${ROCKSDB_STATIC_LIB} | ||
| 61 | + EXPORT RocksDBTargets | ||
| 62 | + COMPONENT devel | ||
| 63 | + ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}" | ||
| 64 | + INCLUDES DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}" | ||
| 65 | + ) | ||
| 66 | + endif() | ||
| 67 | |||
| 68 | if(ROCKSDB_BUILD_SHARED) | ||
| 69 | install( | ||
| 70 | -- | ||
| 71 | 2.34.1 | ||
| 72 | |||
diff --git a/meta-oe/recipes-dbs/rocksdb/rocksdb_6.20.3.bb b/meta-oe/recipes-dbs/rocksdb/rocksdb_6.20.3.bb index 8164f856e2..7bfe157c1f 100644 --- a/meta-oe/recipes-dbs/rocksdb/rocksdb_6.20.3.bb +++ b/meta-oe/recipes-dbs/rocksdb/rocksdb_6.20.3.bb | |||
| @@ -19,6 +19,7 @@ SRC_URI = "git://github.com/facebook/${BPN}.git;branch=${SRCBRANCH};protocol=htt | |||
| 19 | file://mips.patch \ | 19 | file://mips.patch \ |
| 20 | file://arm.patch \ | 20 | file://arm.patch \ |
| 21 | file://run-ptest \ | 21 | file://run-ptest \ |
| 22 | file://static_library_as_option.patch \ | ||
| 22 | " | 23 | " |
| 23 | 24 | ||
| 24 | SRC_URI:append:riscv32 = " file://0001-replace-old-sync-with-new-atomic-builtin-equivalents.patch" | 25 | SRC_URI:append:riscv32 = " file://0001-replace-old-sync-with-new-atomic-builtin-equivalents.patch" |
| @@ -30,13 +31,14 @@ S = "${WORKDIR}/git" | |||
| 30 | 31 | ||
| 31 | inherit cmake ptest | 32 | inherit cmake ptest |
| 32 | 33 | ||
| 33 | PACKAGECONFIG ??= "bzip2 zlib lz4 gflags" | 34 | PACKAGECONFIG ??= "bzip2 zlib lz4 gflagsi rocksdb_static" |
| 34 | PACKAGECONFIG[bzip2] = "-DWITH_BZ2=ON,-DWITH_BZ2=OFF,bzip2" | 35 | PACKAGECONFIG[bzip2] = "-DWITH_BZ2=ON,-DWITH_BZ2=OFF,bzip2" |
| 35 | PACKAGECONFIG[lz4] = "-DWITH_LZ4=ON,-DWITH_LZ4=OFF,lz4" | 36 | PACKAGECONFIG[lz4] = "-DWITH_LZ4=ON,-DWITH_LZ4=OFF,lz4" |
| 36 | PACKAGECONFIG[zlib] = "-DWITH_ZLIB=ON,-DWITH_ZLIB=OFF,zlib" | 37 | PACKAGECONFIG[zlib] = "-DWITH_ZLIB=ON,-DWITH_ZLIB=OFF,zlib" |
| 37 | PACKAGECONFIG[zstd] = "-DWITH_ZSTD=ON,-DWITH_ZSTD=OFF,zstd" | 38 | PACKAGECONFIG[zstd] = "-DWITH_ZSTD=ON,-DWITH_ZSTD=OFF,zstd" |
| 38 | PACKAGECONFIG[lite] = "-DROCKSDB_LITE=ON,-DROCKSDB_LITE=OFF" | 39 | PACKAGECONFIG[lite] = "-DROCKSDB_LITE=ON,-DROCKSDB_LITE=OFF" |
| 39 | PACKAGECONFIG[gflags] = "-DWITH_GFLAGS=ON,-DWITH_GFLAGS=OFF,gflags" | 40 | PACKAGECONFIG[gflags] = "-DWITH_GFLAGS=ON,-DWITH_GFLAGS=OFF,gflags" |
| 41 | PACKAGECONFIG[rocksdb_static] = "-DROCKSDB_BUILD_STATIC=ON, -DROCKSDB_BUILD_STATIC=OFF" | ||
| 40 | 42 | ||
| 41 | # Tools and tests currently don't compile on armv5 so we disable them | 43 | # Tools and tests currently don't compile on armv5 so we disable them |
| 42 | EXTRA_OECMAKE = "\ | 44 | EXTRA_OECMAKE = "\ |
