Skip to content

Commit 51f0c8d

Browse files
committed
Build: 添加CMake构建.
1 parent b1d440d commit 51f0c8d

File tree

2 files changed

+50
-0
lines changed

2 files changed

+50
-0
lines changed

CMakeLists.txt

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
cmake_minimum_required(VERSION 3.16)
2+
3+
project(QtKcp)
4+
5+
set(CMAKE_INSTALL_PREFIX ${CMAKE_SOURCE_DIR})
6+
7+
add_subdirectory(src)

src/CMakeLists.txt

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
cmake_minimum_required(VERSION 3.16)
2+
3+
set(CMAKE_CXX_STANDARD_REQUIRED ON)
4+
set(CMAKE_CXX_STANDARD 11)
5+
6+
set(CMAKE_AUTOMOC ON)
7+
8+
project(QtKcp VERSION 1.0 LANGUAGES C CXX)
9+
10+
find_package(QT NAMES Qt6 Qt5 REQUIRED COMPONENTS Network)
11+
find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Network)
12+
13+
add_library(QtKcp SHARED
14+
${CMAKE_SOURCE_DIR}/3rdparty/kcp/ikcp.c
15+
${CMAKE_SOURCE_DIR}/3rdparty/kcp/ikcp.h
16+
qkcpserver.cpp
17+
qkcpserver.h
18+
qkcpsocket.cpp
19+
qkcpsocket.h
20+
qkcpsocket_global.h
21+
qkcpsocket_p.h
22+
)
23+
24+
target_include_directories(QtKcp PRIVATE ${CMAKE_SOURCE_DIR}/3rdparty/kcp)
25+
26+
set_target_properties(QtKcp PROPERTIES
27+
DEBUG_POSTFIX "d"
28+
PUBLIC_HEADER "qkcpsocket_global.h;qkcpsocket.h;qkcpserver.h"
29+
PDB_OUTPUT_DIRECTORY ${CMAKE_INSTALL_PREFIX}/buildlib/${CMAKE_BUILD_TYPE}
30+
)
31+
32+
target_compile_options(QtKcp PRIVATE "$<$<CXX_COMPILER_ID:MSVC>:/utf-8;/Zi>")
33+
34+
target_compile_definitions(QtKcp PRIVATE QTKCP_LIBRARY)
35+
36+
target_link_libraries(QtKcp PRIVATE Qt::Network)
37+
38+
install(TARGETS QtKcp
39+
PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_PREFIX}/buildlib/include
40+
RUNTIME DESTINATION ${CMAKE_INSTALL_PREFIX}/buildlib/${CMAKE_BUILD_TYPE}
41+
ARCHIVE DESTINATION ${CMAKE_INSTALL_PREFIX}/buildlib/${CMAKE_BUILD_TYPE}
42+
LIBRARY DESTINATION ${CMAKE_INSTALL_PREFIX}/buildlib/${CMAKE_BUILD_TYPE}
43+
)

0 commit comments

Comments
 (0)