-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathCMakeLists.txt
More file actions
102 lines (83 loc) · 2.21 KB
/
CMakeLists.txt
File metadata and controls
102 lines (83 loc) · 2.21 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
cmake_minimum_required(VERSION 3.16)
project(
R2F-MessengerServer
VERSION 2.0
LANGUAGES CXX
)
if(${CMAKE_SYSTEM_NAME} STREQUAL "FreeBSD")
message(STATUS "Configuring for FreeBSD")
endif()
if(${CMAKE_SYSTEM_NAME} STREQUAL "Linux")
message(STATUS "Configuring for Linux")
endif()
set(CMAKE_AUTOMOC ON)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_STANDARD 17)
find_package(Qt5 COMPONENTS Core Network Sql REQUIRED)
find_path(GMP_INCLUDE_DIR NAMES gmp.h
PATHS /usr/local/include /usr/include
)
find_library(GMP_LIBRARY NAMES gmp
PATHS /usr/local/lib /usr/lib
)
if (GMP_INCLUDE_DIR AND GMP_LIBRARY)
message(STATUS "GMP found")
else()
message(FATAL_ERROR "GMP not found")
endif()
add_executable(R2F-MessengerServer
include/BackEnd.h
include/CommandLineOptions.h
include/ConnectedClientManager.h
include/Database.h
include/Logger.h
include/LoggerFactory.h
include/MessageProcessor.h
include/ServerManager.h
include/SessionKey.h
include/server.h
include/messagecode.h
include/TcpDumpManager.h
include/PacketAnalyzer.h
src/BackEnd.cpp
src/CommandLineOptions.cpp
src/ConnectedClientManager.cpp
src/Database.cpp
src/Logger.cpp
src/LoggerFactory.cpp
src/MessageProcessor.cpp
src/ServerManager.cpp
src/SessionKey.cpp
src/main.cpp
src/server.cpp
src/TcpDumpManager.cpp
src/PacketAnalyzer.cpp
)
target_link_options(R2F-MessengerServer PRIVATE -v)
target_link_libraries(R2F-MessengerServer PRIVATE
Qt5::Core
Qt5::Network
Qt5::Sql
)
if(CMAKE_BUILD_TYPE MATCHES "Debug")
target_compile_options(R2F-MessengerServer PRIVATE
-fsanitize=address
-Wthread-safety
)
target_link_options(R2F-MessengerServer PRIVATE
-fsanitize=address
-Wthread-safety
)
endif()
target_include_directories(R2F-MessengerServer PRIVATE
${CMAKE_SOURCE_DIR}/include
${GMP_INCLUDE_DIR}
)
find_package(Threads REQUIRED)
target_link_libraries(R2F-MessengerServer PRIVATE
${GMP_LIBRARY}
Threads::Threads
)
target_link_libraries(R2F-MessengerServer PRIVATE ${CMAKE_THREAD_LIBS_INIT})
set(CMAKE_INSTALL_PREFIX "${CMAKE_CURRENT_SOURCE_DIR}/../build")
install(TARGETS R2F-MessengerServer)