1
1
##########################################################################
2
- # build/ CMakeLists-Win-msys64 .txt of project Collision
2
+ # CMakeLists.txt of project Collision
3
3
# Author : lzh
4
4
# Modifier : lzh
5
5
# Description : Instruction file for CMake to generate Makefile.
@@ -25,30 +25,296 @@ SET(COLLISION_SRCS collision.cpp display.cpp draw.cpp update.cpp game.cpp global
25
25
26
26
ADD_EXECUTABLE (${COLLISION_EXE_NAME} ${COLLISION_SRCS} )
27
27
28
+ # Setup option list
29
+
30
+ OPTION (CMAKE_WITH_DEBUG "Generate Makefile in debug mode in cmake" OFF )
31
+
32
+ OPTION (BUILD_WITH_STATIC "Switch to build statically" OFF )
33
+ OPTION (BUILD_WITH_DEBUG "Switch to build in debug mode" OFF )
34
+
35
+ SET (COLLISION_INCLUDE_DIR "" CACHE STRING "Include directories for the whole project" )
36
+ SET (COLLISION_LIBRARY_DIR "" CACHE STRING "Library paths for the whole project" )
37
+
38
+ OPTION (HINT_JPEG_FOUND "Switch to hint for libjpeg" OFF )
39
+ SET (HINT_JPEG_INCLUDE_DIR "" CACHE STRING "Include directories hinting for libjpeg" )
40
+ SET (HINT_JPEG_LIBRARY "" CACHE STRING "Library names hinting for libjpeg" )
41
+
42
+ OPTION (HINT_OPENGL_FOUND "Switch to hint for OpenGL" OFF )
43
+ SET (HINT_OPENGL_INCLUDE_DIR "" CACHE STRING "Include directories hinting for OpenGL" )
44
+ SET (HINT_OPENGL_LIBRARY "" CACHE STRING "Library names hinting for OpenGL" )
45
+
46
+ OPTION (HINT_GLU_FOUND "Switch to hint for glu" OFF )
47
+ SET (HINT_GLU_INCLUDE_DIR "" CACHE STRING "Include directories hinting for glu" )
48
+ SET (HINT_GLU_LIBRARY "" CACHE STRING "Library names hinting for glu" )
49
+
50
+ OPTION (HINT_GLFW3_FOUND "Switch to hint for glfw3" OFF )
51
+ SET (HINT_GLFW3_INCLUDE_DIR "" CACHE STRING "Include directories hinting for glfw3" )
52
+ SET (HINT_GLFW3_LIBRARY "" CACHE STRING "Library names hinting for glfw3" )
53
+
54
+ OPTION (HINT_OPENAL_FOUND "Switch to hint for OpenAL" OFF )
55
+ SET (HINT_OPENAL_INCLUDE_DIR "" CACHE STRING "Include directories hinting for OpenAL" )
56
+ SET (HINT_OPENAL_LIBRARY "" CACHE STRING "Library names hinting for OpenAL" )
57
+
58
+ OPTION (HINT_ALUT_FOUND "Switch to hint for alut" OFF )
59
+ SET (HINT_ALUT_INCLUDE_DIR "" CACHE STRING "Include directories hinting for alut" )
60
+ SET (HINT_ALUT_LIBRARY "" CACHE STRING "Library names hinting for alut" )
61
+
28
62
# Setup libraries list
29
63
30
- IF (WIN32 )
31
- SET (COLLISION_LIBS glfw3 glu32 opengl32 winmm gdi32 jpeg \"alut.dll\" \" openal.dll\" m)
32
- ELSEIF (APPLE)
33
- SET(COLLISION_LIBS " -dylib libglfw " " -dylib openal " jpeg " -framework GLUT " alut " -framework OpenGL ")
34
- ELSEIF (UNIX)
35
- SET(COLLISION_LIBS glfw GL GLU jpeg alut openal m)
64
+ INCLUDE_DIRECTORIES (${COLLISION_INCLUDE_DIR} )
65
+ LINK_DIRECTORIES (${COLLISION_LIBRARY_DIR} )
66
+
67
+ FIND_PACKAGE (PkgConfig )
68
+
69
+ TARGET_LINK_LIBRARIES (${COLLISION_EXE_NAME} ${COLLISION_LIBS} )
70
+
71
+ IF (HINT_JPEG_FOUND )
72
+ INCLUDE_DIRECTORIES (${HINT_JPEG_INCLUDE_DIR} )
73
+ TARGET_LINK_LIBRARIES (${COLLISION_EXE_NAME} ${HINT_JPEG_LIBRARY} )
74
+ IF (CMAKE_WITH_DEBUG )
75
+ MESSAGE (STATUS "libjpeg found by HINT mode." )
76
+ ENDIF ()
77
+ ENDIF ()
78
+ IF (NOT HINT_JPEG_FOUND AND PKGCONFIG_FOUND )
79
+ PKG_SEARCH_MODULE (PC_JPEG jpeg libjpeg )
80
+ IF ((BUILD_WITH_STATIC STREQUAL "ON" ) AND PC_JPEG_STATIC_FOUND )
81
+ INCLUDE_DIRECTORIES (${PC_JPEG_STATIC_INCLUDE_DIRS} )
82
+ TARGET_LINK_LIBRARIES (${COLLISION_EXE_NAME} ${PC_JPEG_STATIC_LIBRARIES} )
83
+ IF (CMAKE_WITH_DEBUG )
84
+ MESSAGE (STATUS "libjpeg found by PC-STATIC mode." )
85
+ ENDIF ()
86
+ ELSEIF (PC_JPEG_FOUND )
87
+ INCLUDE_DIRECTORIES (${PC_JPEG_INCLUDE_DIRS} )
88
+ TARGET_LINK_LIBRARIES (${COLLISION_EXE_NAME} ${PC_JPEG_LIBRARIES} )
89
+ IF (CMAKE_WITH_DEBUG )
90
+ MESSAGE (STATUS "libjpeg found by PC mode." )
91
+ ENDIF ()
92
+ ENDIF ()
93
+ ENDIF ()
94
+ IF (NOT HINT_JPEG_FOUND AND NOT PC_JPEG_FOUND )
95
+ FIND_PACKAGE (JPEG )
96
+ IF (JPEG_FOUND )
97
+ INCLUDE_DIRECTORIES (${JPEG_INCLUDE_DIR} )
98
+ TARGET_LINK_LIBRARIES (${COLLISION_EXE_NAME} ${JPEG_LIBRARY} )
99
+ IF (CMAKE_WITH_DEBUG )
100
+ MESSAGE (STATUS "libjpeg found by CMAKE mode." )
101
+ ENDIF ()
102
+ ENDIF ()
103
+ ENDIF ()
104
+ IF (NOT HINT_JPEG_FOUND AND NOT JPEG_FOUND AND NOT PC_JPEG_FOUND AND NOT PC_JPEG_STATIC_FOUND )
105
+ MESSAGE (FATAL_ERROR "Cannot find the libjpeg library." )
36
106
ENDIF ()
37
107
108
+ IF (HINT_OPENGL_FOUND )
109
+ INCLUDE_DIRECTORIES (${HINT_OPENGL_INCLUDE_DIR} )
110
+ TARGET_LINK_LIBRARIES (${COLLISION_EXE_NAME} ${HINT_OPENGL_LIBRARY} )
111
+ IF (CMAKE_WITH_DEBUG )
112
+ MESSAGE (STATUS "OpenGL found by HINT mode." )
113
+ ENDIF ()
114
+ ENDIF ()
115
+ IF (NOT HINT_OPENGL_FOUND AND PKGCONFIG_FOUND )
116
+ PKG_SEARCH_MODULE (PC_OPENGL OpenGL GL gl opengl32 )
117
+ IF ((BUILD_WITH_STATIC STREQUAL "ON" ) AND PC_OPENGL_STATIC_FOUND )
118
+ INCLUDE_DIRECTORIES (${PC_OPENGL_STATIC_INCLUDE_DIRS} )
119
+ TARGET_LINK_LIBRARIES (${COLLISION_EXE_NAME} ${PC_OPENGL_STATIC_LIBRARIES} )
120
+ IF (CMAKE_WITH_DEBUG )
121
+ MESSAGE (STATUS "OpenGL found by PC-STATIC mode." )
122
+ ENDIF ()
123
+ ELSEIF (PC_OPENGL_FOUND )
124
+ INCLUDE_DIRECTORIES (${PC_OPENGL_INCLUDE_DIRS} )
125
+ TARGET_LINK_LIBRARIES (${COLLISION_EXE_NAME} ${PC_OPENGL_LIBRARIES} )
126
+ IF (CMAKE_WITH_DEBUG )
127
+ MESSAGE (STATUS "OpenGL found by PC mode." )
128
+ ENDIF ()
129
+ ENDIF ()
130
+ ENDIF ()
131
+ IF (NOT HINT_OPENGL_FOUND AND NOT PC_OPENGL_FOUND )
132
+ FIND_PACKAGE (OPENGL )
133
+ IF (OPENGL_FOUND )
134
+ INCLUDE_DIRECTORIES (${OPENGL_INCLUDE_DIR} )
135
+ TARGET_LINK_LIBRARIES (${COLLISION_EXE_NAME} ${OPENGL_gl_LIBRARY} )
136
+ IF (CMAKE_WITH_DEBUG )
137
+ MESSAGE (STATUS "OpenGL found by CMAKE mode." )
138
+ ENDIF ()
139
+ ENDIF ()
140
+ ENDIF ()
141
+ IF (NOT HINT_OPENGL_FOUND AND NOT OPENGL_FOUND AND NOT PC_OPENGL_FOUND AND NOT PC_OPENGL_STATIC_FOUND )
142
+ MESSAGE (FATAL_ERROR "Cannot find the OpenGL library." )
143
+ ENDIF ()
38
144
39
- # Add include directories to search for the target
145
+ IF (HINT_GLU_FOUND )
146
+ INCLUDE_DIRECTORIES (${HINT_GLU_INCLUDE_DIR} )
147
+ TARGET_LINK_LIBRARIES (${COLLISION_EXE_NAME} ${HINT_GLU_LIBRARY} )
148
+ IF (CMAKE_WITH_DEBUG )
149
+ MESSAGE (STATUS "glu found by HINT mode." )
150
+ ENDIF ()
151
+ ENDIF ()
152
+ IF (NOT HINT_GLU_FOUND AND OPENGL_GLU_FOUND )
153
+ INCLUDE_DIRECTORIES (${OPENGL_glu_INCLUDE_DIR} )
154
+ TARGET_LINK_LIBRARIES (${COLLISION_EXE_NAME} ${OPENGL_glu_LIBRARY} )
155
+ IF (CMAKE_WITH_DEBUG )
156
+ MESSAGE (STATUS "glu found by OpenGL-glu mode." )
157
+ ENDIF ()
158
+ ENDIF ()
159
+ IF (NOT HINT_GLU_FOUND AND NOT OPENGL_GLU_FOUND AND PKGCONFIG_FOUND )
160
+ PKG_SEARCH_MODULE (PC_GLU glu GLU glu32 )
161
+ IF ((BUILD_WITH_STATIC STREQUAL "ON" ) AND PC_GLU_STATIC_FOUND )
162
+ INCLUDE_DIRECTORIES (${PC_GLU_STATIC_INCLUDE_DIRS} )
163
+ TARGET_LINK_LIBRARIES (${COLLISION_EXE_NAME} ${PC_GLU_STATIC_LIBRARIES} )
164
+ IF (CMAKE_WITH_DEBUG )
165
+ MESSAGE (STATUS "glu found by PC-STATIC mode." )
166
+ ENDIF ()
167
+ ELSEIF (PC_GLU_FOUND )
168
+ INCLUDE_DIRECTORIES (${PC_GLU_INCLUDE_DIRS} )
169
+ TARGET_LINK_LIBRARIES (${COLLISION_EXE_NAME} ${PC_GLU_LIBRARIES} )
170
+ IF (CMAKE_WITH_DEBUG )
171
+ MESSAGE (STATUS "glu found by PC mode." )
172
+ ENDIF ()
173
+ ENDIF ()
174
+ ENDIF ()
175
+ IF (NOT HINT_GLU_FOUND AND NOT OPENGL_GLU_FOUND AND NOT PC_GLU_FOUND )
176
+ FIND_PACKAGE (GLU )
177
+ IF (GLU_FOUND )
178
+ INCLUDE_DIRECTORIES (${GLU_INCLUDE_DIR} )
179
+ TARGET_LINK_LIBRARIES (${COLLISION_EXE_NAME} ${GLU_LIBRARY} )
180
+ IF (CMAKE_WITH_DEBUG )
181
+ MESSAGE (STATUS "glu found by CMAKE mode." )
182
+ ENDIF ()
183
+ ENDIF ()
184
+ ENDIF ()
185
+ IF (NOT HINT_GLU_FOUND AND NOT OPENGL_GLU_FOUND AND NOT GLU_FOUND AND NOT PC_GLU_FOUND AND NOT PC_GLU_STATIC_FOUND )
186
+ MESSAGE (FATAL_ERROR "Cannot find the glu library." )
187
+ ENDIF ()
40
188
41
- TARGET_LINK_LIBRARIES (${COLLISION_EXE_NAME} ${COLLISION_LIBS} )
189
+ IF (HINT_GLFW3_FOUND )
190
+ INCLUDE_DIRECTORIES (${HINT_GLFW3_INCLUDE_DIR} )
191
+ TARGET_LINK_LIBRARIES (${COLLISION_EXE_NAME} ${HINT_GLFW3_LIBRARY} )
192
+ IF (CMAKE_WITH_DEBUG )
193
+ MESSAGE (STATUS "glfw3 found by HINT mode." )
194
+ ENDIF ()
195
+ ENDIF ()
196
+ IF (NOT HINT_GLFW3_FOUND AND PKGCONFIG_FOUND )
197
+ PKG_SEARCH_MODULE (PC_GLFW3 glfw3 glfw )
198
+ IF ((BUILD_WITH_STATIC STREQUAL "ON" ) AND PC_GLFW3_STATIC_FOUND )
199
+ INCLUDE_DIRECTORIES (${PC_GLFW3_STATIC_INCLUDE_DIRS} )
200
+ TARGET_LINK_LIBRARIES (${COLLISION_EXE_NAME} ${PC_GLFW3_STATIC_LIBRARIES} )
201
+ IF (CMAKE_WITH_DEBUG )
202
+ MESSAGE (STATUS "glfw3 found by PC-STATIC mode." )
203
+ ENDIF ()
204
+ ELSEIF (PC_GLFW3_FOUND )
205
+ INCLUDE_DIRECTORIES (${PC_GLFW3_INCLUDE_DIRS} )
206
+ TARGET_LINK_LIBRARIES (${COLLISION_EXE_NAME} ${PC_GLFW3_LIBRARIES} )
207
+ IF (CMAKE_WITH_DEBUG )
208
+ MESSAGE (STATUS "glfw3 found by PC mode." )
209
+ ENDIF ()
210
+ ENDIF ()
211
+ ENDIF ()
212
+ IF (NOT HINT_GLFW3_FOUND AND NOT PC_GLFW3_FOUND )
213
+ FIND_PACKAGE (GLFW3 )
214
+ IF (GLFW3_FOUND )
215
+ SET (GLFW_BUILD_DOCS OFF CACHE BOOL "" FORCE )
216
+ SET (GLFW_BUILD_TESTS OFF CACHE BOOL "" FORCE )
217
+ SET (GLFW_BUILD_EXAMPLES OFF CACHE BOOL "" FORCE )
218
+ TARGET_LINK_LIBRARIES (${COLLISION_EXE_NAME} glfw )
219
+ IF (CMAKE_WITH_DEBUG )
220
+ MESSAGE (STATUS "glfw3 found by CMAKE mode." )
221
+ ENDIF ()
222
+ ENDIF ()
223
+ ENDIF ()
224
+ IF (NOT HINT_GLFW3_FOUND AND NOT GLFW3_FOUND AND NOT PC_GLFW3_FOUND AND NOT PC_GLFW3_STATIC_FOUND )
225
+ MESSAGE (FATAL_ERROR "Cannot find the glfw3 library." )
226
+ ENDIF ()
227
+
228
+ IF (HINT_OPENAL_FOUND )
229
+ INCLUDE_DIRECTORIES (${HINT_OPENAL_INCLUDE_DIR} )
230
+ TARGET_LINK_LIBRARIES (${COLLISION_EXE_NAME} ${HINT_OPENAL_LIBRARY} )
231
+ IF (CMAKE_WITH_DEBUG )
232
+ MESSAGE (STATUS "OpenAL found by HINT mode." )
233
+ ENDIF ()
234
+ ENDIF ()
235
+ IF (NOT HINT_OPENAL_FOUND AND PKGCONFIG_FOUND )
236
+ PKG_SEARCH_MODULE (PC_OPENAL OpenAL openal )
237
+ IF ((BUILD_WITH_STATIC STREQUAL "ON" ) AND PC_OPENAL_STATIC_FOUND )
238
+ INCLUDE_DIRECTORIES (${PC_OPENAL_STATIC_INCLUDE_DIRS} )
239
+ TARGET_LINK_LIBRARIES (${COLLISION_EXE_NAME} ${PC_OPENAL_STATIC_LIBRARIES} )
240
+ IF (CMAKE_WITH_DEBUG )
241
+ MESSAGE (STATUS "OpenAL found by PC-STATIC mode." )
242
+ ENDIF ()
243
+ ELSEIF (PC_OPENAL_FOUND )
244
+ INCLUDE_DIRECTORIES (${PC_OPENAL_INCLUDE_DIRS} )
245
+ TARGET_LINK_LIBRARIES (${COLLISION_EXE_NAME} ${PC_OPENAL_LIBRARIES} )
246
+ IF (CMAKE_WITH_DEBUG )
247
+ MESSAGE (STATUS "OpenAL found by PC mode." )
248
+ ENDIF ()
249
+ ENDIF ()
250
+ ENDIF ()
251
+ IF (NOT HINT_OPENAL_FOUND AND NOT PC_OPENAL_FOUND )
252
+ FIND_PACKAGE (OPENAL )
253
+ IF (OPENAL_FOUND )
254
+ INCLUDE_DIRECTORIES (${OPENAL_INCLUDE_DIR} )
255
+ TARGET_LINK_LIBRARIES (${COLLISION_EXE_NAME} ${OPENAL_LIBRARY} )
256
+ IF (CMAKE_WITH_DEBUG )
257
+ MESSAGE (STATUS "OpenAL found by CMAKE mode." )
258
+ ENDIF ()
259
+ ENDIF ()
260
+ ENDIF ()
261
+ IF (NOT HINT_OPENAL_FOUND AND NOT OPENAL_FOUND AND NOT PC_OPENAL_FOUND AND NOT PC_OPENAL_STATIC_FOUND )
262
+ MESSAGE (FATAL_ERROR "Cannot find the OpenAL library." )
263
+ ENDIF ()
264
+
265
+ IF (HINT_ALUT_FOUND )
266
+ INCLUDE_DIRECTORIES (${HINT_ALUT_INCLUDE_DIR} )
267
+ TARGET_LINK_LIBRARIES (${COLLISION_EXE_NAME} ${HINT_ALUT_LIBRARY} )
268
+ IF (CMAKE_WITH_DEBUG )
269
+ MESSAGE (STATUS "alut found by HINT mode." )
270
+ ENDIF ()
271
+ ENDIF ()
272
+ IF (NOT HINT_ALUT_FOUND AND PKGCONFIG_FOUND )
273
+ PKG_SEARCH_MODULE (PC_ALUT alut alut32 Alut freealut )
274
+ IF ((BUILD_WITH_STATIC STREQUAL "ON" ) AND PC_ALUT_STATIC_FOUND )
275
+ INCLUDE_DIRECTORIES (${PC_ALUT_STATIC_INCLUDE_DIRS} )
276
+ TARGET_LINK_LIBRARIES (${COLLISION_EXE_NAME} ${PC_ALUT_STATIC_LIBRARIES} )
277
+ IF (CMAKE_WITH_DEBUG )
278
+ MESSAGE (STATUS "alut found by PC-STATIC mode." )
279
+ ENDIF ()
280
+ ELSEIF (PC_ALUT_FOUND )
281
+ INCLUDE_DIRECTORIES (${PC_ALUT_INCLUDE_DIRS} )
282
+ TARGET_LINK_LIBRARIES (${COLLISION_EXE_NAME} ${PC_ALUT_LIBRARIES} )
283
+ IF (CMAKE_WITH_DEBUG )
284
+ MESSAGE (STATUS "alut found by PC mode." )
285
+ ENDIF ()
286
+ ENDIF ()
287
+ ENDIF ()
288
+ IF (NOT HINT_ALUT_FOUND AND NOT PC_ALUT_FOUND )
289
+ FIND_PACKAGE (ALUT )
290
+ IF (ALUT_FOUND )
291
+ INCLUDE_DIRECTORIES (${ALUT_INCLUDE_DIR} )
292
+ TARGET_LINK_LIBRARIES (${COLLISION_EXE_NAME} ${ALUT_LIBRARY} )
293
+ IF (CMAKE_WITH_DEBUG )
294
+ MESSAGE (STATUS "alut found by CMAKE mode." )
295
+ ENDIF ()
296
+ ENDIF ()
297
+ ENDIF ()
298
+ IF (NOT HINT_ALUT_FOUND AND NOT ALUT_FOUND AND NOT PC_ALUT_FOUND AND NOT PC_ALUT_STATIC_FOUND )
299
+ MESSAGE (FATAL_ERROR "Cannot find the alut library." )
300
+ ENDIF ()
42
301
43
302
# Add flags for the target
44
303
45
- IF (WIN32 )
304
+ IF (BUILD_WITH_STATIC )
46
305
SET_TARGET_PROPERTIES (${COLLISION_EXE_NAME} PROPERTIES LINK_FLAGS -static )
47
- ELSEIF (UNIX )
306
+ ENDIF ( )
48
307
49
- ENDIF()
308
+ SET_TARGET_PROPERTIES (${COLLISION_EXE_NAME} PROPERTIES COMPILE_FLAGES -O2 )
309
+
310
+ IF (BUILD_WITH_DEBUG )
311
+ SET_TARGET_PROPERTIES (${COLLISION_EXE_NAME} PROPERTIES COMPILE_FLAGES -g )
312
+ ENDIF ()
50
313
51
314
# Do miscellaneous things for the target
52
315
53
- SET(COLLISION_DEFS -DRELEASE)
54
- ADD_DEFINITIONS(${COLLISION_DEFS} )
316
+ IF (BUILD_WITH_DEBUG )
317
+ ADD_DEFINITIONS (-DDEBUG )
318
+ ELSE ()
319
+ ADD_DEFINITIONS (-DRELEASE )
320
+ ENDIF ()
0 commit comments