-
Notifications
You must be signed in to change notification settings - Fork 0
/
CMakeLists.txt
83 lines (67 loc) · 1.92 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
cmake_minimum_required(VERSION 3.27.0)
set(CMAKE_CXX_STANDARD 20)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_EXPORT_COMPILE_COMMANDS ON) # For the LSP
project(ooh VERSION 1.0)
# Directing cmake to where all the libraries are
set(CMAKE_PREFIX_PATH ${CMAKE_SOURCE_DIR}/libs/)
find_library(raylib raylib REQUIRED)
find_library(box2d box2d REQUIRED)
find_library(yaml-cpp yaml-cpp REQUIRED)
set(SOURCES
# Base files
src/main.cpp
# Utils
src/Utils/Util.cpp
src/Utils/DebugDraw.cpp
# Managers
src/Managers/GameManager.cpp
src/Managers/AssetManager.cpp
src/Managers/EventManager.cpp
src/Managers/SceneManager.cpp
src/Managers/EntityManager.cpp
src/Managers/ZombieManager.cpp
src/Managers/TileManager.cpp
src/Managers/WaveManager.cpp
src/Managers/ParticleManager.cpp
# Listeners
src/Listeners/AudioListener.cpp
src/Listeners/ContactListener.cpp
# UI
src/UI/Text.cpp
src/UI/Button.cpp
src/UI/Checkbox.cpp
src/UI/ItemFrame.cpp
# Scenes
src/Scenes/MenuScene.cpp
src/Scenes/SettingScene.cpp
src/Scenes/ShopScene.cpp
src/Scenes/GameScene.cpp
src/Scenes/OverLoseScene.cpp
# Components
src/Components/Transform2D.cpp
src/Components/Sprite.cpp
src/Components/PhysicsBody.cpp
src/Components/Collider.cpp
src/Components/Animator.cpp
# Entities
src/Entities/Player.cpp
src/Entities/Zombie.cpp
src/Entities/Weapon.cpp
src/Entities/Tile.cpp
src/Entities/Particle.cpp
)
add_executable(${PROJECT_NAME} ${SOURCES})
# Copying the assets and data folders to the binary
file(COPY assets DESTINATION ${CMAKE_CURRENT_BINARY_DIR})
file(COPY data DESTINATION ${CMAKE_CURRENT_BINARY_DIR})
# Adding the include for the above libraries
target_include_directories(${PROJECT_NAME} PUBLIC ${CMAKE_SOURCE_DIR}/libs/include)
# Adding the libraries to the project
target_link_libraries(${PROJECT_NAME}
${raylib}
${box2d}
${yaml-cpp}
)
# For windows builds
add_definitions(-DSDL_MAIN_HANDELED)