-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathCMakeLists.txt
112 lines (103 loc) · 2.48 KB
/
CMakeLists.txt
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
102
103
104
105
106
107
108
109
110
111
112
cmake_minimum_required(VERSION 3.25)
project(thegame VERSION 0.8.4 LANGUAGES CXX)
set(CMAKE_CXX_STANDARD 23)
add_compile_definitions(
MYSQLPP_MYSQL_HEADERS_BURIED
PROJECT_VERSION="${PROJECT_VERSION}"
)
find_package(Boost REQUIRED COMPONENTS headers)
find_package(Threads REQUIRED)
find_package(OpenSSL REQUIRED)
find_package(spdlog REQUIRED)
set(SOURCE_FILES
src/Application.cpp
src/Bot.cpp
src/Config.cpp
src/Gridmap.cpp
src/HttpClient.cpp
src/IOThreadPool.cpp
src/Listener.cpp
src/MySQLConnectionPool.cpp
src/NextId.cpp
src/OutgoingPacket.cpp
src/Player.cpp
src/Room.cpp
src/RoomManager.cpp
src/Session.cpp
src/Timer.cpp
src/User.cpp
src/UsersCache.cpp
src/boost_asio.cpp
src/boost_mysql.cpp
src/entity/Avatar.cpp
src/entity/Bullet.cpp
src/entity/Cell.cpp
src/entity/Food.cpp
src/entity/Mother.cpp
src/entity/Phage.cpp
src/entity/Virus.cpp
src/geometry/AABB.cpp
src/geometry/Vec2D.cpp
src/geometry/geometry.cpp
src/util.cpp
)
set(HEADER_FILES
src/entity/Avatar.hpp
src/entity/Bullet.hpp
src/entity/Cell.hpp
src/entity/Food.hpp
src/entity/Mother.hpp
src/entity/Phage.hpp
src/entity/Virus.hpp
src/geometry/AABB.hpp
src/geometry/Circle.hpp
src/geometry/Vec2D.hpp
src/geometry/formatter.hpp
src/geometry/geometry.hpp
src/Application.hpp
src/AsioFormatter.hpp
src/Bot.hpp
src/ChatMessage.hpp
src/Config.hpp
src/EventEmitter.hpp
src/Gridmap.hpp
src/HttpClient.hpp
src/IEntityFactory.hpp
src/IOThreadPool.hpp
src/IncomingPacket.hpp
src/Listener.hpp
src/ListenerFwd.hpp
src/MySQLConnectionPool.hpp
src/NextId.hpp
src/OutgoingPacket.hpp
src/Player.hpp
src/PlayerFwd.hpp
src/Room.hpp
src/RoomManager.hpp
src/ScopeExit.hpp
src/Session.hpp
src/TimePoint.hpp
src/Timer.hpp
src/User.hpp
src/UserFwd.hpp
src/UsersCache.hpp
src/serialization.hpp
src/types.hpp
src/util.hpp
)
add_executable(${PROJECT_NAME}
${SOURCE_FILES}
${HEADER_FILES}
src/main.cpp
)
target_link_libraries(${PROJECT_NAME} PRIVATE
Boost::headers Threads::Threads OpenSSL::Crypto OpenSSL::SSL spdlog::spdlog mysqlpp
)
target_compile_definitions(${PROJECT_NAME} PRIVATE
BOOST_ASIO_SEPARATE_COMPILATION
BOOST_MYSQL_SEPARATE_COMPILATION
)
#target_include_directories(${PROJECT_NAME} PRIVATE
# "${CMAKE_CURRENT_SOURCE_DIR}/src"
#)
add_subdirectory(tests)