@@ -78,9 +78,10 @@ else()
78
78
endif ()
79
79
endif ()
80
80
81
- ## Compiler flags
81
+ ## Compiler flags, CPACK configuration and other Apple specific code.
82
82
IF (APPLE )
83
83
SET (CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -stdlib=libc++" )
84
+ include (${PROJECT_SOURCE_DIR} /mk/macosx/CMakeLists.txt)
84
85
ENDIF (APPLE )
85
86
86
87
IF (CMAKE_COMPILER_IS_GNUCXX OR MINGW)
@@ -188,19 +189,31 @@ IF(CMAKE_COMPILER_IS_GNUCXX OR MINGW)
188
189
message (STATUS "**WARNING DID NOT Find GCC backtrace lib" )
189
190
ENDIF ()
190
191
192
+ # Default compiler flags
193
+ SET (CMAKE_CXX_FLAGS_NONE "${CMAKE_CXX_FLAGS_NONE} " )
194
+
191
195
# Debug compiler flags
192
196
SET (CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -g3" )
193
197
194
198
# Release compiler flags
195
199
SET (CMAKE_CXX_FLAGS_RELEASE "-O3 ${CMAKE_CXX_FLAGS_RELEASE} -O3 " )
196
- SET (CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -s" ) ## Strip binary
200
+ IF (CMAKE_GENERATOR STREQUAL Xcode)
201
+ SET (CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} " ) ## Strip binary
202
+ ELSE ()
203
+ SET (CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -s" ) ## Strip binary
204
+ ENDIF ()
197
205
198
206
# Release with debug info compiler flags
199
207
SET (CMAKE_CXX_FLAGS_RELWITHDEBINFO "-O3 ${CMAKE_CXX_FLAGS_RELWITHDEBINFO} -g -O3 " )
200
208
201
209
# Release minimum size compiler flags
202
210
SET (CMAKE_CXX_FLAGS_MINSIZEREL "-O3 ${CMAKE_CXX_FLAGS_MINSIZEREL} -O3 " )
203
- SET (CMAKE_EXE_LINKER_FLAGS_MINSIZEREL "${CMAKE_EXE_LINKER_FLAGS_MINSIZEREL} -s" ) ## Strip binary
211
+ SET (CMAKE_EXE_LINKER_FLAGS_MINSIZEREL "${CMAKE_EXE_LINKER_FLAGS_MINSIZEREL} " ) ## Strip binary
212
+ IF (CMAKE_GENERATOR STREQUAL Xcode)
213
+ SET (CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} " ) ## Strip binary
214
+ ELSE ()
215
+ SET (CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -s" ) ## Strip binary
216
+ ENDIF ()
204
217
205
218
# Get the git revision info for the binary
206
219
SET (HAS_GIT "FALSE" )
@@ -239,12 +252,11 @@ IF(CMAKE_COMPILER_IS_GNUCXX OR MINGW)
239
252
ENDIF ()
240
253
ENDIF ()
241
254
242
- IF (APPLE AND NOT CMAKE_COMPILER_IS_GNUCXX)
243
- SET (GIT_VERSION_CMD "-DGITVERSION='\\\\ '${GIT_LIVE_REV_CMD} \\\\ ''" )
244
- ELSE ()
245
- SET (GIT_VERSION_CMD "-DGITVERSION='\\\" ${GIT_LIVE_REV_CMD} \\\" '" )
246
- # SET(SVN_VERSION_CMD "-DSVNVERSION='\\\"`svnversion -n ${PROJECT_SOURCE_DIR}`\\\"'")
247
- ENDIF ()
255
+ IF (CMAKE_GENERATOR STREQUAL Xcode)
256
+ SET (GIT_VERSION_CMD "-DGITVERSION='\\\\ '${GIT_LIVE_REV_CMD} \\\\ ''" )
257
+ ELSE ()
258
+ SET (GIT_VERSION_CMD "-DGITVERSION='\\\" ${GIT_LIVE_REV_CMD} \\\" '" )
259
+ ENDIF ()
248
260
249
261
IF (CMAKE_INSTALL_PREFIX STREQUAL "" )
250
262
MESSAGE (STATUS "*NOTE: NOT USING a Custom Data Install Path..." )
@@ -266,11 +278,7 @@ IF(CMAKE_COMPILER_IS_GNUCXX OR MINGW)
266
278
ENDIF ()
267
279
268
280
IF (NOT CUSTOM_DATA_INSTALL_PATH)
269
- IF (APPLE )
270
- SET (CUSTOM_DATA_INSTALL_PATH "'\\\\ '${CMAKE_INSTALL_PREFIX} /${MEGAGLEST_DATA_INSTALL_PATH} \\\\ ''" CACHE STRING "The FULL installation path for data files (this is build automatically by combining CMAKE_INSTALL_PREFIX and MEGAGLEST_DATA_INSTALL_PATH)" )
271
- ELSE ()
272
- SET (CUSTOM_DATA_INSTALL_PATH "'\\\" ${CMAKE_INSTALL_PREFIX} /${MEGAGLEST_DATA_INSTALL_PATH} \\\" '" CACHE STRING "The FULL installation path for data files (this is build automatically by combining CMAKE_INSTALL_PREFIX and MEGAGLEST_DATA_INSTALL_PATH)" )
273
- ENDIF ()
281
+ SET (CUSTOM_DATA_INSTALL_PATH "\" ${CMAKE_INSTALL_PREFIX} /${MEGAGLEST_DATA_INSTALL_PATH} \" " CACHE STRING "The FULL installation path for data files (this is build automatically by combining CMAKE_INSTALL_PREFIX and MEGAGLEST_DATA_INSTALL_PATH)" )
274
282
ENDIF ()
275
283
SET (CUSTOM_DATA_INSTALL_PATH_VALUE "-DCUSTOM_DATA_INSTALL_PATH=${CUSTOM_DATA_INSTALL_PATH} " )
276
284
@@ -280,19 +288,23 @@ IF(CMAKE_COMPILER_IS_GNUCXX OR MINGW)
280
288
MESSAGE (STATUS "*NOTE: Custom Data Install Path is [${CUSTOM_DATA_INSTALL_PATH} ]" )
281
289
ENDIF ()
282
290
291
+ SET (CMAKE_CXX_FLAGS_NONE "${CMAKE_CXX_FLAGS_NONE} ${GIT_VERSION_CMD} ${CUSTOM_DATA_INSTALL_PATH_VALUE} " )
283
292
SET (CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} ${GIT_VERSION_CMD} ${CUSTOM_DATA_INSTALL_PATH_VALUE} " )
284
293
SET (CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} ${GIT_VERSION_CMD} ${CUSTOM_DATA_INSTALL_PATH_VALUE} " )
285
294
SET (CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} ${GIT_VERSION_CMD} ${CUSTOM_DATA_INSTALL_PATH_VALUE} " )
286
295
SET (CMAKE_CXX_FLAGS_MINSIZEREL "${CMAKE_CXX_FLAGS_MINSIZEREL} ${GIT_VERSION_CMD} ${CUSTOM_DATA_INSTALL_PATH_VALUE} " )
287
296
288
297
# We do some funky character escaping to get the right stuff written out to
289
298
# the final Makefile so we get the GIT Global Revsion #
299
+ string (REPLACE "'" "\" " CMAKE_CXX_FLAGS_NONE "${CMAKE_CXX_FLAGS_NONE} " )
290
300
string (REPLACE "'" "\" " CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} " )
291
301
string (REPLACE "'" "\" " CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} " )
292
302
string (REPLACE "'" "\" " CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} " )
293
303
string (REPLACE "'" "\" " CMAKE_CXX_FLAGS_MINSIZEREL "${CMAKE_CXX_FLAGS_MINSIZEREL} " )
294
304
295
- IF ( CMAKE_BUILD_TYPE STREQUAL Debug )
305
+ IF ( CMAKE_BUILD_TYPE STREQUAL None )
306
+ message ("CMAKE_CXX_FLAGS_NONE: ${CMAKE_CXX_FLAGS_NONE} " )
307
+ ELSEIF ( CMAKE_BUILD_TYPE STREQUAL Debug )
296
308
message ("CMAKE_CXX_FLAGS_DEBUG: ${CMAKE_CXX_FLAGS_DEBUG} " )
297
309
ELSEIF ( CMAKE_BUILD_TYPE STREQUAL Release )
298
310
message ("CMAKE_CXX_FLAGS_RELEASE: ${CMAKE_CXX_FLAGS_RELEASE} " )
@@ -353,10 +365,6 @@ IF(EXISTS "${PROJECT_SOURCE_DIR}/source/")
353
365
#endif()
354
366
ADD_SUBDIRECTORY ( ${PROJECT_SOURCE_DIR} /source /tools/glexemel )
355
367
356
- IF (APPLE )
357
- include (${PROJECT_SOURCE_DIR} /mk/macosx/CMakeLists.txt)
358
- ENDIF ()
359
-
360
368
ADD_SUBDIRECTORY ( ${PROJECT_SOURCE_DIR} /source /tests )
361
369
ENDIF ()
362
370
@@ -373,38 +381,7 @@ IF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
373
381
MESSAGE (WARNING ">> CLANG is NOT currently compatible as it does not support the following essential GCC compiler settings: -frounding-math -fsignaling-nans" )
374
382
ENDIF ()
375
383
376
- SET (CPACK_GENERATOR "DEB" )
377
- SET (CPACK_DEBIAN_PACKAGE_MAINTAINER "Mark Vejvoda" ) #required
378
- SET (CPACK_DEBIAN_PACKAGE_DEPENDS "
379
- libcurl4-gnutls-dev | libcurl4-nss-dev,
380
- libfontconfig1-dev,
381
- libftgl-dev,
382
- libglew-dev,
383
- libircclient-dev,
384
- libjpeg-dev,
385
- liblua5.1-0-dev,
386
- libminiupnpc-dev,
387
- libogg-dev,
388
- libopenal-dev,
389
- libpng12-dev,
390
- libsdl1.2-dev,
391
- libvlc-dev,
392
- libvorbis-dev,
393
- libwxgtk2.8-dev,
394
- libxerces-c2-dev,
395
- libxml2-dev,
396
- libz-dev,
397
- libfribidi-dev" )
398
-
399
- #find_program(DPKG_PROGRAM dpkg DOC "dpkg program of Debian-based systems")
400
- #if(DPKG_PROGRAM)
401
- # execute_process(
402
- # COMMAND ${DPKG_PROGRAM} --print-architecture
403
- # OUTPUT_VARIABLE CPACK_DEBIAN_PACKAGE_ARCHITECTURE
404
- # OUTPUT_STRIP_TRAILING_WHITESPACE
405
- # )
406
- #endif(DPKG_PROGRAM)
407
-
384
+ # CPack configuration shared accross platforms
408
385
SET (CPACK_PACKAGE_NAME ${PKG_NAME} )
409
386
SET (CPACK_PACKAGE_DESCRIPTION_SUMMARY "MegaGlest" )
410
387
SET (CPACK_PACKAGE_VENDOR "megaglest.org" )
@@ -414,12 +391,50 @@ SET(CPACK_PACKAGE_INSTALL_DIRECTORY "megaglest")
414
391
SET (CPACK_PACKAGE_VERSION_MAJOR ${VER_MAJOR} )
415
392
SET (CPACK_PACKAGE_VERSION_MINOR ${VER_MINOR} )
416
393
SET (CPACK_PACKAGE_VERSION_PATCH ${VER_RELEASE} )
417
- IF (WIN32 )
418
- SET (CPACK_NSIS_DISPLAY_NAME "MegaGlest" )
419
- SET (CPACK_NSIS_MUI_ICON "${PROJECT_SOURCE_DIR} /mk/windoze/glest.ico" )
420
- SET (CPACK_PACKAGE_ICON "${PROJECT_SOURCE_DIR} /mk/windoze/megaglest.ico" )
421
- SET (CPACK_NSIS_URL_INFO_ABOUT "http://megaglest.org" )
422
- ENDIF ()
394
+
395
+
396
+ # Debian specific generator options
397
+ IF (NOT DEFINED CPACK_GENERATOR)
398
+ SET (CPACK_GENERATOR "DEB" )
399
+ SET (CPACK_DEBIAN_PACKAGE_MAINTAINER "Mark Vejvoda" ) #required
400
+ SET (CPACK_DEBIAN_PACKAGE_DEPENDS "
401
+ libcurl4-gnutls-dev | libcurl4-nss-dev,
402
+ libfontconfig1-dev,
403
+ libftgl-dev,
404
+ libglew-dev,
405
+ libircclient-dev,
406
+ libjpeg-dev,
407
+ liblua5.1-0-dev,
408
+ libminiupnpc-dev,
409
+ libogg-dev,
410
+ libopenal-dev,
411
+ libpng12-dev,
412
+ libsdl1.2-dev,
413
+ libvlc-dev,
414
+ libvorbis-dev,
415
+ libwxgtk2.8-dev,
416
+ libxerces-c2-dev,
417
+ libxml2-dev,
418
+ libz-dev,
419
+ libfribidi-dev" )
420
+
421
+ #find_program(DPKG_PROGRAM dpkg DOC "dpkg program of Debian-based systems")
422
+ #if(DPKG_PROGRAM)
423
+ # execute_process(
424
+ # COMMAND ${DPKG_PROGRAM} --print-architecture
425
+ # OUTPUT_VARIABLE CPACK_DEBIAN_PACKAGE_ARCHITECTURE
426
+ # OUTPUT_STRIP_TRAILING_WHITESPACE
427
+ # )
428
+ #endif(DPKG_PROGRAM)
429
+ ENDIF (NOT DEFINED CPACK_GENERATOR)
430
+
431
+ IF (CPACK_GENERATOR STREQUAL "NSIS" )
432
+ SET (CPACK_NSIS_DISPLAY_NAME "MegaGlest" )
433
+ SET (CPACK_NSIS_MUI_ICON "${PROJECT_SOURCE_DIR} /mk/windoze/glest.ico" )
434
+ SET (CPACK_PACKAGE_ICON "${PROJECT_SOURCE_DIR} /mk/windoze/megaglest.ico" )
435
+ SET (CPACK_NSIS_URL_INFO_ABOUT "http://megaglest.org" )
436
+ ENDIF (CPACK_GENERATOR STREQUAL "NSIS" )
437
+
423
438
INCLUDE (CPack)
424
439
425
440
get_directory_property ( DirDefs DIRECTORY ${CMAKE_SOURCE_DIR} COMPILE_DEFINITIONS )
0 commit comments