62 lines
1.8 KiB
CMake
62 lines
1.8 KiB
CMake
|
|
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)
|