hp-socket/CMakeLists.txt

62 lines
1.8 KiB
CMake
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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)