summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNikhil R <nikhil.r@kpit.com>2024-08-09 16:36:19 +0530
committerKhem Raj <raj.khem@gmail.com>2024-08-10 15:57:45 -0700
commit233079a41caded6b68972317f01dc09435ba1ae0 (patch)
tree844c420e453fe64176729a48bda296c42cb62ece
parent8a8bc59ff6826243a3ef037f9df3c5da56d4aa50 (diff)
downloadmeta-openembedded-233079a41caded6b68972317f01dc09435ba1ae0.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 default to switched off as shared libraries are sufficient in most cases. Signed-off-by: Bhabu Bindu <bindu.bhabu@kpit.com> Signed-off-by: Khem Raj <raj.khem@gmail.com>
-rw-r--r--meta-oe/recipes-dbs/rocksdb/files/static_library_as_option.patch71
-rw-r--r--meta-oe/recipes-dbs/rocksdb/rocksdb_9.0.0.bb2
2 files changed, 73 insertions, 0 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..9a85e8db45
--- /dev/null
+++ b/meta-oe/recipes-dbs/rocksdb/files/static_library_as_option.patch
@@ -0,0 +1,71 @@
1From 285d306494bde3e9c24c8cd6fea1eb380a304d03 Mon Sep 17 00:00:00 2001
2From: Bindu-Bhabu <bindudaniel1996@gmail.com>
3Date: Fri, 26 Jul 2024 15:14:45 +0530
4Subject: Add option to CMake for building static libraries
5
6ROCKSDB creates a STATIC library target reference by default.
7Modify the cmake so that the STATIC library is also an option
8just like creating a SHARED library and set default to ON.
9
10Upstream-Status: Submitted [https://github.com/facebook/rocksdb/pull/12890]
11
12Signed-off-by: Nisha Parrakat <nisha.m.parrakat@bmw.de>
13Signed-off-by: Bindu Bhabu <bhabu.bindu@kpit.com>
14---
15 CMakeLists.txt | 29 +++++++++++++++++------------
16 1 file changed, 17 insertions(+), 12 deletions(-)
17
18diff --git a/CMakeLists.txt b/CMakeLists.txt
19index 93b884dd9c1..2ca925d505c 100644
20--- a/CMakeLists.txt
21+++ b/CMakeLists.txt
22@@ -98,6 +98,7 @@ if (WITH_WINDOWS_UTF8_FILENAMES)
23 add_definitions(-DROCKSDB_WINDOWS_UTF8_FILENAMES)
24 endif()
25 option(ROCKSDB_BUILD_SHARED "Build shared versions of the RocksDB libraries" ON)
26+option(ROCKSDB_BUILD_STATIC "Build static versions of the RocksDB libraries" ON)
27
28 if( NOT DEFINED CMAKE_CXX_STANDARD )
29 set(CMAKE_CXX_STANDARD 17)
30@@ -1139,11 +1140,13 @@ string(REGEX REPLACE "[^0-9: /-]+" "" GIT_DATE "${GIT_DATE}")
31 set(BUILD_VERSION_CC ${CMAKE_BINARY_DIR}/build_version.cc)
32 configure_file(util/build_version.cc.in ${BUILD_VERSION_CC} @ONLY)
33
34-add_library(${ROCKSDB_STATIC_LIB} STATIC ${SOURCES} ${BUILD_VERSION_CC})
35-target_include_directories(${ROCKSDB_STATIC_LIB} PUBLIC
36- $<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/include>)
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_include_directories(${ROCKSDB_STATIC_LIB} PUBLIC
42+ $<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/include>)
43+ target_link_libraries(${ROCKSDB_STATIC_LIB} PRIVATE
44+ ${THIRDPARTY_LIBS} ${SYSTEM_LIBS})
45+endif()
46
47 if(ROCKSDB_BUILD_SHARED)
48 add_library(${ROCKSDB_SHARED_LIB} SHARED ${SOURCES} ${BUILD_VERSION_CC})
49@@ -1238,13 +1241,15 @@ if(NOT WIN32 OR ROCKSDB_INSTALL_ON_WINDOWS)
50
51 install(DIRECTORY "${PROJECT_SOURCE_DIR}/cmake/modules" COMPONENT devel DESTINATION ${package_config_destination})
52
53- install(
54- TARGETS ${ROCKSDB_STATIC_LIB}
55- EXPORT RocksDBTargets
56- COMPONENT devel
57- ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}"
58- INCLUDES DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}"
59- )
60+ if(ROCKSDB_BUILD_STATIC)
61+ install(
62+ TARGETS ${ROCKSDB_STATIC_LIB}
63+ EXPORT RocksDBTargets
64+ COMPONENT devel
65+ ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}"
66+ INCLUDES DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}"
67+ )
68+ endif()
69
70 if(ROCKSDB_BUILD_SHARED)
71 install(
diff --git a/meta-oe/recipes-dbs/rocksdb/rocksdb_9.0.0.bb b/meta-oe/recipes-dbs/rocksdb/rocksdb_9.0.0.bb
index 444351dbb4..fae54fdba4 100644
--- a/meta-oe/recipes-dbs/rocksdb/rocksdb_9.0.0.bb
+++ b/meta-oe/recipes-dbs/rocksdb/rocksdb_9.0.0.bb
@@ -17,6 +17,7 @@ SRC_URI = "git://github.com/facebook/${BPN}.git;branch=${SRCBRANCH};protocol=htt
17 file://0005-Implement-timer-implementation-for-mips-platform.patch \ 17 file://0005-Implement-timer-implementation-for-mips-platform.patch \
18 file://0006-Implement-timer-for-arm-v6.patch \ 18 file://0006-Implement-timer-for-arm-v6.patch \
19 file://0007-Fix-declaration-scope-of-LE_LOAD32-in-crc32c.patch \ 19 file://0007-Fix-declaration-scope-of-LE_LOAD32-in-crc32c.patch \
20 file://static_library_as_option.patch \
20 " 21 "
21 22
22SRC_URI:append:riscv32 = " file://0001-replace-old-sync-with-new-atomic-builtin-equivalents.patch" 23SRC_URI:append:riscv32 = " file://0001-replace-old-sync-with-new-atomic-builtin-equivalents.patch"
@@ -43,6 +44,7 @@ EXTRA_OECMAKE = "\
43 -DWITH_BENCHMARK_TOOLS=OFF \ 44 -DWITH_BENCHMARK_TOOLS=OFF \
44 -DWITH_TOOLS=OFF \ 45 -DWITH_TOOLS=OFF \
45 -DFAIL_ON_WARNINGS=OFF \ 46 -DFAIL_ON_WARNINGS=OFF \
47 -DROCKSDB_BUILD_STATIC=OFF \
46" 48"
47 49
48CXXFLAGS += "${@bb.utils.contains('SELECTED_OPTIMIZATION', '-Og', '-DXXH_NO_INLINE_HINTS', '', d)}" 50CXXFLAGS += "${@bb.utils.contains('SELECTED_OPTIMIZATION', '-Og', '-DXXH_NO_INLINE_HINTS', '', d)}"