-
Notifications
You must be signed in to change notification settings - Fork 5
Expand file tree
/
Copy pathCMakeLists.txt
More file actions
94 lines (83 loc) · 3.96 KB
/
CMakeLists.txt
File metadata and controls
94 lines (83 loc) · 3.96 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
cmake_minimum_required(VERSION 2.8)
# Project name without spaces or special characters
project("DrawAttack")
set(APP_TITLE "DrawAttack")
set(APP_DESCRIPTION "Multiplayer drawing battle game.")
set(APP_AUTHOR "Cruel")
set(APP_ICON ${PROJECT_SOURCE_DIR}/res/app/icon.png)
# CIA values
set(APP_UNIQUE_ID 0x7718)
set(APP_PRODUCT_CODE ${PROJECT_NAME})
set(BANNER_IMAGE ${PROJECT_SOURCE_DIR}/res/app/banner.png)
set(BANNER_SOUND ${PROJECT_SOURCE_DIR}/res/app/banner.wav)
set(CIA_CONFIG ${PROJECT_SOURCE_DIR}/res/app/cia.rsf)
# Include cpp3ds cmake module
set(CPP3DS $ENV{CPP3DS})
if(NOT CPP3DS)
message(FATAL_ERROR "You need to set the env variable CPP3DS before compiling.")
endif()
set(CMAKE_MODULE_PATH "${CPP3DS}/cmake" ${CMAKE_MODULE_PATH})
include(cpp3ds)
include_directories(
${PROJECT_SOURCE_DIR}/external/tween-engine/include
)
FILE(GLOB_RECURSE TWEEN_ENGINE_SOURCE ${PROJECT_SOURCE_DIR}/external/tween-engine/src/*.cpp)
set(SOURCE_FILES
${PROJECT_SOURCE_DIR}/src/main.cpp
${PROJECT_SOURCE_DIR}/src/DrawAttack.cpp
${PROJECT_SOURCE_DIR}/src/DrawingBoard.cpp
${PROJECT_SOURCE_DIR}/src/TweenTransformable.cpp
${PROJECT_SOURCE_DIR}/src/SpeechBubble.cpp
${PROJECT_SOURCE_DIR}/src/Notification.cpp
${PROJECT_SOURCE_DIR}/src/ServerListItem.cpp
${PROJECT_SOURCE_DIR}/src/ServerList.cpp
${PROJECT_SOURCE_DIR}/src/ScoreBoard.cpp
${PROJECT_SOURCE_DIR}/src/ChatLog.cpp
${PROJECT_SOURCE_DIR}/src/RichText.cpp
${PROJECT_SOURCE_DIR}/src/GUI/Button.cpp
${PROJECT_SOURCE_DIR}/src/GUI/NinePatch.cpp
${PROJECT_SOURCE_DIR}/src/Keyboard/Keyboard.cpp
${PROJECT_SOURCE_DIR}/src/Keyboard/tinyxml2.cpp
${PROJECT_SOURCE_DIR}/src/States/StateStack.cpp
${PROJECT_SOURCE_DIR}/src/States/State.cpp
${PROJECT_SOURCE_DIR}/src/States/TitleState.cpp
${PROJECT_SOURCE_DIR}/src/States/ServerSelectState.cpp
${PROJECT_SOURCE_DIR}/src/States/PlayState.cpp
${PROJECT_SOURCE_DIR}/src/States/PauseState.cpp
${PROJECT_SOURCE_DIR}/src/States/TransitionMessageState.cpp
${PROJECT_SOURCE_DIR}/src/States/NameSelectState.cpp
${PROJECT_SOURCE_DIR}/src/States/LoadingState.cpp
${PROJECT_SOURCE_DIR}/src/States/ColorPickerState.cpp
${PROJECT_SOURCE_DIR}/src/Network/Client.cpp
${PROJECT_SOURCE_DIR}/src/Network/Player.cpp
${PROJECT_SOURCE_DIR}/src/Network/NetworkEvents.cpp
${PROJECT_SOURCE_DIR}/src/Network/NetworkSoundRecorder.cpp
${PROJECT_SOURCE_DIR}/src/Network/NetworkSoundStream.cpp
${TWEEN_ENGINE_SOURCE}
)
set(SERVER_SOURCE_FILES
${PROJECT_SOURCE_DIR}/src/server.cpp
${PROJECT_SOURCE_DIR}/src/Network/Server.cpp
${PROJECT_SOURCE_DIR}/src/Network/ServerConfig.cpp
${PROJECT_SOURCE_DIR}/src/Network/Player.cpp
${PROJECT_SOURCE_DIR}/src/Network/NetworkEvents.cpp
${PROJECT_SOURCE_DIR}/src/Keyboard/tinyxml2.cpp
)
set(SHADER_AS nihstro)
FILE(GLOB_RECURSE SHADER_FILES ${PROJECT_SOURCE_DIR}/res/shaders/[^.]*)
# Server target
include_directories(${CPP3DS}/include)
link_directories(${CPP3DS}/lib)
add_executable(${PROJECT_NAME}-server ${SERVER_SOURCE_FILES})
set_target_properties(${PROJECT_NAME}-server PROPERTIES COMPILE_DEFINITIONS "EMULATION")
set_target_properties(${PROJECT_NAME}-server PROPERTIES COMPILE_FLAGS "-std=c++11")
target_link_libraries(${PROJECT_NAME}-server cpp3ds-emu sfml-system mbedtls mbedx509 mbedcrypto)
##################################################
# Don't usually need to change anything below
##################################################
set(CPP3DS_ARM_FLAGS "-O2 -fno-rtti -fno-exceptions -march=armv6k -mtune=mpcore -mfloat-abi=hard -mtp=soft")
set(CPP3DS_EMU_FLAGS "-O0")
set(CPP3DS_ARM_LIBS cpp3ds-window cpp3ds-graphics cpp3ds-audio cpp3ds-network cpp3ds-system citro3d mbedtls mbedx509 mbedcrypto ctru freetype png z vorbisenc vorbisfile vorbis ogg bz2 speex speexdsp)
set(CPP3DS_EMU_LIBS cpp3ds-emu sfml-graphics sfml-window sfml-system sfml-network sfml-audio openal GLEW GL jpeg freetype vorbisenc vorbisfile vorbis ogg mbedtls mbedx509 mbedcrypto pthread speex speexdsp)
add_subdirectory(${CPP3DS}/cmake/template_arm build/arm)
add_subdirectory(${CPP3DS}/cmake/template_emu build/emu)