diff --git a/CMakeLists.txt b/CMakeLists.txt index 7f1e1c19a..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) @@ -94,18 +95,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_PRODUCER_C) + 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() 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