2010-12-09 17:19:19 +00:00
CMAKE_MINIMUM_REQUIRED ( VERSION 2.6.2 )
2010-06-05 17:34:55 +00:00
PROJECT ( MegaGlest )
2012-03-14 21:52:13 +00:00
#SET(CMAKE_VERBOSE_MAKEFILE ON)
2010-12-12 08:10:18 +00:00
#
# *NOTE: For now we assume some variation of GCC Compiler (or MingW for Windows binaries)
# VC++ users should not use CMake yet but rather the build-mg.bat file in mk/windoze
#
# build type defaults to release
if ( NOT DEFINED CMAKE_BUILD_TYPE )
set ( CMAKE_BUILD_TYPE Release CACHE STRING "Choose build type: None(CMAKE_CXX_FLAGS or CMAKE_C_FLAGS used) Debug Release RelWithDebInfo MinSizeRel." )
endif ( NOT DEFINED CMAKE_BUILD_TYPE )
# add additional CMake modules
2013-11-19 16:23:31 +00:00
MESSAGE ( STATUS "CMAKE_SOURCE_DIR = ${CMAKE_SOURCE_DIR}" )
2010-12-12 08:10:18 +00:00
list ( APPEND CMAKE_MODULE_PATH ${ CMAKE_SOURCE_DIR } /mk/cmake/Modules )
MESSAGE ( STATUS "Build type for this compile will be: ${CMAKE_BUILD_TYPE}" )
2013-11-19 08:04:38 +00:00
IF ( "${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang" )
SET ( CMAKE_COMPILER_IS_GNUCXX "YES" )
2014-02-06 19:14:14 -08:00
# ADD_DEFINITIONS("-Qunused-arguments -Wno-switch")
ADD_DEFINITIONS ( "-Wno-switch" )
2013-11-19 08:04:38 +00:00
ENDIF ( )
2011-10-17 16:59:22 +00:00
OPTION ( BUILD_MEGAGLEST_MODEL_IMPORT_EXPORT_TOOLS "Build model import/export tools" ON )
OPTION ( BUILD_MEGAGLEST_MODEL_VIEWER "Build model viewer" ON )
OPTION ( BUILD_MEGAGLEST_MAP_EDITOR "Build map editor" ON )
OPTION ( BUILD_MEGAGLEST "Build MegaGlest" ON )
2013-04-30 01:27:14 +00:00
OPTION ( BUILD_MEGAGLEST_TESTS "Build MegaGlest Unit Tests" OFF )
2012-11-14 19:20:08 +00:00
OPTION ( WITH_VLC "Use libVLC to play videos" ON )
2011-10-17 16:59:22 +00:00
2011-12-15 18:01:07 +00:00
FIND_PROGRAM ( HELP2MAN "help2man" )
set ( XVFB_EXEC "" )
find_program ( XVFB_RUN NAMES "xvfb-run" )
if ( NOT ${ XVFB_RUN } MATCHES "XVFB_RUN-NOTFOUND" )
set ( XVFB_EXEC ${ XVFB_RUN } )
message ( STATUS "Using xvfb-run to run man2help." )
endif ( )
2011-12-23 04:51:44 +00:00
include ( ${ CMAKE_SOURCE_DIR } /mk/cmake/Modules/SpecialMacros.cmake )
2011-12-15 18:01:07 +00:00
2013-01-03 21:57:58 +00:00
SET ( PKG_NAME "megaglest" )
# read version
file ( READ ${ PROJECT_SOURCE_DIR } /source/glest_game/facilities/game_util.cpp MG_VERSION_H_CONTENTS )
# find the version string
2013-02-08 06:45:33 +00:00
#
2013-03-05 19:56:23 +00:00
MESSAGE ( STATUS "Determining version number system type to use:" )
2013-02-08 06:45:33 +00:00
string ( REGEX MATCH "\" v([0-9] ) . ( [ 0 - 9 ] ) . ( [ 0 - 9 ] . * ) [ ^ \ " ; ] " _ t h r e e P a r t M a t c h $ { M G _ V E R S I O N _ H _ C O N T E N T S } )
if ( NOT _threePartMatch )
2013-03-05 19:56:23 +00:00
MESSAGE ( STATUS "** Trying 2 part versioning] " )
2013-02-08 06:45:33 +00:00
string ( REGEX MATCH "\" v([0-9] ) . ( [ 0 - 9 ] . * ) [ ^ \ " ; ] " _ t h r e e P a r t M a t c h $ { M G _ V E R S I O N _ H _ C O N T E N T S } )
if ( _threePartMatch )
# parse the parts of the version string
STRING ( REGEX REPLACE "\" v([0-9] ) \ \ . [ 0 - 9 ] . * " " \ \ 1 " V E R _ M A J O R " $ { _ t h r e e P a r t M a t c h } " )
STRING ( REGEX REPLACE "\" v[0-9]\\.([0-9] ) . * " " \ \ 1 " V E R _ M I N O R " $ { _ t h r e e P a r t M a t c h } " )
MESSAGE ( STATUS "MegaGlest Version is [${VER_MAJOR}.${VER_MINOR}] " )
endif ( )
2013-01-03 21:57:58 +00:00
# parse the version string
2013-02-08 06:45:33 +00:00
else ( )
2013-03-05 19:56:23 +00:00
MESSAGE ( STATUS "** Trying 3 part versioning] " )
2013-02-08 06:45:33 +00:00
if ( _threePartMatch )
# parse the parts of the version string
STRING ( REGEX REPLACE "\" v([0-9] ) \ \ . [ 0 - 9 ] \ \ . [ 0 - 9 ] . * " " \ \ 1 " V E R _ M A J O R " $ { _ t h r e e P a r t M a t c h } " )
STRING ( REGEX REPLACE "\" v[0-9]\\.([0-9] ) \ \ . [ 0 - 9 ] . * " " \ \ 1 " V E R _ M I N O R " $ { _ t h r e e P a r t M a t c h } " )
STRING ( REGEX REPLACE "\" v[0-9]\\.[0-9]\\.([0-9] ) . * " " \ \ 1 " V E R _ R E L E A S E " $ { _ t h r e e P a r t M a t c h } " )
#MESSAGE(STATUS "******* TEST3 MegaGlest Version #1 is [${VER_MAJOR}] ")
#MESSAGE(STATUS "******* TEST3 MegaGlest Version #2 is [${VER_MINOR}] ")
#MESSAGE(STATUS "******* TEST3 MegaGlest Version #3 is [${VER_RELEASE}] ")
MESSAGE ( STATUS "MegaGlest Version is [${VER_MAJOR}.${VER_MINOR}.${VER_RELEASE}] " )
endif ( )
endif ( )
2013-01-03 21:57:58 +00:00
2010-12-12 08:10:18 +00:00
## Compiler flags
2013-12-04 22:38:06 +01:00
IF ( APPLE )
SET ( CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -stdlib=libc++" )
ENDIF ( APPLE )
2010-12-12 08:10:18 +00:00
IF ( CMAKE_COMPILER_IS_GNUCXX OR MINGW )
2013-11-19 08:04:38 +00:00
IF ( "${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang" )
MESSAGE ( STATUS "Detected CLANG Compiler..." )
ELSEIF ( CMAKE_COMPILER_IS_GNUCXX )
2010-12-12 08:10:18 +00:00
MESSAGE ( STATUS "Detected GNUC Compiler..." )
ELSEIF ( MINGW )
MESSAGE ( STATUS "Detected MINGW Compiler..." )
ENDIF ( )
2010-12-17 20:55:46 +00:00
if ( NOT CMAKE_CONFIGURATION_TYPES AND NOT CMAKE_BUILD_TYPE )
set ( CMAKE_BUILD_TYPE RelWithDebInfo )
endif ( NOT CMAKE_CONFIGURATION_TYPES AND NOT CMAKE_BUILD_TYPE )
2010-12-12 08:10:18 +00:00
# Default compiler flags
#SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -s") ## Strip binary
2011-01-06 23:31:07 +00:00
2014-02-06 19:14:14 -08:00
# Common generic GNU type compiler options that work with all generic GCC compatible compilers
ADD_DEFINITIONS ( "-Wuninitialized -Wsign-compare -Wunused-function -Wunused-variable -Wreturn-type -fno-strict-aliasing" )
2011-01-06 23:31:07 +00:00
# For gcc warning options see: http://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html
2011-01-02 10:29:13 +00:00
IF ( NOT MINGW )
2011-01-06 23:31:07 +00:00
# For tons of verbose warnings add: -Wall
2011-12-23 04:51:44 +00:00
# ADD_DEFINITIONS("-Wreturn-type -fno-strict-aliasing -frounding-math -fsignaling-nans -mfpmath=sse -msse -rdynamic")
2014-02-06 19:14:14 -08:00
# ADD_DEFINITIONS("-Wuninitialized -Wsign-compare -Wunused-function -Wunused-variable -Wreturn-type -fno-strict-aliasing -frounding-math -fsignaling-nans -rdynamic")
2011-01-02 10:29:13 +00:00
ELSE ( )
2011-12-23 04:51:44 +00:00
# ADD_DEFINITIONS("-Wreturn-type -fno-strict-aliasing -frounding-math -fsignaling-nans -mfpmath=sse -msse -DUNICODE")
2014-02-06 19:14:14 -08:00
# ADD_DEFINITIONS("-Wuninitialized -Wsign-compare -Wunused-function -Wunused-variable -Wreturn-type -fno-strict-aliasing -frounding-math -fsignaling-nans -DUNICODE")
ADD_DEFINITIONS ( "-DUNICODE" )
2011-01-02 10:29:13 +00:00
ENDIF ( )
2014-02-06 19:14:14 -08:00
# CLang specific Compiler Options
IF ( "${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang" )
# GCC specific Compiler Options
ELSE ( )
ADD_DEFINITIONS ( "-frounding-math -fsignaling-nans" )
# IF(NOT MINGW)
# set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -rdynamic")
# set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -rdynamic")
# ENDIF()
ENDIF ( )
2010-12-12 08:10:18 +00:00
#SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall")
2011-12-24 03:20:21 +00:00
2012-02-10 06:21:06 +00:00
#MESSAGE(STATUS "*TEST: Checking for max SSE LEVEL [${MAX_SSE_LEVEL_DESIRED}]")
IF ( NOT STREFLOP_SOFTWRAPPER_FORCE )
SET ( STREFLOP_SOFTWRAPPER_FORCE "0" CACHE STRING "Set the streflop library to be forced to use the software emulator" )
ENDIF ( )
IF ( NOT MAX_SSE_LEVEL_DESIRED AND NOT STREFLOP_SOFTWRAPPER_FORCE )
SET ( MAX_SSE_LEVEL_DESIRED "1" CACHE STRING "Set the max SSE level to use if supported (0-3)" )
2011-12-24 03:20:21 +00:00
ENDIF ( )
2012-02-10 06:21:06 +00:00
IF ( NOT STREFLOP_SOFTWRAPPER_FORCE )
MESSAGE ( STATUS "*NOTE: Checking for max SSE LEVEL [${MAX_SSE_LEVEL_DESIRED}]" )
special_check_for_sse ( ${ MAX_SSE_LEVEL_DESIRED } )
ENDIF ( )
2011-12-24 03:20:21 +00:00
2014-01-31 18:05:49 -08:00
OPTION ( WANT_STREFLOP "use the library streflop" ON )
2011-12-24 03:20:21 +00:00
IF ( WANT_STREFLOP )
2012-02-10 06:21:06 +00:00
ADD_DEFINITIONS ( "-DUSE_STREFLOP -DSTREFLOP_RANDOM_GEN_SIZE=32 -DLIBM_COMPILING_FLT32 -DN_SPECIALIZED=32" )
2011-12-24 03:20:21 +00:00
2012-02-10 06:21:06 +00:00
IF ( HAS_SSE_EXTENSIONS AND NOT ${ MAX_SSE_LEVEL_DESIRED } MATCHES "0" AND NOT STREFLOP_SOFTWRAPPER_FORCE )
2011-12-24 03:20:21 +00:00
ADD_DEFINITIONS ( "-DSTREFLOP_SSE" )
MESSAGE ( STATUS "*NOTE: using SSE for STREFLOP." )
ELSE ( )
2012-02-10 06:21:06 +00:00
IF ( NOT STREFLOP_SOFTWRAPPER_FORCE )
special_check_for_x87 ( )
ENDIF ( )
2011-12-24 03:20:21 +00:00
2012-02-10 06:21:06 +00:00
IF ( HAS_X87_SUPPORT AND NOT STREFLOP_SOFTWRAPPER_FORCE )
2011-12-24 03:20:21 +00:00
ADD_DEFINITIONS ( "-DSTREFLOP_X87" )
MESSAGE ( STATUS "*NOTE: using X87 for STREFLOP." )
ELSE ( )
ADD_DEFINITIONS ( "-DSTREFLOP_SOFT" )
MESSAGE ( STATUS "*NOTE: using SOFT emulation for STREFLOP." )
ENDIF ( )
ENDIF ( )
ELSE ( )
MESSAGE ( STATUS "*WARNING: Disabled use of STREFLOP! Out of synchs may occur" )
ENDIF ( )
2010-12-12 08:10:18 +00:00
2012-04-16 19:29:37 +00:00
include ( CheckCXXSourceRuns )
check_cxx_source_runs ( "
#include <execinfo.h>
#include <stdio.h>
i n t main ( )
{
c o n s t s i z e _ t m a x _ d e p t h = 6 ;
v o i d * s t a c k _ a d d r s [ m a x _ d e p t h ] ;
s i z e _ t s t a c k _ d e p t h = backtrace ( stack_addrs, max_depth ) ;
} "
H A S _ G C C _ B A C K T R A C E )
IF ( HAS_GCC_BACKTRACE )
message ( STATUS "Found GCC backtrace lib, will support backtraces" )
ADD_DEFINITIONS ( -DHAS_GCC_BACKTRACE )
ELSE ( )
message ( STATUS "**WARNING DID NOT Find GCC backtrace lib" )
ENDIF ( )
2014-03-26 10:26:53 +08:00
# Default compiler flags
SET ( CMAKE_CXX_FLAGS_NONE "${CMAKE_CXX_FLAGS_NONE}" )
2010-12-12 08:10:18 +00:00
# Debug compiler flags
SET ( CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -g3" )
# Release compiler flags
2010-12-25 21:23:20 +00:00
SET ( CMAKE_CXX_FLAGS_RELEASE "-O3 ${CMAKE_CXX_FLAGS_RELEASE} -O3 " )
2010-12-12 08:10:18 +00:00
SET ( CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -s" ) ## Strip binary
# Release with debug info compiler flags
2010-12-25 21:23:20 +00:00
SET ( CMAKE_CXX_FLAGS_RELWITHDEBINFO "-O3 ${CMAKE_CXX_FLAGS_RELWITHDEBINFO} -g -O3 " )
2010-12-12 08:10:18 +00:00
# Release minimum size compiler flags
2010-12-25 21:23:20 +00:00
SET ( CMAKE_CXX_FLAGS_MINSIZEREL "-O3 ${CMAKE_CXX_FLAGS_MINSIZEREL} -O3 " )
2010-12-12 08:10:18 +00:00
SET ( CMAKE_EXE_LINKER_FLAGS_MINSIZEREL "${CMAKE_EXE_LINKER_FLAGS_MINSIZEREL} -s" ) ## Strip binary
2013-11-29 13:13:30 -08:00
# Get the git revision info for the binary
SET ( HAS_GIT "FALSE" )
2013-12-11 23:16:56 -08:00
SET ( GIT_LIVE_REV_CMD "" )
2011-05-15 02:31:00 +00:00
2013-11-29 13:13:30 -08:00
OPTION ( WANT_GIT_STAMP "use git revision stamp" ON )
IF ( WANT_GIT_STAMP )
# The stuff below gets GIT Global Revision # but ONLY when calling cmake!
# the FindGit.cmake module is part of the standard distribution
include ( FindGit )
2011-05-04 07:16:44 +00:00
2013-11-29 13:13:30 -08:00
IF ( GIT_FOUND )
SET ( HAS_GIT "TRUE" )
MESSAGE ( STATUS "Found GIT and using GIT version stamping..." )
# Get the current commit SHA1
execute_process (
C O M M A N D g i t l o g - 1 - - f o r m a t = % h
W O R K I N G _ D I R E C T O R Y $ { P R O J E C T _ S O U R C E _ D I R }
O U T P U T _ V A R I A B L E G I T _ S H A 1
O U T P U T _ S T R I P _ T R A I L I N G _ W H I T E S P A C E
)
# Get the current version counter
execute_process (
C O M M A N D g i t r e v - l i s t H E A D - - c o u n t
W O R K I N G _ D I R E C T O R Y $ { P R O J E C T _ S O U R C E _ D I R }
O U T P U T _ V A R I A B L E G I T _ C O M M I T _ C O U N T
O U T P U T _ S T R I P _ T R A I L I N G _ W H I T E S P A C E
)
2013-12-25 00:25:57 -08:00
SET ( GIT_LIVE_REV_CMD "`git rev-list HEAD --count`.`git log -1 --format=%h`" )
2013-12-11 23:16:56 -08:00
MESSAGE ( STATUS "Using GIT revision stamp: [${GIT_COMMIT_COUNT}.${GIT_SHA1}] CMD [${GIT_LIVE_REV_CMD}]" )
2013-11-29 13:13:30 -08:00
2011-05-04 07:16:44 +00:00
ENDIF ( )
2011-02-02 20:12:45 +00:00
ENDIF ( )
2014-12-07 15:43:04 +11:00
IF ( APPLE )
2014-12-07 16:06:13 +11:00
SET ( GIT_VERSION_CMD "-DGITVERSION='\\\\'${GIT_LIVE_REV_CMD}\\\\''" )
ELSE ( )
SET ( GIT_VERSION_CMD "-DGITVERSION='\\\" ${ GIT_LIVE_REV_CMD } \\\"'")
2014-12-07 15:43:04 +11:00
ENDIF ( )
2010-12-12 08:10:18 +00:00
2011-05-03 23:34:25 +00:00
IF ( CMAKE_INSTALL_PREFIX STREQUAL "" )
MESSAGE ( STATUS "*NOTE: NOT USING a Custom Data Install Path..." )
ELSE ( )
2011-05-14 17:31:40 +00:00
IF ( NOT MEGAGLEST_BIN_INSTALL_PATH )
SET ( MEGAGLEST_BIN_INSTALL_PATH "bin/" CACHE STRING "The installation path for binaries (this is appended to the CMAKE_INSTALL_PREFIX)" )
ENDIF ( )
IF ( NOT MEGAGLEST_DATA_INSTALL_PATH )
SET ( MEGAGLEST_DATA_INSTALL_PATH "share/megaglest/" CACHE STRING "The installation path for data files (this is appended to the CMAKE_INSTALL_PREFIX)" )
ENDIF ( )
IF ( NOT MEGAGLEST_DESKTOP_INSTALL_PATH )
SET ( MEGAGLEST_DESKTOP_INSTALL_PATH "share/applications/" CACHE STRING "The installation path for desktop files (this is appended to the CMAKE_INSTALL_PREFIX)" )
ENDIF ( )
IF ( NOT MEGAGLEST_ICON_INSTALL_PATH )
SET ( MEGAGLEST_ICON_INSTALL_PATH "share/pixmaps/" CACHE STRING "The installation path for icon files (this is appended to the CMAKE_INSTALL_PREFIX)" )
ENDIF ( )
2011-05-26 14:36:43 +00:00
IF ( NOT MEGAGLEST_MANPAGE_INSTALL_PATH )
SET ( MEGAGLEST_MANPAGE_INSTALL_PATH "share/man/man6/" CACHE STRING "The installation path for manpage files (this is appended to the CMAKE_INSTALL_PREFIX)" )
ENDIF ( )
2011-05-14 17:31:40 +00:00
IF ( NOT CUSTOM_DATA_INSTALL_PATH )
2014-12-07 08:50:05 +11:00
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)" )
2011-05-14 17:31:40 +00:00
ENDIF ( )
2011-05-03 23:34:25 +00:00
SET ( CUSTOM_DATA_INSTALL_PATH_VALUE "-DCUSTOM_DATA_INSTALL_PATH=${CUSTOM_DATA_INSTALL_PATH}" )
2014-04-22 22:44:23 +02:00
ADD_DEFINITIONS ( "-DCUSTOM_DATA_INSTALL_PATH=${CUSTOM_DATA_INSTALL_PATH}" )
2011-05-03 23:34:25 +00:00
2013-01-03 21:57:58 +00:00
SET ( PKG_DATADIR ${ CUSTOM_DATA_INSTALL_PATH_VALUE } )
SET ( PKG_BINDIR ${ MEGAGLEST_BIN_INSTALL_PATH } )
2011-05-03 23:34:25 +00:00
MESSAGE ( STATUS "*NOTE: Custom Data Install Path is [${CUSTOM_DATA_INSTALL_PATH}]" )
ENDIF ( )
2014-03-26 10:26:53 +08:00
SET ( CMAKE_CXX_FLAGS_NONE "${CMAKE_CXX_FLAGS_NONE} ${GIT_VERSION_CMD} ${CUSTOM_DATA_INSTALL_PATH_VALUE}" )
2013-11-29 13:13:30 -08:00
SET ( CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} ${GIT_VERSION_CMD} ${CUSTOM_DATA_INSTALL_PATH_VALUE}" )
SET ( CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} ${GIT_VERSION_CMD} ${CUSTOM_DATA_INSTALL_PATH_VALUE}" )
SET ( CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} ${GIT_VERSION_CMD} ${CUSTOM_DATA_INSTALL_PATH_VALUE}" )
SET ( CMAKE_CXX_FLAGS_MINSIZEREL "${CMAKE_CXX_FLAGS_MINSIZEREL} ${GIT_VERSION_CMD} ${CUSTOM_DATA_INSTALL_PATH_VALUE}" )
2011-05-03 23:34:25 +00:00
2010-12-12 08:10:18 +00:00
# We do some funky character escaping to get the right stuff written out to
2013-11-29 13:13:30 -08:00
# the final Makefile so we get the GIT Global Revsion #
2014-03-26 10:26:53 +08:00
string ( REPLACE "'" "\" " CMAKE_CXX_FLAGS_NONE " ${ CMAKE_CXX_FLAGS_NONE } " )
2010-12-12 08:10:18 +00:00
string ( REPLACE "'" "\" " CMAKE_CXX_FLAGS_DEBUG " ${ CMAKE_CXX_FLAGS_DEBUG } " )
string ( REPLACE "'" "\" " CMAKE_CXX_FLAGS_RELEASE " ${ CMAKE_CXX_FLAGS_RELEASE } " )
string ( REPLACE "'" "\" " CMAKE_CXX_FLAGS_RELWITHDEBINFO " ${ CMAKE_CXX_FLAGS_RELWITHDEBINFO } " )
string ( REPLACE "'" "\" " CMAKE_CXX_FLAGS_MINSIZEREL " ${ CMAKE_CXX_FLAGS_MINSIZEREL } " )
2014-03-26 10:26:53 +08:00
IF ( CMAKE_BUILD_TYPE STREQUAL None )
message ( "CMAKE_CXX_FLAGS_NONE: ${CMAKE_CXX_FLAGS_NONE}" )
ELSEIF ( CMAKE_BUILD_TYPE STREQUAL Debug )
2010-12-12 08:10:18 +00:00
message ( "CMAKE_CXX_FLAGS_DEBUG: ${CMAKE_CXX_FLAGS_DEBUG}" )
ELSEIF ( CMAKE_BUILD_TYPE STREQUAL Release )
message ( "CMAKE_CXX_FLAGS_RELEASE: ${CMAKE_CXX_FLAGS_RELEASE}" )
ELSEIF ( CMAKE_BUILD_TYPE STREQUAL RELWITHDEBINFO )
message ( "CMAKE_CXX_FLAGS_RELWITHDEBINFO: ${CMAKE_CXX_FLAGS_RELWITHDEBINFO}" )
ELSEIF ( CMAKE_BUILD_TYPE STREQUAL MINSIZEREL )
message ( "CMAKE_CXX_FLAGS_MINSIZEREL: ${CMAKE_CXX_FLAGS_MINSIZEREL}" )
ENDIF ( )
# Win32 specific Compiler Flags
IF ( WIN32 )
2011-07-13 19:57:29 +00:00
ADD_DEFINITIONS ( "-D_WINDOWS -D_WIN32 -D_STDCALL_SUPPORTED -D_M_IX86 -DXML_LIBRARY -D_LIB -DCURL_STATICLIB" )
ELSE ( )
ADD_DEFINITIONS ( "-DCURL_STATICLIB" )
ENDIF ( )
2010-12-12 08:10:18 +00:00
ENDIF ( )
2010-06-05 17:34:55 +00:00
2010-12-11 06:32:21 +00:00
IF ( WIN32 )
SET ( CMAKE_LIBRARY_PATH ${ CMAKE_LIBRARY_PATH }
2010-12-23 00:00:30 +00:00
$ { P R O J E C T _ S O U R C E _ D I R } / s o u r c e / w i n 3 2 _ d e p s / l i b
$ { P R O J E C T _ S O U R C E _ D I R } / s o u r c e / w i n 3 2 _ d e p s / x e r c e s - c - s r c _ 2 _ 8 _ 0 / l i b
2010-12-27 09:01:40 +00:00
$ { P R O J E C T _ S O U R C E _ D I R } / s o u r c e / w i n 3 2 _ d e p s / w x W i d g e t s - 2 . 8 . 1 0 / l i b )
2010-12-11 06:32:21 +00:00
SET ( CMAKE_INCLUDE_PATH ${ CMAKE_INCLUDE_PATH }
2010-12-23 00:00:30 +00:00
$ { P R O J E C T _ S O U R C E _ D I R } / s o u r c e / w i n 3 2 _ d e p s / i n c l u d e
$ { P R O J E C T _ S O U R C E _ D I R } / s o u r c e / w i n 3 2 _ d e p s / o p e n a l - s o f t - 1 . 1 2 . 8 5 4 / i n c l u d e
$ { P R O J E C T _ S O U R C E _ D I R } / s o u r c e / w i n 3 2 _ d e p s / o p e n a l - s o f t - 1 . 1 2 . 8 5 4
$ { P R O J E C T _ S O U R C E _ D I R } / s o u r c e / w i n 3 2 _ d e p s / x e r c e s - c - s r c _ 2 _ 8 _ 0 / i n c l u d e
$ { P R O J E C T _ S O U R C E _ D I R } / s o u r c e / w i n 3 2 _ d e p s / l i b o g g - 1 . 2 . 1 / i n c l u d e
$ { P R O J E C T _ S O U R C E _ D I R } / s o u r c e / w i n 3 2 _ d e p s / l u a - 5 . 1 / s r c
$ { P R O J E C T _ S O U R C E _ D I R } / s o u r c e / w i n 3 2 _ d e p s / j p e g - 8 b
$ { P R O J E C T _ S O U R C E _ D I R } / s o u r c e / w i n 3 2 _ d e p s / l p n g 1 4 1
$ { P R O J E C T _ S O U R C E _ D I R } / s o u r c e / w i n 3 2 _ d e p s / z l i b - 1 . 2 . 5
2011-01-01 11:39:04 +00:00
$ { P R O J E C T _ S O U R C E _ D I R } / s o u r c e / w i n 3 2 _ d e p s / c u r l - 7 . 2 1 . 3 / i n c l u d e
2010-12-23 00:00:30 +00:00
$ { P R O J E C T _ S O U R C E _ D I R } / s o u r c e / w i n 3 2 _ d e p s / S D L - 1 . 2 . x / i n c l u d e
$ { P R O J E C T _ S O U R C E _ D I R } / s o u r c e / w i n 3 2 _ d e p s / w x W i d g e t s - 2 . 8 . 1 0 / i n c l u d e )
2010-12-11 06:32:21 +00:00
link_directories ( ${ PROJECT_SOURCE_DIR } /source/win32_deps/lib )
link_directories ( ${ PROJECT_SOURCE_DIR } /source/win32_deps/xerces-c-src_2_8_0/lib )
2010-12-11 15:05:43 +00:00
link_directories ( ${ PROJECT_SOURCE_DIR } /source/win32_deps/wxWidgets-2.8.10/lib )
2010-12-11 06:32:21 +00:00
include_directories ( "${PROJECT_SOURCE_DIR}/source/win32_deps/Microsoft\ DirectX\ SDK \(November 2007\)/Include" )
include_directories ( ${ PROJECT_SOURCE_DIR } /source/win32_deps/openal-soft-1.12.854/include )
ENDIF ( )
2011-05-03 23:34:25 +00:00
2011-05-04 07:51:48 +00:00
# Check if sources exist
2011-05-04 21:00:34 +00:00
IF ( EXISTS "${PROJECT_SOURCE_DIR}/source/" )
2011-05-04 07:51:48 +00:00
MESSAGE ( STATUS "**Found game source code." )
2011-05-04 21:00:34 +00:00
ADD_SUBDIRECTORY ( ${ PROJECT_SOURCE_DIR } /source/shared_lib )
ADD_SUBDIRECTORY ( ${ PROJECT_SOURCE_DIR } /source/glest_game )
2011-05-04 07:51:48 +00:00
#if(wxWidgets_FOUND)
2011-05-04 21:00:34 +00:00
ADD_SUBDIRECTORY ( ${ PROJECT_SOURCE_DIR } /source/glest_map_editor )
ADD_SUBDIRECTORY ( ${ PROJECT_SOURCE_DIR } /source/g3d_viewer )
2011-05-04 07:51:48 +00:00
#else()
# MESSAGE(STATUS "WARNING... the following game tools will NOT be built since we cannot find wxWidgets on this machine")
2012-04-11 18:58:38 +00:00
# MESSAGE(STATUS "map editor, g3d viewer")
2011-05-04 07:51:48 +00:00
#endif()
2011-05-04 21:00:34 +00:00
ADD_SUBDIRECTORY ( ${ PROJECT_SOURCE_DIR } /source/tools/glexemel )
2011-05-04 07:51:48 +00:00
IF ( APPLE )
2011-05-04 21:00:34 +00:00
include ( ${ PROJECT_SOURCE_DIR } /mk/macosx/CMakeLists.txt )
2014-01-25 18:52:31 -08:00
ENDIF ( )
2013-04-30 01:27:14 +00:00
ADD_SUBDIRECTORY ( ${ PROJECT_SOURCE_DIR } /source/tests )
2011-05-04 07:51:48 +00:00
ENDIF ( )
2011-05-03 07:58:59 +00:00
2011-05-04 07:51:48 +00:00
# Check if data exist
2014-01-25 18:52:31 -08:00
IF ( EXISTS "${PROJECT_SOURCE_DIR}/data/glest_game/CMakeLists.txt" )
2011-05-04 07:51:48 +00:00
MESSAGE ( STATUS "**Found game data." )
2011-05-04 21:00:34 +00:00
ADD_SUBDIRECTORY ( ${ PROJECT_SOURCE_DIR } /data/glest_game )
2011-05-04 07:51:48 +00:00
ENDIF ( )
2011-05-15 02:24:54 +00:00
2014-02-06 19:14:14 -08:00
#get_directory_property( DirDefs COMPILE_DEFINITIONS )
#MESSAGE(STATUS ">>>> NOTICE Compiler definitions used: ${DirDefs}")
#MESSAGE(STATUS "END of compile defs...")
IF ( "${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang" )
MESSAGE ( WARNING ">> CLANG is NOT currently compatible as it does not support the following essential GCC compiler settings: -frounding-math -fsignaling-nans" )
ENDIF ( )
2013-01-04 05:55:45 +00:00
SET ( CPACK_GENERATOR "DEB" )
SET ( CPACK_DEBIAN_PACKAGE_MAINTAINER "Mark Vejvoda" ) #required
SET ( CPACK_DEBIAN_PACKAGE_DEPENDS "
l i b c u r l 4 - g n u t l s - d e v | l i b c u r l 4 - n s s - d e v ,
l i b f o n t c o n f i g 1 - d e v ,
l i b f t g l - d e v ,
l i b g l e w - d e v ,
l i b i r c c l i e n t - d e v ,
l i b j p e g - d e v ,
l i b l u a 5 . 1 - 0 - d e v ,
l i b m i n i u p n p c - d e v ,
l i b o g g - d e v ,
l i b o p e n a l - d e v ,
l i b p n g 1 2 - d e v ,
l i b s d l 1 . 2 - d e v ,
l i b v l c - d e v ,
l i b v o r b i s - d e v ,
l i b w x g t k 2 . 8 - d e v ,
l i b x e r c e s - c 2 - d e v ,
l i b x m l 2 - d e v ,
l i b z - d e v ,
l i b f r i b i d i - d e v " )
#find_program(DPKG_PROGRAM dpkg DOC "dpkg program of Debian-based systems")
#if(DPKG_PROGRAM)
# execute_process(
# COMMAND ${DPKG_PROGRAM} --print-architecture
# OUTPUT_VARIABLE CPACK_DEBIAN_PACKAGE_ARCHITECTURE
# OUTPUT_STRIP_TRAILING_WHITESPACE
# )
#endif(DPKG_PROGRAM)
2013-01-03 21:57:58 +00:00
SET ( CPACK_PACKAGE_NAME ${ PKG_NAME } )
SET ( CPACK_PACKAGE_DESCRIPTION_SUMMARY "MegaGlest" )
SET ( CPACK_PACKAGE_VENDOR "megaglest.org" )
#SET(CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_CURRENT_SOURCE_DIR}/README")
#SET(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/COPYING")
SET ( CPACK_PACKAGE_INSTALL_DIRECTORY "megaglest" )
SET ( CPACK_PACKAGE_VERSION_MAJOR ${ VER_MAJOR } )
SET ( CPACK_PACKAGE_VERSION_MINOR ${ VER_MINOR } )
SET ( CPACK_PACKAGE_VERSION_PATCH ${ VER_RELEASE } )
IF ( WIN32 )
SET ( CPACK_NSIS_DISPLAY_NAME "MegaGlest" )
2014-01-21 23:21:56 -08:00
SET ( CPACK_NSIS_MUI_ICON "${PROJECT_SOURCE_DIR}/mk/windoze/glest.ico" )
SET ( CPACK_PACKAGE_ICON "${PROJECT_SOURCE_DIR}/mk/windoze/megaglest.ico" )
2013-01-03 21:57:58 +00:00
SET ( CPACK_NSIS_URL_INFO_ABOUT "http://megaglest.org" )
ENDIF ( )
INCLUDE ( CPack )
2011-12-24 03:20:21 +00:00
get_directory_property ( DirDefs DIRECTORY ${ CMAKE_SOURCE_DIR } COMPILE_DEFINITIONS )
foreach ( d ${ DirDefs } )
message ( STATUS "=====> Found Define: " ${ d } )
endforeach ( )
message ( STATUS "=====> DirDefs: " ${ DirDefs } )
#MESSAGE(STATUS "*** Compiler definitions are [${COMPILE_DEFINITIONS}]")
2011-05-15 02:24:54 +00:00
MARK_AS_ADVANCED ( SDLMAIN_LIBRARY )
MARK_AS_ADVANCED ( SDL_INCLUDE_DIR )
MARK_AS_ADVANCED ( SDL_LIBRARY )