Build uvgRTP as a shared library

Switch from static to shared library format and use whole-archive
option to include POSIX threads and Crypto++ into the output library
This commit is contained in:
Aaro Altonen 2020-12-11 07:54:44 +02:00
parent 171b73af21
commit 39f4e036cf
1 changed files with 10 additions and 2 deletions

View File

@ -2,7 +2,7 @@ cmake_minimum_required(VERSION 3.5)
project(uvgrtp)
add_library(uvgrtp STATIC
add_library(uvgrtp SHARED
src/clock.cc
src/crypto.cc
src/dispatch.cc
@ -28,6 +28,8 @@ add_library(uvgrtp STATIC
src/formats/h264_pkt_handler.cc
src/formats/h265.cc
src/formats/h265_pkt_handler.cc
src/formats/h266.cc
src/formats/h266_pkt_handler.cc
src/zrtp/zrtp_receiver.cc
src/zrtp/hello.cc
src/zrtp/hello_ack.cc
@ -57,9 +59,12 @@ target_include_directories(uvgrtp
)
if (UNIX)
set(CMAKE_CXX_FLAGS "-Wall -Wextra -Wuninitialized -Wshadow -O2 -std=c++17 -march=native -DNDEBUG")
target_link_libraries(uvgrtp PRIVATE -Wl,--whole-archive -lpthread -lcryptopp -Wl,--no-whole-archive)
install(TARGETS uvgrtp
ARCHIVE
DESTINATION /usr/local/lib
DESTINATION /usr/lib
)
install(DIRECTORY include/ DESTINATION /usr/local/include/uvgrtp
FILES_MATCHING PATTERN "*.hh"
@ -67,6 +72,9 @@ if (UNIX)
endif (UNIX)
if (WIN32)
# set(CMAKE_CXX_FLAGS "")
# target_link_libraries(uvgrtp PRIVATE /WHOLEARCHIVE -lpthread -lcryptopp)
install(TARGETS uvgrtp
ARCHIVE
DESTINATION ${PROJECT_BINARY_DIR}/lib