99 lines
3.2 KiB
CMake
99 lines
3.2 KiB
CMake
# 核心库 CMakeLists.txt
|
|
cmake_minimum_required(VERSION 3.15)
|
|
|
|
# 核心库源文件
|
|
set(CORE_SOURCES
|
|
src/network/network_manager.cpp
|
|
src/network/network_interface.cpp
|
|
src/network/nat_traversal/stun_client.cpp
|
|
src/network/nat_traversal/turn_client.cpp
|
|
src/network/nat_traversal/ice_agent.cpp
|
|
src/network/nat_traversal/candidate.cpp
|
|
src/network/nat_traversal/nat_type.cpp
|
|
src/protocol/protocol_handler.cpp
|
|
src/protocol/message_serializer.cpp
|
|
src/session/session_manager.cpp
|
|
src/session/session.cpp
|
|
src/codec/codec_manager.cpp
|
|
src/codec/codec_interface.cpp
|
|
src/role/role_manager.cpp
|
|
src/role/host_role.cpp
|
|
src/role/client_role.cpp
|
|
src/role/peer_role.cpp
|
|
src/file_transfer/file_transfer_manager.cpp
|
|
src/file_transfer/file_transfer_session.cpp
|
|
src/utils/logger.cpp
|
|
src/utils/timer.cpp
|
|
)
|
|
|
|
# 核心库头文件
|
|
set(CORE_HEADERS
|
|
include/displayflow/core/network/network_manager.h
|
|
include/displayflow/core/network/network_interface.h
|
|
include/displayflow/core/network/nat_traversal/stun_client.h
|
|
include/displayflow/core/network/nat_traversal/turn_client.h
|
|
include/displayflow/core/network/nat_traversal/ice_agent.h
|
|
include/displayflow/core/network/nat_traversal/candidate.h
|
|
include/displayflow/core/network/nat_traversal/nat_type.h
|
|
include/displayflow/core/protocol/protocol_handler.h
|
|
include/displayflow/core/protocol/message_serializer.h
|
|
include/displayflow/core/session/session_manager.h
|
|
include/displayflow/core/session/session.h
|
|
include/displayflow/core/codec/codec_manager.h
|
|
include/displayflow/core/codec/codec_interface.h
|
|
include/displayflow/core/role/role_manager.h
|
|
include/displayflow/core/role/host_role.h
|
|
include/displayflow/core/role/client_role.h
|
|
include/displayflow/core/role/peer_role.h
|
|
include/displayflow/core/role/role_interface.h
|
|
include/displayflow/core/file_transfer/file_transfer_manager.h
|
|
include/displayflow/core/file_transfer/file_transfer_session.h
|
|
include/displayflow/core/file_transfer/file_chunk.h
|
|
include/displayflow/core/file_transfer/transfer_progress.h
|
|
include/displayflow/core/utils/logger.h
|
|
include/displayflow/core/utils/timer.h
|
|
include/displayflow/core/common/types.h
|
|
include/displayflow/core/common/constants.h
|
|
)
|
|
|
|
# 创建核心库
|
|
add_library(displayflow_core STATIC
|
|
${CORE_SOURCES}
|
|
${CORE_HEADERS}
|
|
)
|
|
|
|
# 包含目录
|
|
target_include_directories(displayflow_core PUBLIC
|
|
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
|
|
$<INSTALL_INTERFACE:include>
|
|
)
|
|
|
|
# 链接 FlatBuffers
|
|
target_link_libraries(displayflow_core
|
|
PUBLIC
|
|
flatbuffers::flatbuffers
|
|
)
|
|
|
|
# 链接 VP8 编解码器(如果启用)
|
|
if(ENABLE_VP8_CODEC AND LIBVPX_FOUND)
|
|
target_link_libraries(displayflow_core
|
|
PUBLIC
|
|
${LIBVPX_LIBRARIES}
|
|
)
|
|
target_include_directories(displayflow_core
|
|
PUBLIC
|
|
${LIBVPX_INCLUDE_DIRS}
|
|
)
|
|
target_compile_definitions(displayflow_core
|
|
PUBLIC
|
|
DISPLAYFLOW_ENABLE_VP8
|
|
)
|
|
endif()
|
|
|
|
# 编译定义
|
|
target_compile_definitions(displayflow_core PUBLIC
|
|
DISPLAYFLOW_CORE_VERSION_MAJOR=${PROJECT_VERSION_MAJOR}
|
|
DISPLAYFLOW_CORE_VERSION_MINOR=${PROJECT_VERSION_MINOR}
|
|
)
|
|
|