From ea944a28c502e1f6f013a92f7bfeaf753982f81c Mon Sep 17 00:00:00 2001 From: Divya Sampath Kumar Date: Thu, 15 Sep 2022 10:52:41 -0700 Subject: [PATCH] Allow using CPP SDK as a dependency --- .github/workflows/ci.yml | 27 ++++++++++++++++++--------- CMake/Utilities.cmake | 2 +- CMakeLists.txt | 11 +++++++++++ 3 files changed, 30 insertions(+), 10 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index d628e58f..b981a3eb 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -27,8 +27,9 @@ jobs: - name: Build repository run: | mkdir build && cd build - sh -c 'cmake .. -DBUILD_TEST=TRUE -DCOMPILER_WARNINGS=TRUE;cmake .. -DBUILD_TEST=TRUE -DCOMPILER_WARNINGS=TRUE' + sh -c 'cmake .. -DBUILD_TEST=TRUE -DCOMPILER_WARNINGS=TRUE;cmake .. -DBUILD_TEST=TRUE -DCOMPILER_WARNINGS=TRUE -DCMAKE_INSTALL_PREFIX=.' make + make install - name: Configure AWS Credentials uses: aws-actions/configure-aws-credentials@v1 with: @@ -59,8 +60,9 @@ jobs: - name: Build repository run: | mkdir build && cd build - cmake .. -DBUILD_TEST=TRUE + cmake .. -DBUILD_TEST=TRUE -DCMAKE_INSTALL_PREFIX=. make + make install - name: Configure AWS Credentials uses: aws-actions/configure-aws-credentials@v1 with: @@ -90,8 +92,9 @@ jobs: - name: Build repository run: | mkdir build && cd build - cmake .. -DCODE_COVERAGE=TRUE -DBUILD_TEST=TRUE -DBUILD_GSTREAMER_PLUGIN=TRUE -DBUILD_JNI=TRUE + cmake .. -DCODE_COVERAGE=TRUE -DBUILD_TEST=TRUE -DBUILD_GSTREAMER_PLUGIN=TRUE -DBUILD_JNI=TRUE -DCMAKE_INSTALL_PREFIX=. make + make install - name: Configure AWS Credentials uses: aws-actions/configure-aws-credentials@v1 with: @@ -129,8 +132,9 @@ jobs: - name: Build repository run: | mkdir build && cd build - cmake .. -DBUILD_TEST=TRUE -DADDRESS_SANITIZER=TRUE -DBUILD_GSTREAMER_PLUGIN=TRUE -DBUILD_JNI=TRUE + cmake .. -DBUILD_TEST=TRUE -DADDRESS_SANITIZER=TRUE -DBUILD_GSTREAMER_PLUGIN=TRUE -DBUILD_JNI=TRUE -DCMAKE_INSTALL_PREFIX=. make + make install - name: Configure AWS Credentials uses: aws-actions/configure-aws-credentials@v1 with: @@ -163,8 +167,9 @@ jobs: - name: Build repository run: | mkdir build && cd build - cmake .. -DBUILD_TEST=TRUE -DUNDEFINED_BEHAVIOR_SANITIZER=TRUE -DBUILD_GSTREAMER_PLUGIN=TRUE -DBUILD_JNI=TRUE + cmake .. -DBUILD_TEST=TRUE -DUNDEFINED_BEHAVIOR_SANITIZER=TRUE -DBUILD_GSTREAMER_PLUGIN=TRUE -DBUILD_JNI=TRUE -DCMAKE_INSTALL_PREFIX=. make + make install - name: Configure AWS Credentials uses: aws-actions/configure-aws-credentials@v1 with: @@ -253,8 +258,9 @@ jobs: - name: Build repository run: | mkdir build && cd build - cmake .. -DBUILD_TEST=TRUE -DBUILD_GSTREAMER_PLUGIN=TRUE -DBUILD_JNI=TRUE + cmake .. -DBUILD_TEST=TRUE -DBUILD_GSTREAMER_PLUGIN=TRUE -DBUILD_JNI=TRUE -DCMAKE_INSTALL_PREFIX=. make + make install - name: Configure AWS Credentials uses: aws-actions/configure-aws-credentials@v1 with: @@ -317,8 +323,9 @@ jobs: run: | sudo sh -c 'echo 0 > /proc/sys/net/ipv6/conf/all/disable_ipv6' mkdir build && cd build - cmake .. -DBUILD_TEST=TRUE -DBUILD_OPENSSL_PLATFORM=linux-generic64 -DBUILD_LOG4CPLUS_HOST=arm-linux + cmake .. -DBUILD_TEST=TRUE -DBUILD_OPENSSL_PLATFORM=linux-generic64 -DBUILD_LOG4CPLUS_HOST=arm-linux -DCMAKE_INSTALL_PREFIX=. make + make install file libKinesisVideoProducer.so linux-aarch64-cross-compilation: @@ -338,8 +345,9 @@ jobs: run: | sudo sh -c 'echo 0 > /proc/sys/net/ipv6/conf/all/disable_ipv6' mkdir build && cd build - cmake .. -DBUILD_TEST=TRUE -DBUILD_OPENSSL_PLATFORM=linux-aarch64 -DBUILD_LOG4CPLUS_HOST=arm-linux + cmake .. -DBUILD_TEST=TRUE -DBUILD_OPENSSL_PLATFORM=linux-aarch64 -DBUILD_LOG4CPLUS_HOST=arm-linux -DCMAKE_INSTALL_PREFIX=. make + make install file libKinesisVideoProducer.so arm32-cross-compilation: @@ -359,7 +367,8 @@ jobs: run: | sudo sh -c 'echo 0 > /proc/sys/net/ipv6/conf/all/disable_ipv6' mkdir build && cd build - cmake .. -DBUILD_TEST=TRUE -DBUILD_OPENSSL_PLATFORM=linux-generic32 -DBUILD_LOG4CPLUS_HOST=arm-linux + cmake .. -DBUILD_TEST=TRUE -DBUILD_OPENSSL_PLATFORM=linux-generic32 -DBUILD_LOG4CPLUS_HOST=arm-linux -DCMAKE_INSTALL_PREFIX=. make + make install file libKinesisVideoProducer.so diff --git a/CMake/Utilities.cmake b/CMake/Utilities.cmake index a4c1bb65..560ebc3a 100644 --- a/CMake/Utilities.cmake +++ b/CMake/Utilities.cmake @@ -80,7 +80,7 @@ function(build_dependency lib_name) # build library configure_file( - ${CMAKE_SOURCE_DIR}/CMake/Dependencies/lib${lib_name}-CMakeLists.txt + ${CMAKE_CURRENT_SOURCE_DIR}/CMake/Dependencies/lib${lib_name}-CMakeLists.txt ${KINESIS_VIDEO_OPEN_SOURCE_SRC}/lib${lib_name}/CMakeLists.txt COPYONLY) execute_process( COMMAND ${CMAKE_COMMAND} ${build_args} diff --git a/CMakeLists.txt b/CMakeLists.txt index 60ecca1a..d6ff6d7d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -8,6 +8,7 @@ include(Utilities) project(KinesisVideoProducerCpp) set(CMAKE_CXX_STANDARD 11) +include(GNUInstallDirs) # User Flags option(BUILD_GSTREAMER_PLUGIN "Build kvssink GStreamer plugin" OFF) @@ -177,6 +178,10 @@ include_directories(${KINESIS_VIDEO_PRODUCER_CPP_SRC}/src/credential-providers) include_directories(${KINESIS_VIDEO_PRODUCER_CPP_SRC}/src/common) include_directories(${KINESIS_VIDEO_PRODUCER_CPP_SRC}/src/JNI/include) +install( + DIRECTORY ${KINESIS_VIDEO_PRODUCER_CPP_SRC}/src + DESTINATION .) + add_library(KinesisVideoProducer ${LINKAGE} ${PRODUCER_CPP_SOURCE_FILES}) target_link_libraries( KinesisVideoProducer @@ -185,6 +190,12 @@ target_link_libraries( ${Log4cplus} ${LIBCURL_LIBRARIES}) +install( + TARGETS KinesisVideoProducer + ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}" + LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}" + RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}") + if(BUILD_JNI) find_package(JNI REQUIRED) include_directories(${JNI_INCLUDE_DIRS})