2014-07-18 22:07:38 +02:00
# -----------------------------------------------------------------------------
# Copyright (c) 2014 GarageGames, LLC
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to
# deal in the Software without restriction, including without limitation the
# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
# sell copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in
# all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
# IN THE SOFTWARE.
# -----------------------------------------------------------------------------
2014-03-19 18:17:35 +01:00
project ( ${ TORQUE_APP_NAME } )
2014-03-18 20:12:13 +01:00
2014-06-02 02:15:55 +02:00
if ( UNIX )
2015-01-24 23:28:12 +01:00
if ( NOT CXX_FLAG32 )
set ( CXX_FLAG32 "" )
endif ( )
2015-01-24 22:08:26 +01:00
#set(CXX_FLAG32 "-m32") #uncomment for build x32 on OSx64
2014-06-02 02:15:55 +02:00
# default compiler flags
2015-08-03 17:09:53 -05:00
set ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${CXX_FLAG32} -Wundef -msse -pipe -Wfatal-errors ${TORQUE_ADDITIONAL_LINKER_FLAGS} -Wl,-rpath,'$$ORIGIN'" )
set ( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${CXX_FLAG32} -Wundef -msse -pipe -Wfatal-errors ${TORQUE_ADDITIONAL_LINKER_FLAGS} -Wl,-rpath,'$$ORIGIN'" )
2014-06-02 02:15:55 +02:00
# for asm files
SET ( CMAKE_ASM_NASM_OBJECT_FORMAT "elf" )
ENABLE_LANGUAGE ( ASM_NASM )
endif ( )
2014-03-18 13:27:25 +01:00
# TODO: fmod support
2014-03-18 20:12:13 +01:00
###############################################################################
# modules
###############################################################################
option ( TORQUE_SFX_VORBIS "Vorbis Sound" ON )
2014-03-19 02:41:06 +01:00
mark_as_advanced ( TORQUE_SFX_VORBIS )
2014-06-02 01:35:06 +02:00
option ( TORQUE_THEORA "Theora Video Support" ON )
mark_as_advanced ( TORQUE_THEORA )
2014-03-18 20:12:13 +01:00
option ( TORQUE_ADVANCED_LIGHTING "Advanced Lighting" ON )
2014-03-19 02:41:06 +01:00
mark_as_advanced ( TORQUE_ADVANCED_LIGHTING )
2014-03-18 20:12:13 +01:00
option ( TORQUE_BASIC_LIGHTING "Basic Lighting" ON )
2014-03-19 02:41:06 +01:00
mark_as_advanced ( TORQUE_BASIC_LIGHTING )
2014-06-02 02:15:55 +02:00
if ( WIN32 )
option ( TORQUE_SFX_DirectX "DirectX Sound" ON )
mark_as_advanced ( TORQUE_SFX_DirectX )
else ( )
set ( TORQUE_SFX_DirectX OFF )
endif ( )
2014-03-18 20:12:13 +01:00
option ( TORQUE_SFX_OPENAL "OpenAL Sound" ON )
2014-03-19 02:41:06 +01:00
mark_as_advanced ( TORQUE_SFX_OPENAL )
2014-03-18 20:12:13 +01:00
option ( TORQUE_HIFI "HIFI? support" OFF )
2014-03-19 02:41:06 +01:00
mark_as_advanced ( TORQUE_HIFI )
2014-03-18 20:12:13 +01:00
option ( TORQUE_EXTENDED_MOVE "Extended move support" OFF )
2014-03-19 02:41:06 +01:00
mark_as_advanced ( TORQUE_EXTENDED_MOVE )
2015-01-16 20:37:16 +01:00
if ( WIN32 )
option ( TORQUE_SDL "Use SDL for window and input" OFF )
mark_as_advanced ( TORQUE_SDL )
else ( )
set ( TORQUE_SDL ON ) # we need sdl to work on Linux/Mac
endif ( )
2014-11-08 17:41:17 +01:00
if ( WIN32 )
option ( TORQUE_OPENGL "Allow OpenGL render" OFF )
#mark_as_advanced(TORQUE_OPENGL)
else ( )
set ( TORQUE_OPENGL ON ) # we need OpenGL to render on Linux/Mac
endif ( )
2014-10-10 23:50:05 -07:00
2014-06-02 02:15:55 +02:00
if ( WIN32 )
option ( TORQUE_OPENGL "Allow OpenGL render" OFF )
#mark_as_advanced(TORQUE_OPENGL)
else ( )
set ( TORQUE_OPENGL ON ) # we need OpenGL to render on Linux/Mac
option ( TORQUE_DEDICATED "Torque dedicated" OFF )
endif ( )
2014-03-18 13:27:25 +01:00
2014-03-18 20:12:13 +01:00
###############################################################################
# options
###############################################################################
2014-06-02 02:15:55 +02:00
if ( NOT MSVC ) # handle single-configuration generator
set ( TORQUE_BUILD_TYPE "Debug" CACHE STRING "Select one of Debug, Release and RelWithDebInfo" )
set_property ( CACHE TORQUE_BUILD_TYPE PROPERTY STRINGS "Debug" "Release" "RelWithDebInfo" )
set ( TORQUE_ADDITIONAL_LINKER_FLAGS "" CACHE STRING "Additional linker flags" )
mark_as_advanced ( TORQUE_ADDITIONAL_LINKER_FLAGS )
endif ( )
2014-03-18 13:27:25 +01:00
option ( TORQUE_MULTITHREAD "Multi Threading" ON )
2014-03-19 02:41:06 +01:00
mark_as_advanced ( TORQUE_MULTITHREAD )
2014-06-02 02:15:55 +02:00
option ( TORQUE_DISABLE_MEMORY_MANAGER "Disable memory manager" ON )
2014-03-19 02:41:06 +01:00
mark_as_advanced ( TORQUE_DISABLE_MEMORY_MANAGER )
2014-03-18 13:27:25 +01:00
option ( TORQUE_DISABLE_VIRTUAL_MOUNT_SYSTEM "Disable virtual mount system" OFF )
2014-03-19 02:41:06 +01:00
mark_as_advanced ( TORQUE_DISABLE_VIRTUAL_MOUNT_SYSTEM )
2014-03-18 13:27:25 +01:00
option ( TORQUE_PLAYER "Playback only?" OFF )
2014-03-19 02:41:06 +01:00
mark_as_advanced ( TORQUE_PLAYER )
2014-03-18 13:27:25 +01:00
option ( TORQUE_TOOLS "Enable or disable the tools" ON )
2014-03-19 02:41:06 +01:00
mark_as_advanced ( TORQUE_TOOLS )
2014-03-18 13:27:25 +01:00
option ( TORQUE_ENABLE_PROFILER "Enable or disable the profiler" OFF )
2014-03-19 02:41:06 +01:00
mark_as_advanced ( TORQUE_ENABLE_PROFILER )
2014-03-18 13:27:25 +01:00
option ( TORQUE_DEBUG "T3D Debug mode" OFF )
2014-03-19 02:41:06 +01:00
mark_as_advanced ( TORQUE_DEBUG )
2014-03-18 13:27:25 +01:00
option ( TORQUE_SHIPPING "T3D Shipping build?" OFF )
2014-03-19 02:41:06 +01:00
mark_as_advanced ( TORQUE_SHIPPING )
2014-03-18 13:27:25 +01:00
option ( TORQUE_DEBUG_NET "debug network" OFF )
2014-03-19 02:41:06 +01:00
mark_as_advanced ( TORQUE_DEBUG_NET )
2014-03-18 13:27:25 +01:00
option ( TORQUE_DEBUG_NET_MOVES "debug network moves" OFF )
2014-03-19 02:41:06 +01:00
mark_as_advanced ( TORQUE_DEBUG_NET_MOVES )
2014-03-18 20:12:13 +01:00
option ( TORQUE_ENABLE_ASSERTS "enables or disable asserts" OFF )
2014-03-19 02:41:06 +01:00
mark_as_advanced ( TORQUE_ENABLE_ASSERTS )
option ( TORQUE_DEBUG_GFX_MODE "triggers graphics debug mode" OFF )
mark_as_advanced ( TORQUE_DEBUG_GFX_MODE )
2014-03-18 13:27:25 +01:00
2014-03-18 20:12:13 +01:00
#option(DEBUG_SPEW "more debug" OFF)
2014-03-18 13:27:25 +01:00
set ( TORQUE_NO_DSO_GENERATION ON )
2014-03-18 20:12:13 +01:00
if ( WIN32 )
2014-05-24 15:01:46 +02:00
# warning C4800: 'XXX' : forcing value to bool 'true' or 'false' (performance warning)
set ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -wd4800" )
# warning C4018: '<' : signed/unsigned mismatch
set ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -wd4018" )
# warning C4244: 'initializing' : conversion from 'XXX' to 'XXX', possible loss of data
set ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -wd4244" )
2014-09-14 21:42:08 +02:00
if ( TORQUE_CPU_X64 )
link_directories ( $ENV{ DXSDK_DIR } /Lib/x64 )
else ( )
link_directories ( $ENV{ DXSDK_DIR } /Lib/x86 )
endif ( )
2014-03-18 20:12:13 +01:00
endif ( )
2014-03-18 13:27:25 +01:00
2015-01-24 22:08:26 +01:00
# build types
if ( NOT MSVC ) # handle single-configuration generator
set ( CMAKE_BUILD_TYPE ${ TORQUE_BUILD_TYPE } )
if ( CMAKE_BUILD_TYPE STREQUAL "Debug" )
set ( TORQUE_DEBUG TRUE )
elseif ( CMAKE_BUILD_TYPE STREQUAL "Release" )
set ( TORQUE_RELEASE TRUE )
elseif ( CMAKE_BUILD_TYPE STREQUAL "RelWithDebInfo" )
set ( TORQUE_RELEASE TRUE )
else ( )
message ( FATAL_ERROR "Please select Debug, Release or RelWithDebInfo for TORQUE_BUILD_TYPE" )
endif ( )
endif ( )
2014-03-18 20:12:13 +01:00
###############################################################################
# Always enabled paths first
###############################################################################
addPath ( "${srcDir}/" ) # must come first :)
addPathRec ( "${srcDir}/app" )
addPath ( "${srcDir}/sfx/media" )
addPath ( "${srcDir}/sfx/null" )
addPath ( "${srcDir}/sfx" )
addPath ( "${srcDir}/component" )
addPath ( "${srcDir}/component/interfaces" )
addPath ( "${srcDir}/console" )
addPath ( "${srcDir}/core" )
addPath ( "${srcDir}/core/stream" )
addPath ( "${srcDir}/core/strings" )
addPath ( "${srcDir}/core/util" )
addPath ( "${srcDir}/core/util/test" )
addPath ( "${srcDir}/core/util/journal" )
addPath ( "${srcDir}/core/util/journal/test" )
addPath ( "${srcDir}/core/util/zip" )
2014-09-28 16:30:16 +10:00
addPath ( "${srcDir}/core/util/zip/test" )
2014-03-18 20:12:13 +01:00
addPath ( "${srcDir}/core/util/zip/compressors" )
addPath ( "${srcDir}/i18n" )
addPath ( "${srcDir}/sim" )
addPath ( "${srcDir}/util" )
addPath ( "${srcDir}/windowManager" )
addPath ( "${srcDir}/windowManager/torque" )
addPath ( "${srcDir}/windowManager/test" )
addPath ( "${srcDir}/math" )
addPath ( "${srcDir}/math/util" )
addPath ( "${srcDir}/math/test" )
addPath ( "${srcDir}/platform" )
addPath ( "${srcDir}/cinterface" )
addPath ( "${srcDir}/platform/nativeDialogs" )
2014-06-02 02:15:55 +02:00
if ( NOT TORQUE_DEDICATED )
addPath ( "${srcDir}/platform/menus" )
endif ( )
2014-03-18 20:12:13 +01:00
addPath ( "${srcDir}/platform/test" )
addPath ( "${srcDir}/platform/threads" )
2015-07-05 14:11:58 +10:00
addPath ( "${srcDir}/platform/threads/test" )
2014-03-18 20:12:13 +01:00
addPath ( "${srcDir}/platform/async" )
2014-09-28 19:08:43 +10:00
addPath ( "${srcDir}/platform/async/test" )
2014-03-18 20:12:13 +01:00
addPath ( "${srcDir}/platform/input" )
addPath ( "${srcDir}/platform/output" )
addPath ( "${srcDir}/app" )
addPath ( "${srcDir}/app/net" )
addPath ( "${srcDir}/util/messaging" )
addPath ( "${srcDir}/gfx/Null" )
addPath ( "${srcDir}/gfx/test" )
addPath ( "${srcDir}/gfx/bitmap" )
addPath ( "${srcDir}/gfx/bitmap/loaders" )
addPath ( "${srcDir}/gfx/util" )
addPath ( "${srcDir}/gfx/video" )
addPath ( "${srcDir}/gfx" )
addPath ( "${srcDir}/shaderGen" )
addPath ( "${srcDir}/gfx/sim" )
addPath ( "${srcDir}/gui/buttons" )
addPath ( "${srcDir}/gui/containers" )
addPath ( "${srcDir}/gui/controls" )
addPath ( "${srcDir}/gui/core" )
addPath ( "${srcDir}/gui/game" )
addPath ( "${srcDir}/gui/shiny" )
addPath ( "${srcDir}/gui/utility" )
addPath ( "${srcDir}/gui" )
addPath ( "${srcDir}/collision" )
addPath ( "${srcDir}/materials" )
addPath ( "${srcDir}/lighting" )
addPath ( "${srcDir}/lighting/common" )
addPath ( "${srcDir}/renderInstance" )
addPath ( "${srcDir}/scene" )
addPath ( "${srcDir}/scene/culling" )
addPath ( "${srcDir}/scene/zones" )
addPath ( "${srcDir}/scene/mixin" )
addPath ( "${srcDir}/shaderGen" )
addPath ( "${srcDir}/terrain" )
addPath ( "${srcDir}/environment" )
addPath ( "${srcDir}/forest" )
addPath ( "${srcDir}/forest/ts" )
addPath ( "${srcDir}/ts" )
addPath ( "${srcDir}/ts/arch" )
addPath ( "${srcDir}/physics" )
addPath ( "${srcDir}/gui/3d" )
addPath ( "${srcDir}/postFx" )
addPath ( "${srcDir}/T3D" )
addPath ( "${srcDir}/T3D/examples" )
addPath ( "${srcDir}/T3D/fps" )
addPath ( "${srcDir}/T3D/fx" )
addPath ( "${srcDir}/T3D/vehicles" )
addPath ( "${srcDir}/T3D/physics" )
addPath ( "${srcDir}/T3D/decal" )
addPath ( "${srcDir}/T3D/sfx" )
addPath ( "${srcDir}/T3D/gameBase" )
addPath ( "${srcDir}/T3D/turret" )
addPath ( "${srcDir}/main/" )
2015-10-13 15:50:30 -05:00
addPath ( "${srcDir}/assets" )
addPath ( "${srcDir}/module" )
addPath ( "${srcDir}/T3D/assets" )
addPathRec ( "${srcDir}/persistence" )
2014-03-18 20:12:13 +01:00
addPathRec ( "${srcDir}/ts/collada" )
addPathRec ( "${srcDir}/ts/loader" )
2014-03-20 05:34:45 +01:00
addPathRec ( "${projectSrcDir}" )
2014-03-18 20:12:13 +01:00
###############################################################################
# modular paths
###############################################################################
2014-03-18 13:27:25 +01:00
# lighting
if ( TORQUE_ADVANCED_LIGHTING )
2014-03-18 20:12:13 +01:00
addPath ( "${srcDir}/lighting/advanced" )
addPathRec ( "${srcDir}/lighting/shadowMap" )
2014-06-02 02:15:55 +02:00
if ( WIN32 )
addPathRec ( "${srcDir}/lighting/advanced/hlsl" )
endif ( )
if ( TORQUE_OPENGL )
addPathRec ( "${srcDir}/lighting/advanced/glsl" )
endif ( )
2014-06-02 01:35:06 +02:00
addDef ( TORQUE_ADVANCED_LIGHTING )
2014-03-18 13:27:25 +01:00
endif ( )
if ( TORQUE_BASIC_LIGHTING )
2014-03-18 20:12:13 +01:00
addPathRec ( "${srcDir}/lighting/basic" )
addPathRec ( "${srcDir}/lighting/shadowMap" )
2014-06-02 01:35:06 +02:00
addDef ( TORQUE_BASIC_LIGHTING )
2014-03-18 13:27:25 +01:00
endif ( )
# DirectX Sound
if ( TORQUE_SFX_DirectX )
2014-06-02 01:35:06 +02:00
addLib ( x3daudio.lib )
2014-03-18 20:12:13 +01:00
addPathRec ( "${srcDir}/sfx/dsound" )
addPathRec ( "${srcDir}/sfx/xaudio" )
2014-03-18 13:27:25 +01:00
endif ( )
# OpenAL
2014-06-02 02:15:55 +02:00
if ( TORQUE_SFX_OPENAL AND NOT TORQUE_DEDICATED )
2014-03-18 20:12:13 +01:00
addPath ( "${srcDir}/sfx/openal" )
#addPath("${srcDir}/sfx/openal/mac")
2014-06-02 02:15:55 +02:00
if ( WIN32 )
addPath ( "${srcDir}/sfx/openal/win32" )
addInclude ( "${libDir}/openal/win32" )
endif ( )
if ( UNIX )
addPath ( "${srcDir}/sfx/openal/linux" )
endif ( )
2014-06-02 01:35:06 +02:00
endif ( )
# Vorbis
if ( TORQUE_SFX_VORBIS )
addInclude ( ${ libDir } /libvorbis/include )
addDef ( TORQUE_OGGVORBIS )
addLib ( libvorbis )
addLib ( libogg )
2014-03-18 13:27:25 +01:00
endif ( )
# Theora
if ( TORQUE_THEORA )
2014-03-18 20:12:13 +01:00
addPath ( "${srcDir}/core/ogg" )
addPath ( "${srcDir}/gfx/video" )
addPath ( "${srcDir}/gui/theora" )
2014-06-02 01:35:06 +02:00
addDef ( TORQUE_OGGTHEORA )
addDef ( TORQUE_OGGVORIBS )
addInclude ( ${ libDir } /libtheora/include )
addLib ( libtheora )
2014-03-18 20:12:13 +01:00
endif ( )
# Include tools for non-tool builds (or define player if a tool build)
if ( TORQUE_TOOLS )
addPath ( "${srcDir}/gui/worldEditor" )
addPath ( "${srcDir}/environment/editors" )
addPath ( "${srcDir}/forest/editor" )
addPath ( "${srcDir}/gui/editor" )
addPath ( "${srcDir}/gui/editor/inspector" )
endif ( )
if ( TORQUE_HIFI )
addPath ( "${srcDir}/T3D/gameBase/hifi" )
2014-06-02 01:35:06 +02:00
addDef ( TORQUE_HIFI_NET )
2014-03-18 20:12:13 +01:00
endif ( )
if ( TORQUE_EXTENDED_MOVE )
addPath ( "${srcDir}/T3D/gameBase/extended" )
2014-06-02 01:35:06 +02:00
addDef ( TORQUE_EXTENDED_MOVE )
2014-03-18 20:12:13 +01:00
else ( )
addPath ( "${srcDir}/T3D/gameBase/std" )
2014-03-18 13:27:25 +01:00
endif ( )
2015-01-16 20:37:16 +01:00
if ( TORQUE_SDL )
addPathRec ( "${srcDir}/windowManager/sdl" )
addPathRec ( "${srcDir}/platformSDL" )
if ( TORQUE_OPENGL )
addPathRec ( "${srcDir}/gfx/gl/sdl" )
endif ( )
if ( UNIX )
2015-01-24 22:08:26 +01:00
#set(CMAKE_SIZEOF_VOID_P 4) #force 32 bit
set ( ENV{CFLAGS} "${CXX_FLAG32} -g -O3" )
2015-01-16 20:37:16 +01:00
if ( "${TORQUE_ADDITIONAL_LINKER_FLAGS}" STREQUAL "" )
2015-01-24 22:08:26 +01:00
set ( ENV{LDFLAGS} "${CXX_FLAG32}" )
2015-01-16 20:37:16 +01:00
else ( )
2015-01-24 22:08:26 +01:00
set ( ENV{LDFLAGS} "${CXX_FLAG32} ${TORQUE_ADDITIONAL_LINKER_FLAGS}" )
2015-01-16 20:37:16 +01:00
endif ( )
endif ( )
#override and hide SDL2 cache variables
set ( SDL_SHARED ON CACHE INTERNAL "" FORCE )
set ( SDL_STATIC OFF CACHE INTERNAL "" FORCE )
add_subdirectory ( ${ libDir } /sdl ${ CMAKE_CURRENT_BINARY_DIR } /sdl2 )
endif ( )
2014-06-02 02:15:55 +02:00
if ( TORQUE_DEDICATED )
addDef ( TORQUE_DEDICATED )
endif ( )
2014-10-10 23:50:05 -07:00
#modules dir
file ( GLOB modules "modules/*.cmake" )
foreach ( module ${ modules } )
include ( ${ module } )
endforeach ( )
2014-06-02 02:15:55 +02:00
2014-03-18 20:12:13 +01:00
###############################################################################
# platform specific things
###############################################################################
2014-03-18 13:27:25 +01:00
if ( WIN32 )
2014-03-18 20:12:13 +01:00
addPath ( "${srcDir}/platformWin32" )
addPath ( "${srcDir}/platformWin32/nativeDialogs" )
addPath ( "${srcDir}/platformWin32/menus" )
addPath ( "${srcDir}/platformWin32/threads" )
addPath ( "${srcDir}/platformWin32/videoInfo" )
addPath ( "${srcDir}/platformWin32/minidump" )
addPath ( "${srcDir}/windowManager/win32" )
#addPath("${srcDir}/gfx/D3D8")
addPath ( "${srcDir}/gfx/D3D" )
addPath ( "${srcDir}/gfx/D3D9" )
addPath ( "${srcDir}/gfx/D3D9/pc" )
addPath ( "${srcDir}/shaderGen/HLSL" )
addPath ( "${srcDir}/terrain/hlsl" )
addPath ( "${srcDir}/forest/hlsl" )
# add windows rc file for the icon
2014-03-19 02:03:45 +01:00
addFile ( "${projectSrcDir}/torque.rc" )
2014-03-18 13:27:25 +01:00
endif ( )
if ( APPLE )
2014-03-18 20:12:13 +01:00
addPath ( "${srcDir}/platformMac" )
addPath ( "${srcDir}/platformMac/menus" )
addPath ( "${srcDir}/platformPOSIX" )
addPath ( "${srcDir}/windowManager/mac" )
addPath ( "${srcDir}/gfx/gl" )
addPath ( "${srcDir}/gfx/gl/ggl" )
addPath ( "${srcDir}/gfx/gl/ggl/mac" )
addPath ( "${srcDir}/gfx/gl/ggl/generated" )
addPath ( "${srcDir}/shaderGen/GLSL" )
addPath ( "${srcDir}/terrain/glsl" )
addPath ( "${srcDir}/forest/glsl" )
2014-03-18 13:27:25 +01:00
endif ( )
if ( XBOX360 )
2014-03-18 20:12:13 +01:00
addPath ( "${srcDir}/platformXbox" )
addPath ( "${srcDir}/platformXbox/threads" )
addPath ( "${srcDir}/windowManager/360" )
addPath ( "${srcDir}/gfx/D3D9" )
addPath ( "${srcDir}/gfx/D3D9/360" )
addPath ( "${srcDir}/shaderGen/HLSL" )
addPath ( "${srcDir}/shaderGen/360" )
addPath ( "${srcDir}/ts/arch/360" )
addPath ( "${srcDir}/terrain/hlsl" )
addPath ( "${srcDir}/forest/hlsl" )
2014-03-18 13:27:25 +01:00
endif ( )
if ( PS3 )
2014-03-18 20:12:13 +01:00
addPath ( "${srcDir}/platformPS3" )
addPath ( "${srcDir}/platformPS3/threads" )
addPath ( "${srcDir}/windowManager/ps3" )
addPath ( "${srcDir}/gfx/gl" )
addPath ( "${srcDir}/gfx/gl/ggl" )
addPath ( "${srcDir}/gfx/gl/ggl/ps3" )
addPath ( "${srcDir}/gfx/gl/ggl/generated" )
addPath ( "${srcDir}/shaderGen/GLSL" )
addPath ( "${srcDir}/ts/arch/ps3" )
addPath ( "${srcDir}/terrain/glsl" )
addPath ( "${srcDir}/forest/glsl" )
2014-03-18 13:27:25 +01:00
endif ( )
if ( UNIX )
2015-01-24 22:08:26 +01:00
# linux_dedicated
2014-06-02 02:15:55 +02:00
if ( TORQUE_DEDICATED )
addPath ( "${srcDir}/windowManager/dedicated" )
# ${srcDir}/platformX86UNIX/*.client.* files are not needed
# @todo: move to separate file
file ( GLOB tmp_files
$ { s r c D i r } / p l a t f o r m X 8 6 U N I X / * . c p p
$ { s r c D i r } / p l a t f o r m X 8 6 U N I X / * . c
$ { s r c D i r } / p l a t f o r m X 8 6 U N I X / * . c c
$ { s r c D i r } / p l a t f o r m X 8 6 U N I X / * . h )
file ( GLOB tmp_remove_files ${ srcDir } /platformX86UNIX/*client.* )
LIST ( REMOVE_ITEM tmp_files ${ tmp_remove_files } )
foreach ( f ${ tmp_files } )
addFile ( ${ f } )
endforeach ( )
else ( )
addPath ( "${srcDir}/platformX86UNIX" )
2015-01-24 22:08:26 +01:00
addPath ( "${srcDir}/platformX86UNIX/nativeDialogs" )
2014-06-02 02:15:55 +02:00
endif ( )
2015-01-24 22:08:26 +01:00
# linux
2014-03-18 20:12:13 +01:00
addPath ( "${srcDir}/platformX86UNIX/threads" )
addPath ( "${srcDir}/platformPOSIX" )
2014-06-02 02:15:55 +02:00
endif ( )
if ( TORQUE_OPENGL )
2014-03-18 20:12:13 +01:00
addPath ( "${srcDir}/shaderGen/GLSL" )
2014-06-02 02:15:55 +02:00
if ( TORQUE_OPENGL AND NOT TORQUE_DEDICATED )
addPath ( "${srcDir}/gfx/gl" )
addPath ( "${srcDir}/gfx/gl/tGL" )
2014-11-08 17:41:17 +01:00
addPath ( "${srcDir}/shaderGen/GLSL" )
2014-06-02 02:15:55 +02:00
addPath ( "${srcDir}/terrain/glsl" )
addPath ( "${srcDir}/forest/glsl" )
2014-11-08 17:41:17 +01:00
# glew
LIST ( APPEND ${ PROJECT_NAME } _files "${libDir}/glew/src/glew.c" )
2014-06-02 02:15:55 +02:00
endif ( )
if ( WIN32 AND NOT TORQUE_SDL )
addPath ( "${srcDir}/gfx/gl/win32" )
endif ( )
2014-03-18 13:27:25 +01:00
endif ( )
2014-03-18 20:12:13 +01:00
###############################################################################
###############################################################################
2014-06-02 01:35:06 +02:00
finishExecutable ( )
2014-03-18 20:12:13 +01:00
###############################################################################
###############################################################################
2014-03-18 13:27:25 +01:00
2014-09-28 20:27:29 +02:00
message ( STATUS "writing ${projectSrcDir}/torqueConfig.h" )
CONFIGURE_FILE ( "${cmakeDir}/torqueConfig.h.in" "${projectSrcDir}/torqueConfig.h" )
2014-03-19 02:43:52 +01:00
# configure the relevant files only once
2014-03-19 02:15:00 +01:00
if ( NOT EXISTS "${projectSrcDir}/torque.ico" )
CONFIGURE_FILE ( "${cmakeDir}/torque.ico" "${projectSrcDir}/torque.ico" COPYONLY )
2014-03-18 13:27:25 +01:00
endif ( )
2014-03-19 18:17:35 +01:00
if ( NOT EXISTS "${projectOutDir}/${PROJECT_NAME}.torsion" )
CONFIGURE_FILE ( "${cmakeDir}/template.torsion.in" "${projectOutDir}/${PROJECT_NAME}.torsion" )
endif ( )
if ( EXISTS "${CMAKE_SOURCE_DIR}/Templates/${TORQUE_TEMPLATE}/game/main.cs.in" AND NOT EXISTS "${projectOutDir}/main.cs" )
CONFIGURE_FILE ( "${CMAKE_SOURCE_DIR}/Templates/${TORQUE_TEMPLATE}/game/main.cs.in" "${projectOutDir}/main.cs" )
endif ( )
2014-03-19 02:03:45 +01:00
if ( WIN32 )
2014-06-02 01:35:06 +02:00
if ( NOT EXISTS "${projectSrcDir}/torque.rc" )
CONFIGURE_FILE ( "${cmakeDir}/torque-win.rc.in" "${projectSrcDir}/torque.rc" )
endif ( )
if ( NOT EXISTS "${projectOutDir}/${PROJECT_NAME}-debug.bat" )
CONFIGURE_FILE ( "${cmakeDir}/app-debug-win.bat.in" "${projectOutDir}/${PROJECT_NAME}-debug.bat" )
endif ( )
if ( NOT EXISTS "${projectOutDir}/cleanup.bat" )
CONFIGURE_FILE ( "${cmakeDir}/cleanup-win.bat.in" "${projectOutDir}/cleanup.bat" )
endif ( )
2014-03-19 02:03:45 +01:00
endif ( )
2014-03-18 13:27:25 +01:00
2014-03-18 20:12:13 +01:00
###############################################################################
# Common Libraries
###############################################################################
2014-03-19 02:03:45 +01:00
addLib ( lmng )
addLib ( lpng )
addLib ( lungif )
addLib ( ljpeg )
addLib ( zlib )
addLib ( tinyxml )
addLib ( opcode )
addLib ( squish )
addLib ( collada )
addLib ( pcre )
addLib ( convexDecomp )
2014-03-18 13:27:25 +01:00
if ( WIN32 )
# copy pasted from T3D build system, some might not be needed
2014-06-02 01:35:06 +02:00
set ( TORQUE_EXTERNAL_LIBS "COMCTL32.LIB;COMDLG32.LIB;USER32.LIB;ADVAPI32.LIB;GDI32.LIB;WINMM.LIB;WSOCK32.LIB;vfw32.lib;Imm32.lib;d3d9.lib;d3dx9.lib;DxErr.lib;ole32.lib;shell32.lib;oleaut32.lib;version.lib" CACHE STRING "external libs to link against" )
mark_as_advanced ( TORQUE_EXTERNAL_LIBS )
2014-03-19 02:41:06 +01:00
addLib ( "${TORQUE_EXTERNAL_LIBS}" )
2014-11-08 17:41:17 +01:00
if ( TORQUE_OPENGL )
addLib ( OpenGL32.lib )
endif ( )
2014-03-18 13:27:25 +01:00
endif ( )
2015-01-24 22:08:26 +01:00
if ( UNIX )
# copy pasted from T3D build system, some might not be needed
set ( TORQUE_EXTERNAL_LIBS "dl Xxf86vm Xext X11 Xft stdc++ pthread GL" CACHE STRING "external libs to link against" )
mark_as_advanced ( TORQUE_EXTERNAL_LIBS )
string ( REPLACE " " ";" TORQUE_EXTERNAL_LIBS_LIST ${ TORQUE_EXTERNAL_LIBS } )
addLib ( "${TORQUE_EXTERNAL_LIBS_LIST}" )
2014-03-18 13:27:25 +01:00
endif ( )
2014-06-02 02:15:55 +02:00
if ( UNIX )
# copy pasted from T3D build system, some might not be needed
2014-09-22 22:11:03 +10:00
set ( TORQUE_EXTERNAL_LIBS "rt dl Xxf86vm Xext X11 Xft stdc++ pthread GL" CACHE STRING "external libs to link against" )
2014-06-02 02:15:55 +02:00
mark_as_advanced ( TORQUE_EXTERNAL_LIBS )
string ( REPLACE " " ";" TORQUE_EXTERNAL_LIBS_LIST ${ TORQUE_EXTERNAL_LIBS } )
addLib ( "${TORQUE_EXTERNAL_LIBS_LIST}" )
endif ( )
2014-03-18 20:12:13 +01:00
###############################################################################
# Always enabled Definitions
###############################################################################
2014-12-02 18:16:47 -05:00
addDef ( TORQUE_DEBUG Debug )
addDef ( TORQUE_ENABLE_ASSERTS "Debug;RelWithDebInfo" )
2014-06-02 01:35:06 +02:00
addDef ( TORQUE_DEBUG_GFX_MODE "RelWithDebInfo" )
2014-03-18 20:12:13 +01:00
addDef ( TORQUE_SHADERGEN )
addDef ( INITGUID )
addDef ( NTORQUE_SHARED )
addDef ( UNICODE )
addDef ( _UNICODE ) # for VS
addDef ( TORQUE_UNICODE )
2014-03-19 02:41:06 +01:00
#addDef(TORQUE_SHARED) # not used anymore as the game is the executable directly
2014-03-18 20:12:13 +01:00
addDef ( LTC_NO_PROTOTYPES ) # for libTomCrypt
addDef ( BAN_OPCODE_AUTOLINK )
addDef ( ICE_NO_DLL )
addDef ( TORQUE_OPCODE )
addDef ( TORQUE_COLLADA )
addDef ( DOM_INCLUDE_TINYXML )
addDef ( PCRE_STATIC )
addDef ( _CRT_SECURE_NO_WARNINGS )
addDef ( _CRT_SECURE_NO_DEPRECATE )
2014-06-02 02:15:55 +02:00
if ( UNIX )
addDef ( LINUX )
endif ( )
2014-11-08 17:41:17 +01:00
if ( TORQUE_OPENGL )
addDef ( TORQUE_OPENGL )
if ( WIN32 )
addDef ( GLEW_STATIC )
endif ( )
endif ( )
2015-01-16 20:37:16 +01:00
if ( TORQUE_SDL )
addDef ( TORQUE_SDL )
addInclude ( ${ libDir } /sdl/include )
addLib ( SDL2 )
endif ( )
2015-01-24 22:08:26 +01:00
if ( TORQUE_STATIC_CODE_ANALYSIS )
addDef ( "ON_FAIL_ASSERTFATAL=exit(1)" )
endif ( )
2014-03-18 20:12:13 +01:00
###############################################################################
# Include Paths
###############################################################################
addInclude ( "${projectSrcDir}" )
addInclude ( "${srcDir}/" )
addInclude ( "${libDir}/lmpg" )
addInclude ( "${libDir}/lpng" )
addInclude ( "${libDir}/ljpeg" )
addInclude ( "${libDir}/lungif" )
addInclude ( "${libDir}/zlib" )
addInclude ( "${libDir}/" ) # for tinyxml
addInclude ( "${libDir}/tinyxml" )
addInclude ( "${libDir}/squish" )
addInclude ( "${libDir}/convexDecomp" )
addInclude ( "${libDir}/libogg/include" )
addInclude ( "${libDir}/opcode" )
addInclude ( "${libDir}/collada/include" )
addInclude ( "${libDir}/collada/include/1.4" )
2014-11-08 17:41:17 +01:00
if ( TORQUE_OPENGL )
addInclude ( "${libDir}/glew/include" )
endif ( )
2014-03-18 13:27:25 +01:00
2015-01-24 22:08:26 +01:00
if ( UNIX )
addInclude ( "/usr/include/freetype2/freetype" )
addInclude ( "/usr/include/freetype2" )
endif ( )
if ( TORQUE_OPENGL )
addInclude ( "${libDir}/glew/include" )
endif ( )
2014-03-18 13:27:25 +01:00
2014-03-18 20:12:13 +01:00
# external things
if ( WIN32 )
set_property ( TARGET ${ PROJECT_NAME } APPEND PROPERTY INCLUDE_DIRECTORIES $ENV{ DXSDK_DIR } /Include )
endif ( )
2014-03-18 13:27:25 +01:00
2014-06-02 02:15:55 +02:00
if ( UNIX )
addInclude ( "/usr/include/freetype2/freetype" )
addInclude ( "/usr/include/freetype2" )
endif ( )
2014-12-17 15:21:19 -05:00
if ( MSVC )
# Match projectGenerator naming for executables
set ( OUTPUT_CONFIG DEBUG MINSIZEREL RELWITHDEBINFO )
set ( OUTPUT_SUFFIX DEBUG MINSIZE OPTIMIZEDDEBUG )
foreach ( INDEX RANGE 2 )
list ( GET OUTPUT_CONFIG ${ INDEX } CONF )
list ( GET OUTPUT_SUFFIX ${ INDEX } SUFFIX )
set_property ( TARGET ${ PROJECT_NAME } PROPERTY OUTPUT_NAME_ ${ CONF } ${ PROJECT_NAME } _ ${ SUFFIX } )
endforeach ( )
endif ( )
2014-03-18 20:12:13 +01:00
###############################################################################
# Installation
###############################################################################
2014-05-20 23:24:08 +02:00
if ( TORQUE_TEMPLATE )
message ( "Prepare Template(${TORQUE_TEMPLATE}) install..." )
2014-07-28 12:30:38 +02:00
INSTALL ( DIRECTORY "${CMAKE_SOURCE_DIR}/Templates/${TORQUE_TEMPLATE}/game" DESTINATION "${TORQUE_APP_DIR}" )
2014-05-20 23:24:08 +02:00
if ( WIN32 )
2014-07-28 12:30:38 +02:00
INSTALL ( FILES "${CMAKE_SOURCE_DIR}/Templates/${TORQUE_TEMPLATE}/cleanShaders.bat" DESTINATION "${TORQUE_APP_DIR}" )
INSTALL ( FILES "${CMAKE_SOURCE_DIR}/Templates/${TORQUE_TEMPLATE}/DeleteCachedDTSs.bat" DESTINATION "${TORQUE_APP_DIR}" )
INSTALL ( FILES "${CMAKE_SOURCE_DIR}/Templates/${TORQUE_TEMPLATE}/DeleteDSOs.bat" DESTINATION "${TORQUE_APP_DIR}" )
INSTALL ( FILES "${CMAKE_SOURCE_DIR}/Templates/${TORQUE_TEMPLATE}/DeletePrefs.bat" DESTINATION "${TORQUE_APP_DIR}" )
2014-05-20 23:24:08 +02:00
endif ( )
2014-03-19 03:23:51 +01:00
endif ( )