From d80c524441c180ef10874a1a3eea007a0ff0e2d7 Mon Sep 17 00:00:00 2001 From: hacker1024 Date: Thu, 20 Jun 2024 11:36:21 +1000 Subject: [PATCH 1/2] Allow using prebuilt libkvscproducer through pkg-config --- CMakeLists.txt | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 7f1e1c19a..6e66665e3 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -94,18 +94,25 @@ set(BUILD_COMMON_LWS set(BUILD_COMMON_CURL TRUE CACHE BOOL "Build ProducerC with CURL Support" FORCE) -set(DEPENDENCY_DOWNLOAD_PATH ${CMAKE_CURRENT_SOURCE_DIR}/dependency) -if(NOT EXISTS ${DEPENDENCY_DOWNLOAD_PATH}) - file(MAKE_DIRECTORY ${DEPENDENCY_DOWNLOAD_PATH}) -endif() -fetch_repo(kvscproducer) -add_subdirectory(${DEPENDENCY_DOWNLOAD_PATH}/libkvscproducer/kvscproducer-src EXCLUDE_FROM_ALL) ############# find dependent libraries ############ find_package(Threads) find_package(PkgConfig REQUIRED) +if(BUILD_DEPENDENCIES) + set(DEPENDENCY_DOWNLOAD_PATH ${CMAKE_CURRENT_SOURCE_DIR}/dependency) + if(NOT EXISTS ${DEPENDENCY_DOWNLOAD_PATH}) + file(MAKE_DIRECTORY ${DEPENDENCY_DOWNLOAD_PATH}) + endif() + fetch_repo(kvscproducer) + add_subdirectory(${DEPENDENCY_DOWNLOAD_PATH}/libkvscproducer/kvscproducer-src EXCLUDE_FROM_ALL) +else() + pkg_check_modules(KVSCPRODUCER REQUIRED libcproducer) + include_directories(${KVSCPRODUCER_INCLUDE_DIRS}) + link_directories(${KVSCPRODUCER_LIBRARY_DIRS}) +endif() + if (OPEN_SRC_INSTALL_PREFIX) find_package(CURL REQUIRED PATHS ${OPEN_SRC_INSTALL_PREFIX}) else() From b51eb7d11326150610bcbbf83fdab087650897cf Mon Sep 17 00:00:00 2001 From: Stefan Kieszkowski <85728496+stefankiesz@users.noreply.github.com> Date: Tue, 17 Dec 2024 17:13:20 -0800 Subject: [PATCH 2/2] Add a new CMake flag to make backwards compatible --- CMakeLists.txt | 3 ++- README.md | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 6e66665e3..4af46d85c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -14,6 +14,7 @@ option(BUILD_JNI "Build C++ wrapper for JNI to expose the functionality to Java/ option(BUILD_STATIC "Build with static linkage" OFF) option(ADD_MUCLIBC "Add -muclibc c flag" OFF) option(BUILD_DEPENDENCIES "Whether or not to build depending libraries from source" ON) +option(BUILD_PRODUCER_C "Whether or not to build KVS Producer C library from source" ON) option(BUILD_OPENSSL_PLATFORM "If buildng OpenSSL what is the target platform" OFF) option(BUILD_LOG4CPLUS_HOST "Specify host-name for log4cplus for cross-compilation" OFF) @@ -100,7 +101,7 @@ set(BUILD_COMMON_CURL find_package(Threads) find_package(PkgConfig REQUIRED) -if(BUILD_DEPENDENCIES) +if (BUILD_PRODUCER_C) set(DEPENDENCY_DOWNLOAD_PATH ${CMAKE_CURRENT_SOURCE_DIR}/dependency) if(NOT EXISTS ${DEPENDENCY_DOWNLOAD_PATH}) file(MAKE_DIRECTORY ${DEPENDENCY_DOWNLOAD_PATH}) diff --git a/README.md b/README.md index 473caa5e5..f28255e52 100644 --- a/README.md +++ b/README.md @@ -85,6 +85,7 @@ You can pass the following options to `cmake ..`. * `-DBUILD_GSTREAMER_PLUGIN` -- Build kvssink GStreamer plugin * `-DBUILD_JNI` -- Build C++ wrapper for JNI to expose the functionality to Java/Android * `-DBUILD_DEPENDENCIES` -- Build depending libraries from source +* `-DBUILD_PRODUCER_C` -- Build KVS Producer C library from source. Default is ON. * `-DBUILD_TEST=TRUE` -- Build unit/integration tests, may be useful for confirm support for your device. `./tst/producerTest` * `-DCODE_COVERAGE` -- Enable coverage reporting * `-DCOMPILER_WARNINGS` -- Enable all compiler warnings