-
Notifications
You must be signed in to change notification settings - Fork 0
/
CMakeLists.txt
136 lines (106 loc) · 3.74 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
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
# minimun required
cmake_minimum_required(VERSION 2.6)
PROJECT(CandyNapper)
#########################
# Flags para el proyecto#
#########################
# Flag para compilar la Box2D o usar la instalada. ON la compilara
set(BOX2D ON)
# Flag para compilar los programas find_package(SFML)de test (DEBUG)
set(TEST_DEBUG ON)
##########################
# Deteccion de librerias #
##########################
# Deteccion (obligatoria) de OpenGL
find_package(OpenGL REQUIRED)
find_package(Freetype REQUIRED)
message(${FREETYPE_INCLUDE_DIRS})
message(${FREETYPE_INCLUDE_DIRS})
# Deteccion de la SFML
find_package(SFML) #Seria recomendable saber la version
##############################################
# Compilación de librerías externas al juego #
##############################################
set(SFML_FOUND OFF) #¡¡¡COMENTAR!!!
# Compilacion de la FTGL (la ponemos la primera, por que creo que la SFML chafa algunas variables)
add_subdirectory(extlibs/FTGL)
# Compilación de la SFML (discrimina entre si esta instalada o no)
if(SFML_FOUND)
set(SFML_HS ${SFML_INCLUDE_DIR})
set(SFML_LIBS )
else(SFML_FOUND)
add_subdirectory(extlibs/SFML)
set(SFML_HS ${PROJECT_SOURCE_DIR}/extlibs/SFML/include)
set(SFML_LIBS ${PROJECT_BINARY_DIR}/extlibs/SFML)
endif(SFML_FOUND)
# Compilacion de la Box2D (discrimina entre si esta instalada o no, segun el flag)
if(BOX2D)
add_subdirectory(extlibs/Box2D)
endif(BOX2D)
# Compilacion de la tinyXML
add_subdirectory(extlibs/tinyXML)
# Compilacion de la poly2tri
add_subdirectory(extlibs/poly2tri)
# Compilacion de la Clipper
add_subdirectory(extlibs/Clipper)
#####################################
# INCLUDES y LIBS externos al juego #
#####################################
set(INCDIRS
#${PROJECT_SOURCE_DIR}/MotorIA/include
${SFML_HS}
${PROJECT_SOURCE_DIR}/extlibs/Box2D
${PROJECT_SOURCE_DIR}/extlibs/tinyXML
${PROJECT_SOURCE_DIR}/extlibs/FTGL
${PROJECT_SOURCE_DIR}/extlibs/poly2tri
${PROJECT_SOURCE_DIR}/extlibs/Clipper
${FREETYPE_INCLUDE_DIRS}
${PROJECT_SOURCE_DIR}/CandyMath/include
${PROJECT_SOURCE_DIR}/CandyGraphics/include
${PROJECT_SOURCE_DIR}/MotorIA/MaquinaEstados
${PROJECT_SOURCE_DIR}/MotorIA/Pathfinding/include
${PROJECT_SOURCE_DIR}/CandyMusic/include
)
set(LIBDIRS
#${PROJECT_BINARY_DIR}/MotorIA/lib
${SFML_LIBS}
${PROJECT_BINARY_DIR}/extlibs/Box2D/Box2D
${PROJECT_BINARY_DIR}/extlibs/tinyXML
${PROJECT_BINARY_DIR}/extlibs/FTGL
${PROJECT_BINARY_DIR}/extlibs/poly2tri
${PROJECT_BINARY_DIR}/extlibs/Clipper
${PROJECT_BINARY_DIR}/CandyMath/lib
${PROJECT_BINARY_DIR}/CandyGraphics/lib
${PROJECT_BINARY_DIR}/MotorIA
${PROJECT_BINARY_DIR}/CandyMusic/lib
)
include_directories(${INCDIRS})
link_directories(${LIBDIRS})
################################
# Compilacion de nuestras libs #
################################
add_definitions(-g -Wall)
#add_subdirectory(MotorIA/Pathfinding)
add_subdirectory(CandyMath)
add_subdirectory(CandyGraphics)
add_subdirectory(MotorIA)
add_subdirectory(CandyMusic)
##################################
# Compilacion de los ejecutables #
##################################
add_subdirectory(entregables)
#########################
# Compilacion del juego #
#########################
add_subdirectory(CandyNapper)
#########################
# Instalacion del juego #
######################### no funciona bien!!
install_files(${INCDIRS})
install_files(${LIBDIRS})
#ADD_EXECUTABLE(CandyNapper ${LIBDIRS})
#INSTALL(TARGETS CandyNapper DESTINATION candynapper)
#SET_TARGET_PROPERTIES(CandyNapper PROPERTIES LINKER_LANGUAGE C++)
SET(CPACK_GENERATOR "DEB")
SET(CPACK_DEBIAN_PACKAGE_MAINTAINER "JohnCor")
INCLUDE(CPack)