mirror of
https://git.sr.ht/~thestr4ng3r/chiaki
synced 2025-03-12 05:25:23 -07:00
153 lines
4.1 KiB
CMake
153 lines
4.1 KiB
CMake
|
|
set(HEADER_FILES
|
|
include/chiaki/session.h
|
|
include/chiaki/common.h
|
|
include/chiaki/sock.h
|
|
include/chiaki/thread.h
|
|
include/chiaki/base64.h
|
|
include/chiaki/http.h
|
|
include/chiaki/log.h
|
|
include/chiaki/ctrl.h
|
|
include/chiaki/rpcrypt.h
|
|
include/chiaki/takion.h
|
|
include/chiaki/senkusha.h
|
|
include/chiaki/streamconnection.h
|
|
include/chiaki/ecdh.h
|
|
include/chiaki/launchspec.h
|
|
include/chiaki/random.h
|
|
include/chiaki/gkcrypt.h
|
|
include/chiaki/audio.h
|
|
include/chiaki/audioreceiver.h
|
|
include/chiaki/video.h
|
|
include/chiaki/videoreceiver.h
|
|
include/chiaki/frameprocessor.h
|
|
include/chiaki/packetstats.h
|
|
include/chiaki/seqnum.h
|
|
include/chiaki/discovery.h
|
|
include/chiaki/congestioncontrol.h
|
|
include/chiaki/stoppipe.h
|
|
include/chiaki/reorderqueue.h
|
|
include/chiaki/discoveryservice.h
|
|
include/chiaki/feedback.h
|
|
include/chiaki/feedbacksender.h
|
|
include/chiaki/controller.h
|
|
include/chiaki/takionsendbuffer.h
|
|
include/chiaki/time.h
|
|
include/chiaki/fec.h
|
|
include/chiaki/regist.h
|
|
include/chiaki/opusdecoder.h
|
|
include/chiaki/orientation.h)
|
|
|
|
set(SOURCE_FILES
|
|
src/common.c
|
|
src/sock.c
|
|
src/session.c
|
|
src/thread.c
|
|
src/base64.c
|
|
src/http.c
|
|
src/log.c
|
|
src/ctrl.c
|
|
src/rpcrypt.c
|
|
src/takion.c
|
|
src/senkusha.c
|
|
src/utils.h
|
|
src/pb_utils.h
|
|
src/streamconnection.c
|
|
src/ecdh.c
|
|
src/launchspec.c
|
|
src/random.c
|
|
src/gkcrypt.c
|
|
src/audio.c
|
|
src/audioreceiver.c
|
|
src/videoreceiver.c
|
|
src/frameprocessor.c
|
|
src/packetstats.c
|
|
src/discovery.c
|
|
src/congestioncontrol.c
|
|
src/stoppipe.c
|
|
src/reorderqueue.c
|
|
src/discoveryservice.c
|
|
src/feedback.c
|
|
src/feedbacksender.c
|
|
src/controller.c
|
|
src/takionsendbuffer.c
|
|
src/time.c
|
|
src/fec.c
|
|
src/regist.c
|
|
src/opusdecoder.c
|
|
src/orientation.c)
|
|
|
|
if(CHIAKI_ENABLE_FFMPEG_DECODER)
|
|
list(APPEND HEADER_FILES include/chiaki/ffmpegdecoder.h)
|
|
list(APPEND SOURCE_FILES src/ffmpegdecoder.c)
|
|
endif()
|
|
set(CHIAKI_LIB_ENABLE_PI_DECODER "${CHIAKI_ENABLE_FFMPEG_DECODER}")
|
|
|
|
if(CHIAKI_ENABLE_PI_DECODER)
|
|
list(APPEND HEADER_FILES include/chiaki/pidecoder.h)
|
|
list(APPEND SOURCE_FILES src/pidecoder.c)
|
|
endif()
|
|
set(CHIAKI_LIB_ENABLE_PI_DECODER "${CHIAKI_ENABLE_PI_DECODER}")
|
|
|
|
add_subdirectory(protobuf)
|
|
set_source_files_properties(${CHIAKI_LIB_PROTO_SOURCE_FILES} ${CHIAKI_LIB_PROTO_HEADER_FILES} PROPERTIES GENERATED TRUE)
|
|
include_directories("${CHIAKI_LIB_PROTO_INCLUDE_DIR}")
|
|
|
|
if(CHIAKI_LIB_ENABLE_OPUS)
|
|
find_package(Opus REQUIRED)
|
|
include_directories(${Opus_INCLUDE_DIRS})
|
|
endif()
|
|
|
|
add_library(chiaki-lib ${HEADER_FILES} ${SOURCE_FILES} ${CHIAKI_LIB_PROTO_SOURCE_FILES} ${CHIAKI_LIB_PROTO_HEADER_FILES})
|
|
configure_file(config.h.in include/chiaki/config.h)
|
|
target_include_directories(chiaki-lib PUBLIC "${CMAKE_CURRENT_BINARY_DIR}/include")
|
|
|
|
if(CMAKE_C_COMPILER_ID STREQUAL GNU OR CMAKE_C_COMPILER_ID STREQUAL Clang)
|
|
target_compile_options(chiaki-lib PRIVATE -Wall)
|
|
endif()
|
|
|
|
add_dependencies(chiaki-lib chiaki-pb)
|
|
set_target_properties(chiaki-lib PROPERTIES OUTPUT_NAME chiaki)
|
|
|
|
if(WIN32)
|
|
target_link_libraries(chiaki-lib wsock32 ws2_32 bcrypt)
|
|
endif()
|
|
|
|
target_include_directories(chiaki-lib PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}/include")
|
|
|
|
find_package(Threads REQUIRED)
|
|
target_link_libraries(chiaki-lib Threads::Threads)
|
|
|
|
if(CHIAKI_LIB_ENABLE_MBEDTLS)
|
|
if(CHIAKI_LIB_MBEDTLS_EXTERNAL_PROJECT)
|
|
target_link_libraries(chiaki-lib mbedtls mbedx509 mbedcrypto)
|
|
else()
|
|
# provided by mbedtls-static (mbedtls-devel)
|
|
find_library(MBEDTLS mbedtls)
|
|
find_library(MBEDX509 mbedx509)
|
|
find_library(MBEDCRYPTO mbedcrypto)
|
|
target_link_libraries(chiaki-lib ${MBEDTLS} ${MBEDX509} ${MBEDCRYPTO})
|
|
endif()
|
|
elseif(CHIAKI_LIB_OPENSSL_EXTERNAL_PROJECT)
|
|
target_link_libraries(chiaki-lib OpenSSL_Crypto)
|
|
else()
|
|
# default
|
|
find_package(OpenSSL REQUIRED)
|
|
target_link_libraries(chiaki-lib OpenSSL::Crypto)
|
|
endif()
|
|
|
|
target_link_libraries(chiaki-lib Nanopb::nanopb)
|
|
target_link_libraries(chiaki-lib Jerasure::Jerasure)
|
|
|
|
if(CHIAKI_ENABLE_FFMPEG_DECODER)
|
|
target_link_libraries(chiaki-lib FFMPEG::avcodec FFMPEG::avutil)
|
|
endif()
|
|
|
|
if(CHIAKI_ENABLE_PI_DECODER)
|
|
target_link_libraries(chiaki-lib ILClient::ILClient)
|
|
endif()
|
|
|
|
if(CHIAKI_LIB_ENABLE_OPUS)
|
|
target_link_libraries(chiaki-lib ${Opus_LIBRARIES})
|
|
endif()
|