hp-socket/CMakeLists.txt

62 lines
1.8 KiB
CMake
Raw Normal View History

2025-10-24 20:41:49 +08:00
cmake_minimum_required(VERSION 3.10)
project(HP-Socket LANGUAGES C CXX)
# 设置编译选项
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_BUILD_TYPE Debug) # 发布模式(可选 Debug
# 定义源码目录和头文件目录
set(HP_SOCKET_SRC_DIR ${PROJECT_SOURCE_DIR}/src)
set(HP_SOCKET_INC_DIR ${PROJECT_SOURCE_DIR}/include)
# 收集所有源文件(根据实际源码结构调整)
file(GLOB HP_SOCKET_SOURCES
${HP_SOCKET_SRC_DIR}/*.c
${HP_SOCKET_SRC_DIR}/*.cpp
${HP_SOCKET_SRC_DIR}/linux/*.c
${HP_SOCKET_SRC_DIR}/linux/*.c
${HP_SOCKET_SRC_DIR}/common/*.cpp
${HP_SOCKET_SRC_DIR}/common/http/*.c
${HP_SOCKET_SRC_DIR}/common/kcp/*.c
${PROJECT_SOURCE_DIR}/global/*.cpp
)
# 收集头文件(用于 IDE 索引)
file(GLOB HP_SOCKET_HEADERS
${HP_SOCKET_INC_DIR}/*.h
${HP_SOCKET_INC_DIR}/*.hpp
)
# 包含头文件目录
include_directories(${HP_SOCKET_INC_DIR})
include_directories(${HP_SOCKET_SRC_DIR})
include_directories(${HP_SOCKET_SRC_DIR}/linux) # Linux 平台相关头文件
include_directories(${PROJECT_SOURCE_DIR}/global)
# 定义库目标动态库SHARED静态库STATIC
add_library(hp-socket SHARED ${HP_SOCKET_SOURCES} ${HP_SOCKET_HEADERS})
# 链接系统库Linux 需链接 pthread 和 rt
target_link_libraries(hp-socket PRIVATE pthread rt)
add_executable(client ${PROJECT_SOURCE_DIR}/client/client.cpp)
target_link_libraries(client PRIVATE pthread rt)
target_link_libraries(client PRIVATE hp-socket)
add_executable(server ${PROJECT_SOURCE_DIR}/server/server.cpp)
target_link_libraries(server PRIVATE pthread rt)
target_link_libraries(server PRIVATE hp-socket)
# 可选:若启用 SSL链接 OpenSSL
# find_package(OpenSSL REQUIRED)
# target_link_libraries(hp-socket PRIVATE OpenSSL::SSL OpenSSL::Crypto)