git-svn-id: https://clonekeenplus.svn.sourceforge.net/svnroot/clonekeenplus/cgenius/trunk@224 4df4b0f3-56ce-47cb-b001-ed939b7d65a6
201 lines
5.8 KiB
CMake
201 lines
5.8 KiB
CMake
# CMake file for development of OLX
|
|
# this file is not intendent (yet) as a system for building final releases
|
|
# use compile.sh instead
|
|
|
|
cmake_minimum_required(VERSION 2.4)
|
|
IF (${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION} GREATER 2.4)
|
|
cmake_policy(SET CMP0005 OLD)
|
|
cmake_policy(SET CMP0003 OLD)
|
|
#include(PCHSupport_26.cmake)
|
|
ENDIF (${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION} GREATER 2.4)
|
|
|
|
|
|
|
|
OPTION(DEBUG "enable debug build" Yes)
|
|
OPTION(STLPORT "STLport support" No)
|
|
OPTION(GCOREDUMPER "Google Coredumper support" No)
|
|
#OPTION(PCH "Precompiled header (CMake 2.6 only)" No)
|
|
OPTION(ADVASSERT "Advanced assert" No)
|
|
|
|
OPTION(SDL "SDL support (probably will not work without)" Yes)
|
|
OPTION(OPENGL "OpenGL support" Yes)
|
|
OPTION(OGG "Ogg/Vorbis support" Yes)
|
|
|
|
IF (DEBUG)
|
|
SET(CMAKE_BUILD_TYPE Debug)
|
|
ELSE (DEBUG)
|
|
SET(CMAKE_BUILD_TYPE Release)
|
|
ENDIF (DEBUG)
|
|
|
|
|
|
# Platform specific things can be put here
|
|
# Compilers and other specific variables can be found here:
|
|
# http://www.cmake.org/Wiki/CMake_Useful_Variables
|
|
IF(UNIX)
|
|
IF(APPLE)
|
|
ELSE(APPLE)
|
|
ENDIF(APPLE)
|
|
|
|
IF (CYGWIN)
|
|
ELSE (CYGWIN)
|
|
ENDIF (CYGWIN)
|
|
ELSE(UNIX)
|
|
IF(WIN32)
|
|
ELSE(WIN32)
|
|
ENDIF(WIN32)
|
|
ENDIF(UNIX)
|
|
|
|
|
|
MESSAGE( "DEBUG = ${DEBUG}" )
|
|
MESSAGE( "STLPORT = ${STLPORT}" )
|
|
MESSAGE( "GCOREDUMPER = ${GCOREDUMPER}" )
|
|
MESSAGE( "CMAKE_C_COMPILER = ${CMAKE_C_COMPILER}" )
|
|
MESSAGE( "CMAKE_C_FLAGS = ${CMAKE_C_FLAGS}" )
|
|
MESSAGE( "CMAKE_CXX_COMPILER = ${CMAKE_CXX_COMPILER}" )
|
|
MESSAGE( "CMAKE_CXX_FLAGS = ${CMAKE_CXX_FLAGS}" )
|
|
# commented out because only devs need these options anyway
|
|
#MESSAGE( "PCH = ${PCH} (Precompiled header, CMake 2.6 only)" )
|
|
#MESSAGE( "ADVASSERT = ${ADVASSERT}" )
|
|
|
|
MESSAGE( "OPENGL = ${OPENGL}" )
|
|
MESSAGE( "OGG = ${OGG}" )
|
|
|
|
EXEC_PROGRAM(mkdir ARGS -p ${CMAKE_CURRENT_SOURCE_DIR}/bin OUTPUT_VARIABLE NULL)
|
|
|
|
PROJECT(commandergenius)
|
|
|
|
# main includes
|
|
INCLUDE_DIRECTORIES(optional-includes/generated)
|
|
INCLUDE_DIRECTORIES(src)
|
|
|
|
IF(ADVASSERT)
|
|
INCLUDE_DIRECTORIES(optional-includes/advanced-assert)
|
|
ENDIF(ADVASSERT)
|
|
|
|
AUX_SOURCE_DIRECTORY(src ROOT_S)
|
|
AUX_SOURCE_DIRECTORY(src/ai AI_S)
|
|
AUX_SOURCE_DIRECTORY(src/fileio FILEIO_S)
|
|
AUX_SOURCE_DIRECTORY(src/hqp HQP_S)
|
|
AUX_SOURCE_DIRECTORY(src/scale2x SCALE2X_S)
|
|
AUX_SOURCE_DIRECTORY(src/sdl SDL_S)
|
|
AUX_SOURCE_DIRECTORY(src/sdl/sound SDLSOUND_S)
|
|
AUX_SOURCE_DIRECTORY(src/sdl/video SDLVIDEO_S)
|
|
AUX_SOURCE_DIRECTORY(src/vorbis VORBIS_S)
|
|
AUX_SOURCE_DIRECTORY(src/vorticon VORTICON_S)
|
|
AUX_SOURCE_DIRECTORY(src/cinematics CINEMATICS_S)
|
|
AUX_SOURCE_DIRECTORY(src/dialog DIALOG_S)
|
|
|
|
SET(ALL_SRCS ${ROOT_S} ${AI_S} ${FILEIO_S} ${HQP_S} ${SCALE2X_S} ${SDL_S} ${SDLSOUND_S} ${SDLVIDEO_S} ${VORTICON_S} ${CINEMATICS_S} ${DIALOG_S})
|
|
|
|
IF (OGG)
|
|
ADD_DEFINITIONS(-DBUILD_WITH_OGG)
|
|
SET(ALL_SRCS ${ALL_SRCS} ${VORBIS_S})
|
|
ENDIF (OGG)
|
|
|
|
IF (SDL)
|
|
ADD_DEFINITIONS(-DBUILD_SDL)
|
|
ENDIF (SDL)
|
|
|
|
IF (OPENGL)
|
|
ADD_DEFINITIONS(-DUSE_OPENGL)
|
|
ENDIF (OPENGL)
|
|
|
|
IF (GCOREDUMPER)
|
|
INCLUDE_DIRECTORIES(libs/coredumper/src)
|
|
ADD_DEFINITIONS(-DGCOREDUMPER)
|
|
AUX_SOURCE_DIRECTORY(libs/coredumper/src COREDUMPER_SRCS)
|
|
SET(ALL_SRCS ${ALL_SRCS} ${COREDUMPER_SRCS})
|
|
ENDIF (GCOREDUMPER)
|
|
|
|
IF (STLPORT)
|
|
INCLUDE_DIRECTORIES(/usr/include/stlport)
|
|
ADD_DEFINITIONS(-D_FILE_OFFSET_BITS=64) # hm, don't know, at least it works for me (ppc32/amd32)
|
|
# debugging stuff for STLport
|
|
ADD_DEFINITIONS(-D_STLP_DEBUG=1)
|
|
ADD_DEFINITIONS(-D_STLP_DEBUG_LEVEL=_STLP_STANDARD_DBG_LEVEL)
|
|
ADD_DEFINITIONS(-D_STLP_SHRED_BYTE=0xA3)
|
|
ADD_DEFINITIONS(-D_STLP_DEBUG_UNINITIALIZED=1)
|
|
ADD_DEFINITIONS(-D_STLP_DEBUG_ALLOC=1)
|
|
ENDIF (STLPORT)
|
|
|
|
|
|
IF(DEBUG)
|
|
ADD_DEFINITIONS(-DDEBUG=1)
|
|
ENDIF(DEBUG)
|
|
|
|
|
|
|
|
IF(WIN32)
|
|
# EXEC_PROGRAM("${CMAKE_BINARY_DIR}/svn_revision.exe" ARGS "${CMAKE_SOURCE_DIR}/optional-includes/generated/Version_generated.h" "${CMAKE_SOURCE_DIR}")
|
|
# ADD_DEFINITIONS(-D_CRT_SECURE_NO_DEPRECATE -DHAVE_BOOST -DZLIB_WIN32_NODLL)
|
|
SET(OPTIMIZE_COMPILER_FLAG /Ox /Ob2 /Oi /Ot /GL)
|
|
IF(DEBUG)
|
|
ADD_DEFINITIONS(-DUSE_DEFAULT_MSC_DELEAKER)
|
|
ELSE(DEBUG)
|
|
ADD_DEFINITIONS(${OPTIMIZE_COMPILER_FLAG})
|
|
ENDIF(DEBUG)
|
|
ELSE(WIN32)
|
|
ADD_DEFINITIONS(-Wall)
|
|
|
|
# EXEC_PROGRAM(sh ARGS ${CMAKE_CURRENT_SOURCE_DIR}/get_version.sh OUTPUT_VARIABLE OLXVER)
|
|
# string(REGEX REPLACE "[\r\n]" " " OLXVER "${OLXVER}")
|
|
# MESSAGE( "OLX_VERSION = ${OLXVER}" )
|
|
# Escaping backslashes overkill, yay.
|
|
# EXEC_PROGRAM(sh ARGS -c echo\\ \\\\\#define\\ LX_VERSION\\ \\\\\\"${OLXVER}\\\\\\" > optional-includes/generated/Version_generated.h OUTPUT_VARIABLE DUMMY)
|
|
|
|
IF(SDL)
|
|
EXEC_PROGRAM(sdl-config ARGS --cflags OUTPUT_VARIABLE SDLCFLAGS)
|
|
string(REGEX REPLACE "[\r\n]" " " SDLCFLAGS "${SDLCFLAGS}")
|
|
ADD_DEFINITIONS(${SDLCFLAGS})
|
|
ENDIF(SDL)
|
|
|
|
ADD_DEFINITIONS("-pthread")
|
|
SET(OPTIMIZE_COMPILER_FLAG -O3)
|
|
ENDIF(WIN32)
|
|
|
|
ADD_EXECUTABLE(commandergenius ${ALL_SRCS})
|
|
|
|
#IF(PCH)
|
|
# EXEC_PROGRAM(./update_precompiled_header.sh OUTPUT_VARIABLE NULL)
|
|
# ADD_PRECOMPILED_HEADER(openlierox include/PrecompiledHeader.hpp 1)
|
|
#ENDIF(PCH)
|
|
|
|
IF(SDL)
|
|
TARGET_LINK_LIBRARIES(commandergenius SDL)
|
|
ENDIF(SDL)
|
|
|
|
IF(WIN32)
|
|
TARGET_LINK_LIBRARIES(commandergenius wsock32 wininet dbghelp
|
|
"${CMAKE_SOURCE_DIR}/build/msvc/libs/SDLmain.lib"
|
|
"${CMAKE_SOURCE_DIR}/build/msvc/libs/bgd.lib")
|
|
|
|
SET_TARGET_PROPERTIES(commandergenius PROPERTIES OUTPUT_NAME "../../../bin/Commander Genius")
|
|
|
|
# Add debug info to release build in linker flags
|
|
SET_TARGET_PROPERTIES(openlierox PROPERTIES LINK_FLAGS "${LINK_FLAGS}
|
|
/LTCG
|
|
/DEBUG
|
|
/MAP:\"${CMAKE_SOURCE_DIR}/bin/CommanderGenius.map\"
|
|
/MAPINFO:EXPORTS
|
|
/NODEFAULTLIB:\"LIBC\"
|
|
/INCREMENTAL:NO")
|
|
ELSE(WIN32)
|
|
IF(SDL)
|
|
EXEC_PROGRAM(sdl-config ARGS --libs OUTPUT_VARIABLE SDLLIBS)
|
|
STRING(REGEX REPLACE "[\r\n]" " " SDLLIBS "${SDLLIBS}")
|
|
|
|
TARGET_LINK_LIBRARIES(commandergenius ${SDLLIBS})
|
|
ENDIF(SDL)
|
|
|
|
IF(OGG)
|
|
TARGET_LINK_LIBRARIES(commandergenius ogg vorbis vorbisfile)
|
|
ENDIF(OGG)
|
|
|
|
IF (STLPORT)
|
|
TARGET_LINK_LIBRARIES(commandergenius stlportstlg)
|
|
ENDIF (STLPORT)
|
|
|
|
SET_TARGET_PROPERTIES(commandergenius PROPERTIES OUTPUT_NAME bin/commandergenius)
|
|
|
|
ENDIF(WIN32)
|