diff --git a/.github/workflows/pr-compile-check.yaml b/.github/workflows/pr-compile-check.yaml index 42381a8a1d1..13e73505535 100644 --- a/.github/workflows/pr-compile-check.yaml +++ b/.github/workflows/pr-compile-check.yaml @@ -48,7 +48,7 @@ jobs: run: | sudo apt-get update sudo apt-get install -y curl gcc-7 g++-7 clang-6.0 libsystemd-dev gcovr libyaml-dev libluajit-5.1-dev \ - libnghttp2-dev libjemalloc-dev + libnghttp2-dev libjemalloc-dev libsqlite3-dev sudo ln -s /usr/bin/llvm-symbolizer-6.0 /usr/bin/llvm-symbolizer || true mkdir -p /tmp/libbacktrace/build && \ curl -L https://github.com/ianlancetaylor/libbacktrace/archive/8602fda.tar.gz | \ diff --git a/CMakeLists.txt b/CMakeLists.txt index 0e6340bbfc9..1b59a002508 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -215,7 +215,9 @@ option(FLB_PREFER_SYSTEM_LIB_CARES "Prefer the libcares system library" option(FLB_PREFER_SYSTEM_LIB_JEMALLOC "Prefer the libjemalloc system library" ${FLB_PREFER_SYSTEM_LIBS}) option(FLB_PREFER_SYSTEM_LIB_KAFKA "Prefer the libkafka system library" ${FLB_PREFER_SYSTEM_LIBS}) option(FLB_PREFER_SYSTEM_LIB_LUAJIT "Prefer the libluajit system library" ${FLB_PREFER_SYSTEM_LIBS}) +option(FLB_PREFER_SYSTEM_LIB_MSGPACK "Prefer the libmsgpack system library" ${FLB_PREFER_SYSTEM_LIBS}) option(FLB_PREFER_SYSTEM_LIB_NGHTTP2 "Prefer the libnghttp2 system library" ${FLB_PREFER_SYSTEM_LIBS}) +option(FLB_PREFER_SYSTEM_LIB_SQLITE "Prefer the libsqlite3 system library" ${FLB_PREFER_SYSTEM_LIBS}) # Enable all features if(FLB_ALL) @@ -472,11 +474,16 @@ FLB_OPTION(FLUENT_PROTO_PROFILES ON) add_subdirectory(${FLB_PATH_LIB_FLUENT_OTEL} EXCLUDE_FROM_ALL) # MsgPack options -option(MSGPACK_ENABLE_CXX OFF) -option(MSGPACK_ENABLE_SHARED OFF) -option(MSGPACK_BUILD_TESTS OFF) -option(MSGPACK_BUILD_EXAMPLES OFF) -add_subdirectory(${FLB_PATH_LIB_MSGPACK} EXCLUDE_FROM_ALL) +if(FLB_PREFER_SYSTEM_LIB_MSGPACK) + find_package(PkgConfig) + pkg_check_modules(MSGPACK msgpack>=4.0.0) +endif() +if(MSGPACK_FOUND) + include_directories(${MSGPACK_INCLUDE_DIRS}) + link_directories(${MSGPACK_LIBRARY_DIRS}) +else() + include(cmake/msgpack.cmake) +endif() # MPack add_definitions(-DMPACK_EXTENSIONS=1) @@ -683,8 +690,17 @@ if (FLB_SIGNV4) endif() if(FLB_SQLDB) + if(FLB_PREFER_SYSTEM_LIB_SQLITE) + find_package(PkgConfig) + pkg_check_modules(SQLITE sqlite3>=3.0.0) + endif() + if(SQLITE_FOUND) + include_directories(${SQLITE_INCLUDE_DIRS}) + link_directories(${SQLITE_LIBRARY_DIRS}) + else() + include(cmake/sqlite.cmake) + endif() FLB_DEFINITION(FLB_HAVE_SQLDB) - add_subdirectory(${FLB_PATH_LIB_SQLITE}) endif() if(FLB_TRACE) diff --git a/cmake/headers.cmake b/cmake/headers.cmake index 9253040b5fc..bdbb02fa0cd 100755 --- a/cmake/headers.cmake +++ b/cmake/headers.cmake @@ -16,7 +16,6 @@ include_directories( ${FLB_PATH_ROOT_SOURCE}/${FLB_PATH_LIB_CO} ${FLB_PATH_ROOT_SOURCE}/${FLB_PATH_LIB_RBTREE} - ${FLB_PATH_ROOT_SOURCE}/${FLB_PATH_LIB_MSGPACK}/include # Chunk I/O generate headers also in the binary path ${FLB_PATH_ROOT_SOURCE}/${FLB_PATH_LIB_CHUNKIO}/include @@ -25,7 +24,6 @@ include_directories( ${FLB_PATH_ROOT_SOURCE}/${FLB_PATH_LIB_MONKEY}/include ${FLB_PATH_ROOT_SOURCE}/${FLB_PATH_LIB_MONKEY}/include/monkey ${FLB_PATH_ROOT_SOURCE}/${FLB_PATH_LIB_MBEDTLS}/include - ${FLB_PATH_ROOT_SOURCE}/${FLB_PATH_LIB_SQLITE} ${FLB_PATH_ROOT_SOURCE}/${FLB_PATH_LIB_MPACK}/src ${FLB_PATH_ROOT_SOURCE}/${FLB_PATH_LIB_MINIZ}/ ${FLB_PATH_ROOT_SOURCE}/${FLB_PATH_LIB_ONIGMO} diff --git a/cmake/msgpack.cmake b/cmake/msgpack.cmake new file mode 100644 index 00000000000..6211e31f302 --- /dev/null +++ b/cmake/msgpack.cmake @@ -0,0 +1,10 @@ +# msgpack cmake +option(MSGPACK_ENABLE_CXX OFF) +option(MSGPACK_ENABLE_SHARED OFF) +option(MSGPACK_BUILD_TESTS OFF) +option(MSGPACK_BUILD_EXAMPLES OFF) +include_directories( + ${FLB_PATH_ROOT_SOURCE}/${FLB_PATH_LIB_MSGPACK}/include +) +add_subdirectory(${FLB_PATH_LIB_MSGPACK} EXCLUDE_FROM_ALL) +set(MSGPACK_LIBRARIES "msgpack-c-static") diff --git a/cmake/sqlite.cmake b/cmake/sqlite.cmake new file mode 100644 index 00000000000..76585168d98 --- /dev/null +++ b/cmake/sqlite.cmake @@ -0,0 +1,6 @@ +# sqlite cmake +include_directories( + ${FLB_PATH_ROOT_SOURCE}/${FLB_PATH_LIB_SQLITE} +) +add_subdirectory(${FLB_PATH_LIB_SQLITE}) +set(SQLITE_LIBRARIES "sqlite3") diff --git a/plugins/CMakeLists.txt b/plugins/CMakeLists.txt index deb24958038..a700b0f5c43 100644 --- a/plugins/CMakeLists.txt +++ b/plugins/CMakeLists.txt @@ -182,7 +182,7 @@ endmacro() macro(FLB_PLUGIN name src deps) add_library(flb-plugin-${name} STATIC ${src}) add_sanitizers(flb-plugin-${name}) - target_link_libraries(flb-plugin-${name} fluent-bit-static msgpack-c-static ${deps}) + target_link_libraries(flb-plugin-${name} fluent-bit-static ${MSGPACK_LIBRARIES} ${deps}) endmacro() diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 9ba91972ac0..3b9a87985f4 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -242,7 +242,7 @@ if(FLB_SQLDB) ) set(extra_libs ${extra_libs} - "sqlite3") + ${SQLITE_LIBRARIES}) endif() if(FLB_STATIC_CONF) @@ -381,7 +381,7 @@ set(FLB_DEPS ctraces-static mk_core jsmn - msgpack-c-static + ${MSGPACK_LIBRARIES} mpack-static chunkio-static miniz