2014-07-18 20:07:38 +00: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 17:17:35 +00:00
project ( ${ TORQUE_APP_NAME } )
2014-03-18 19:12:13 +00:00
2014-06-02 00:15:55 +00:00
if ( UNIX )
2015-01-24 22:28:12 +00:00
if ( NOT CXX_FLAG32 )
set ( CXX_FLAG32 "" )
endif ( )
2015-01-24 21:08:26 +00:00
#set(CXX_FLAG32 "-m32") #uncomment for build x32 on OSx64
2016-09-28 01:09:48 +00:00
2016-10-18 13:39:39 +00:00
if ( CMAKE_CXX_COMPILER_ID MATCHES "Clang" )
2016-10-19 23:50:13 +00:00
set ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${CXX_FLAG32} -Wundef -msse -pipe -Wfatal-errors -Wno-return-type-c-linkage -Wno-unused-local-typedef ${TORQUE_ADDITIONAL_LINKER_FLAGS}" )
set ( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${CXX_FLAG32} -Wundef -msse -pipe -Wfatal-errors -Wno-return-type-c-linkage -Wno-unused-local-typedef ${TORQUE_ADDITIONAL_LINKER_FLAGS}" )
2016-10-18 13:39:39 +00:00
else ( )
2014-06-02 00:15:55 +00:00
# default compiler flags
2015-08-03 22:09:53 +00: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 00:15:55 +00:00
2016-10-18 13:39:39 +00:00
endif ( )
2014-06-02 00:15:55 +00:00
# for asm files
SET ( CMAKE_ASM_NASM_OBJECT_FORMAT "elf" )
ENABLE_LANGUAGE ( ASM_NASM )
2016-09-28 01:09:48 +00:00
2016-05-29 05:58:02 +00:00
set ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11" )
2014-06-02 00:15:55 +00:00
endif ( )
2014-03-18 12:27:25 +00:00
# TODO: fmod support
2014-03-18 19:12:13 +00:00
###############################################################################
# modules
###############################################################################
option ( TORQUE_SFX_VORBIS "Vorbis Sound" ON )
2014-03-19 01:41:06 +00:00
mark_as_advanced ( TORQUE_SFX_VORBIS )
2014-06-01 23:35:06 +00:00
option ( TORQUE_THEORA "Theora Video Support" ON )
mark_as_advanced ( TORQUE_THEORA )
2014-03-18 19:12:13 +00:00
option ( TORQUE_ADVANCED_LIGHTING "Advanced Lighting" ON )
2014-03-19 01:41:06 +00:00
mark_as_advanced ( TORQUE_ADVANCED_LIGHTING )
2014-03-18 19:12:13 +00:00
option ( TORQUE_BASIC_LIGHTING "Basic Lighting" ON )
2014-03-19 01:41:06 +00:00
mark_as_advanced ( TORQUE_BASIC_LIGHTING )
2014-06-02 00:15:55 +00: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 19:12:13 +00:00
option ( TORQUE_SFX_OPENAL "OpenAL Sound" ON )
2016-10-21 23:22:33 +00:00
#windows uses openal-soft
if ( WIN32 )
2017-01-17 07:10:24 +00:00
#disable a few things that are not required
set ( ALSOFT_TESTS OFF CACHE BOOL "Build and install test programs" FORCE )
set ( ALSOFT_UTILS OFF CACHE BOOL "Build and install utility programs" FORCE )
set ( ALSOFT_EXAMPLES OFF CACHE BOOL "Build and install example programs" FORCE )
set ( ALSOFT_CONFIG OFF CACHE BOOL "Install alsoft.conf sample configuration file" FORCE )
set ( ALSOFT_INSTALL OFF CACHE BOOL "Install headers and libraries" FORCE )
set ( ALSOFT_NO_CONFIG_UTIL OFF CACHE BOOL "Disable building the alsoft-config utility" FORCE )
set ( ALSOFT_HRTF_DEFS OFF CACHE BOOL "Install HRTF definition files" FORCE )
set ( ALSOFT_AMBDEC_PRESETS OFF CACHE BOOL "Install AmbDec presets" FORCE )
add_subdirectory ( ${ libDir } /openal-soft ${ CMAKE_CURRENT_BINARY_DIR } /openal-soft )
endif ( )
if ( TORQUE_SFX_OPENAL )
#Hide some unnecessary fields as advanced
mark_as_advanced ( ALSOFT_AMBDEC_PRESETS )
mark_as_advanced ( ALSOFT_BACKEND_DSOUND )
mark_as_advanced ( ALSOFT_BACKEND_MMDEVAPI )
mark_as_advanced ( ALSOFT_BACKEND_WAVE )
mark_as_advanced ( ALSOFT_BACKEND_WINMM )
mark_as_advanced ( ALSOFT_CONFIG )
mark_as_advanced ( ALSOFT_CPUEXT_SSE )
mark_as_advanced ( ALSOFT_CPUEXT_SSE2 )
mark_as_advanced ( ALSOFT_CPUEXT_SSE3 )
mark_as_advanced ( ALSOFT_CPUEXT_SSE4_1 )
mark_as_advanced ( ALSOFT_DLOPEN )
mark_as_advanced ( ALSOFT_EMBED_HRTF_DATA )
mark_as_advanced ( ALSOFT_EXAMPLES )
mark_as_advanced ( ALSOFT_HRTF_DEFS )
mark_as_advanced ( ALSOFT_INSTALL )
mark_as_advanced ( ALSOFT_NO_CONFIG_UTIL )
mark_as_advanced ( ALSOFT_NO_UID_DEFS )
mark_as_advanced ( ALSOFT_REQUIRE_ALSA )
mark_as_advanced ( ALSOFT_REQUIRE_COREAUDIO )
mark_as_advanced ( ALSOFT_REQUIRE_DSOUND )
mark_as_advanced ( ALSOFT_REQUIRE_JACK )
mark_as_advanced ( ALSOFT_REQUIRE_MMDEVAPI )
mark_as_advanced ( ALSOFT_REQUIRE_NEON )
mark_as_advanced ( ALSOFT_REQUIRE_OPENSL )
mark_as_advanced ( ALSOFT_REQUIRE_OSS )
mark_as_advanced ( ALSOFT_REQUIRE_PORTAUDIO )
mark_as_advanced ( ALSOFT_REQUIRE_PULSEAUDIO )
mark_as_advanced ( ALSOFT_REQUIRE_QSA )
mark_as_advanced ( ALSOFT_REQUIRE_SNDIO )
mark_as_advanced ( ALSOFT_REQUIRE_SOLARIS )
mark_as_advanced ( ALSOFT_REQUIRE_SSE )
mark_as_advanced ( ALSOFT_REQUIRE_SSE2 )
mark_as_advanced ( ALSOFT_REQUIRE_SSE4_1 )
mark_as_advanced ( ALSOFT_REQUIRE_WINMM )
mark_as_advanced ( ALSOFT_TESTS )
mark_as_advanced ( ALSOFT_UTILS )
mark_as_advanced ( ALSOFT_WERROR )
mark_as_advanced ( COREAUDIO_FRAMEWORK )
mark_as_advanced ( CMAKE_DEBUG_POSTFIX )
mark_as_advanced ( FORCE_STATIC_VCRT )
2016-10-21 23:22:33 +00:00
endif ( )
2017-01-17 07:10:24 +00:00
2014-03-19 01:41:06 +00:00
mark_as_advanced ( TORQUE_SFX_OPENAL )
2014-03-18 19:12:13 +00:00
option ( TORQUE_HIFI "HIFI? support" OFF )
2014-03-19 01:41:06 +00:00
mark_as_advanced ( TORQUE_HIFI )
2014-03-18 19:12:13 +00:00
option ( TORQUE_EXTENDED_MOVE "Extended move support" OFF )
2014-03-19 01:41:06 +00:00
mark_as_advanced ( TORQUE_EXTENDED_MOVE )
2016-08-25 21:53:09 +00:00
2015-01-16 19:37:16 +00:00
if ( WIN32 )
2016-08-25 21:53:09 +00:00
option ( TORQUE_SDL "Use SDL for window and input" ON )
2015-01-16 19:37:16 +00:00
else ( )
set ( TORQUE_SDL ON ) # we need sdl to work on Linux/Mac
endif ( )
2014-10-11 06:50:05 +00:00
2014-06-02 00:15:55 +00:00
if ( WIN32 )
2016-08-25 21:53:09 +00:00
option ( TORQUE_OPENGL "Allow OpenGL render" ON )
2014-06-02 00:15:55 +00:00
#mark_as_advanced(TORQUE_OPENGL)
else ( )
set ( TORQUE_OPENGL ON ) # we need OpenGL to render on Linux/Mac
endif ( )
2014-03-18 12:27:25 +00:00
2016-03-20 11:55:40 +00:00
if ( WIN32 )
2016-08-25 21:53:09 +00:00
option ( TORQUE_D3D11 "Allow Direct3D 11 render" ON )
2016-03-20 11:55:40 +00:00
endif ( )
2016-05-15 15:11:46 +00:00
option ( TORQUE_EXPERIMENTAL_EC "Experimental Entity/Component systems" OFF )
mark_as_advanced ( TORQUE_EXPERIMENTAL_EC )
2016-08-25 21:53:09 +00:00
option ( TORQUE_DEDICATED "Torque dedicated" OFF )
mark_as_advanced ( TORQUE_DEDICATED )
2014-03-18 19:12:13 +00:00
###############################################################################
# options
###############################################################################
2016-09-28 01:09:48 +00:00
if ( NOT MSVC AND NOT APPLE ) # handle single-configuration generator
2014-06-02 00:15:55 +00:00
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" )
2016-09-28 01:09:48 +00:00
2014-06-02 00:15:55 +00:00
set ( TORQUE_ADDITIONAL_LINKER_FLAGS "" CACHE STRING "Additional linker flags" )
mark_as_advanced ( TORQUE_ADDITIONAL_LINKER_FLAGS )
endif ( )
2014-03-18 12:27:25 +00:00
option ( TORQUE_MULTITHREAD "Multi Threading" ON )
2014-03-19 01:41:06 +00:00
mark_as_advanced ( TORQUE_MULTITHREAD )
2014-06-02 00:15:55 +00:00
option ( TORQUE_DISABLE_MEMORY_MANAGER "Disable memory manager" ON )
2014-03-19 01:41:06 +00:00
mark_as_advanced ( TORQUE_DISABLE_MEMORY_MANAGER )
2014-03-18 12:27:25 +00:00
option ( TORQUE_DISABLE_VIRTUAL_MOUNT_SYSTEM "Disable virtual mount system" OFF )
2014-03-19 01:41:06 +00:00
mark_as_advanced ( TORQUE_DISABLE_VIRTUAL_MOUNT_SYSTEM )
2014-03-18 12:27:25 +00:00
option ( TORQUE_PLAYER "Playback only?" OFF )
2014-03-19 01:41:06 +00:00
mark_as_advanced ( TORQUE_PLAYER )
2014-03-18 12:27:25 +00:00
option ( TORQUE_TOOLS "Enable or disable the tools" ON )
2014-03-19 01:41:06 +00:00
mark_as_advanced ( TORQUE_TOOLS )
2014-03-18 12:27:25 +00:00
option ( TORQUE_ENABLE_PROFILER "Enable or disable the profiler" OFF )
2014-03-19 01:41:06 +00:00
mark_as_advanced ( TORQUE_ENABLE_PROFILER )
2014-03-18 12:27:25 +00:00
option ( TORQUE_DEBUG "T3D Debug mode" OFF )
2014-03-19 01:41:06 +00:00
mark_as_advanced ( TORQUE_DEBUG )
2014-03-18 12:27:25 +00:00
option ( TORQUE_SHIPPING "T3D Shipping build?" OFF )
2014-03-19 01:41:06 +00:00
mark_as_advanced ( TORQUE_SHIPPING )
2014-03-18 12:27:25 +00:00
option ( TORQUE_DEBUG_NET "debug network" OFF )
2014-03-19 01:41:06 +00:00
mark_as_advanced ( TORQUE_DEBUG_NET )
2014-03-18 12:27:25 +00:00
option ( TORQUE_DEBUG_NET_MOVES "debug network moves" OFF )
2014-03-19 01:41:06 +00:00
mark_as_advanced ( TORQUE_DEBUG_NET_MOVES )
2014-03-18 19:12:13 +00:00
option ( TORQUE_ENABLE_ASSERTS "enables or disable asserts" OFF )
2014-03-19 01:41:06 +00: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 12:27:25 +00:00
2014-03-18 19:12:13 +00:00
#option(DEBUG_SPEW "more debug" OFF)
2014-03-18 12:27:25 +00:00
set ( TORQUE_NO_DSO_GENERATION ON )
2014-03-18 19:12:13 +00:00
if ( WIN32 )
2014-05-24 13:01:46 +00: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 19:42:08 +00:00
if ( TORQUE_CPU_X64 )
link_directories ( $ENV{ DXSDK_DIR } /Lib/x64 )
else ( )
link_directories ( $ENV{ DXSDK_DIR } /Lib/x86 )
endif ( )
2014-03-18 19:12:13 +00:00
endif ( )
2014-03-18 12:27:25 +00:00
2015-01-24 21:08:26 +00:00
# build types
2016-09-28 01:09:48 +00:00
if ( NOT MSVC AND NOT APPLE ) # handle single-configuration generator
2015-01-24 21:08:26 +00:00
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 19:12:13 +00: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}/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 06:30:16 +00:00
addPath ( "${srcDir}/core/util/zip/test" )
2014-03-18 19:12:13 +00: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" )
2016-04-30 20:48:33 +00:00
2014-03-18 19:12:13 +00:00
addPath ( "${srcDir}/platform" )
2016-09-28 01:09:48 +00:00
if ( NOT TORQUE_SDL )
2016-04-30 20:48:33 +00:00
set ( BLACKLIST "fileDialog.cpp" )
endif ( )
2014-03-18 19:12:13 +00:00
addPath ( "${srcDir}/platform/nativeDialogs" )
2016-04-30 20:48:33 +00:00
set ( BLACKLIST "" )
2014-03-18 19:12:13 +00:00
addPath ( "${srcDir}/cinterface" )
2016-05-06 03:59:17 +00:00
2014-06-02 00:15:55 +00:00
if ( NOT TORQUE_DEDICATED )
addPath ( "${srcDir}/platform/menus" )
endif ( )
2014-03-18 19:12:13 +00:00
addPath ( "${srcDir}/platform/test" )
addPath ( "${srcDir}/platform/threads" )
2015-07-05 04:11:58 +00:00
addPath ( "${srcDir}/platform/threads/test" )
2014-03-18 19:12:13 +00:00
addPath ( "${srcDir}/platform/async" )
2014-09-28 09:08:43 +00:00
addPath ( "${srcDir}/platform/async/test" )
2014-03-18 19:12:13 +00:00
addPath ( "${srcDir}/platform/input" )
addPath ( "${srcDir}/platform/output" )
addPath ( "${srcDir}/app" )
addPath ( "${srcDir}/app/net" )
2016-08-12 18:39:56 +00:00
addPath ( "${srcDir}/BadBehavior" )
addPath ( "${srcDir}/BadBehavior/composite" )
addPath ( "${srcDir}/BadBehavior/core" )
addPath ( "${srcDir}/BadBehavior/decorator" )
addPath ( "${srcDir}/BadBehavior/leaf" )
addPath ( "${srcDir}/BadBehavior/leaf/compiled" )
addPath ( "${srcDir}/BadBehavior/tools" )
2014-03-18 19:12:13 +00:00
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" )
2016-05-15 15:11:46 +00:00
2016-09-28 01:09:48 +00:00
if ( NOT TORQUE_EXPERIMENTAL_EC )
2016-05-29 05:58:02 +00:00
set ( BLACKLIST "entity.cpp;entity.h" )
2016-05-15 15:11:46 +00:00
endif ( )
2014-03-18 19:12:13 +00:00
addPath ( "${srcDir}/T3D" )
2016-05-15 15:11:46 +00:00
set ( BLACKLIST "" )
2014-03-18 19:12:13 +00:00
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" )
2016-05-15 15:11:46 +00:00
if ( TORQUE_EXPERIMENTAL_EC )
addPath ( "${srcDir}/T3D/components/" )
2016-05-29 05:58:02 +00:00
addPath ( "${srcDir}/T3D/components/animation" )
addPath ( "${srcDir}/T3D/components/camera" )
addPath ( "${srcDir}/T3D/components/collision" )
addPath ( "${srcDir}/T3D/components/game" )
addPath ( "${srcDir}/T3D/components/physics" )
addPath ( "${srcDir}/T3D/components/render" )
2016-05-15 15:11:46 +00:00
endif ( )
2014-03-18 19:12:13 +00:00
addPath ( "${srcDir}/main/" )
2015-10-13 20:50:30 +00:00
addPath ( "${srcDir}/assets" )
addPath ( "${srcDir}/module" )
addPath ( "${srcDir}/T3D/assets" )
addPathRec ( "${srcDir}/persistence" )
2014-03-18 19:12:13 +00:00
addPathRec ( "${srcDir}/ts/collada" )
addPathRec ( "${srcDir}/ts/loader" )
2014-03-20 04:34:45 +00:00
addPathRec ( "${projectSrcDir}" )
2014-03-18 19:12:13 +00:00
###############################################################################
# modular paths
###############################################################################
2014-03-18 12:27:25 +00:00
# lighting
if ( TORQUE_ADVANCED_LIGHTING )
2014-03-18 19:12:13 +00:00
addPath ( "${srcDir}/lighting/advanced" )
addPathRec ( "${srcDir}/lighting/shadowMap" )
2014-06-02 00:15:55 +00:00
if ( WIN32 )
addPathRec ( "${srcDir}/lighting/advanced/hlsl" )
endif ( )
if ( TORQUE_OPENGL )
addPathRec ( "${srcDir}/lighting/advanced/glsl" )
endif ( )
2014-06-01 23:35:06 +00:00
addDef ( TORQUE_ADVANCED_LIGHTING )
2014-03-18 12:27:25 +00:00
endif ( )
if ( TORQUE_BASIC_LIGHTING )
2014-03-18 19:12:13 +00:00
addPathRec ( "${srcDir}/lighting/basic" )
addPathRec ( "${srcDir}/lighting/shadowMap" )
2014-06-01 23:35:06 +00:00
addDef ( TORQUE_BASIC_LIGHTING )
2014-03-18 12:27:25 +00:00
endif ( )
# DirectX Sound
if ( TORQUE_SFX_DirectX )
2014-06-01 23:35:06 +00:00
addLib ( x3daudio.lib )
2014-03-18 19:12:13 +00:00
addPathRec ( "${srcDir}/sfx/dsound" )
addPathRec ( "${srcDir}/sfx/xaudio" )
2014-03-18 12:27:25 +00:00
endif ( )
# OpenAL
2014-06-02 00:15:55 +00:00
if ( TORQUE_SFX_OPENAL AND NOT TORQUE_DEDICATED )
2014-03-18 19:12:13 +00:00
addPath ( "${srcDir}/sfx/openal" )
2014-06-02 00:15:55 +00:00
if ( WIN32 )
2016-09-28 01:09:48 +00:00
addPath ( "${srcDir}/sfx/openal/win32" )
2016-10-21 23:22:33 +00:00
addInclude ( "${libDir}/openal-soft/include" )
2016-09-28 01:09:48 +00:00
endif ( )
if ( UNIX AND NOT APPLE )
addPath ( "${srcDir}/sfx/openal/linux" )
endif ( )
if ( APPLE )
addPath ( "${srcDir}/sfx/openal/mac" )
addFramework ( "OpenAL" )
2014-06-02 00:15:55 +00:00
endif ( )
2014-06-01 23:35:06 +00:00
endif ( )
# Vorbis
if ( TORQUE_SFX_VORBIS )
addInclude ( ${ libDir } /libvorbis/include )
addDef ( TORQUE_OGGVORBIS )
addLib ( libvorbis )
addLib ( libogg )
2014-03-18 12:27:25 +00:00
endif ( )
# Theora
if ( TORQUE_THEORA )
2014-03-18 19:12:13 +00:00
addPath ( "${srcDir}/core/ogg" )
addPath ( "${srcDir}/gfx/video" )
addPath ( "${srcDir}/gui/theora" )
2016-09-28 01:09:48 +00:00
2014-06-01 23:35:06 +00:00
addDef ( TORQUE_OGGTHEORA )
addDef ( TORQUE_OGGVORIBS )
addInclude ( ${ libDir } /libtheora/include )
addLib ( libtheora )
2014-03-18 19:12:13 +00: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" )
2016-09-28 01:09:48 +00:00
if ( NOT TORQUE_EXPERIMENTAL_EC )
2016-06-06 00:17:34 +00:00
set ( BLACKLIST "entityGroup.cpp;entityGroup.h;mountingGroup.cpp;mountingGroup.h;componentGroup.cpp;componentGroup.h" )
2016-05-15 15:11:46 +00:00
endif ( )
2014-03-18 19:12:13 +00:00
addPath ( "${srcDir}/gui/editor/inspector" )
2016-05-15 15:11:46 +00:00
set ( BLACKLIST "" )
2014-03-18 19:12:13 +00:00
endif ( )
if ( TORQUE_HIFI )
addPath ( "${srcDir}/T3D/gameBase/hifi" )
2014-06-01 23:35:06 +00:00
addDef ( TORQUE_HIFI_NET )
2014-03-18 19:12:13 +00:00
endif ( )
2016-09-28 01:09:48 +00:00
2014-03-18 19:12:13 +00:00
if ( TORQUE_EXTENDED_MOVE )
addPath ( "${srcDir}/T3D/gameBase/extended" )
2014-06-01 23:35:06 +00:00
addDef ( TORQUE_EXTENDED_MOVE )
2014-03-18 19:12:13 +00:00
else ( )
addPath ( "${srcDir}/T3D/gameBase/std" )
2014-03-18 12:27:25 +00:00
endif ( )
2015-01-16 19:37:16 +00:00
if ( TORQUE_SDL )
addPathRec ( "${srcDir}/windowManager/sdl" )
addPathRec ( "${srcDir}/platformSDL" )
2016-09-28 01:09:48 +00:00
2015-01-16 19:37:16 +00:00
if ( TORQUE_OPENGL )
addPathRec ( "${srcDir}/gfx/gl/sdl" )
endif ( )
2016-09-28 01:09:48 +00:00
if ( UNIX AND NOT APPLE )
2015-01-24 21:08:26 +00:00
#set(CMAKE_SIZEOF_VOID_P 4) #force 32 bit
set ( ENV{CFLAGS} "${CXX_FLAG32} -g -O3" )
2015-01-16 19:37:16 +00:00
if ( "${TORQUE_ADDITIONAL_LINKER_FLAGS}" STREQUAL "" )
2015-01-24 21:08:26 +00:00
set ( ENV{LDFLAGS} "${CXX_FLAG32}" )
2015-01-16 19:37:16 +00:00
else ( )
2015-01-24 21:08:26 +00:00
set ( ENV{LDFLAGS} "${CXX_FLAG32} ${TORQUE_ADDITIONAL_LINKER_FLAGS}" )
2015-01-16 19:37:16 +00:00
endif ( )
2016-04-30 20:48:33 +00:00
find_package ( PkgConfig REQUIRED )
pkg_check_modules ( GTK3 REQUIRED gtk+-3.0 )
# Setup CMake to use GTK+, tell the compiler where to look for headers
# and to the linker where to look for libraries
include_directories ( ${ GTK3_INCLUDE_DIRS } )
link_directories ( ${ GTK3_LIBRARY_DIRS } )
# Add other flags to the compiler
add_definitions ( ${ GTK3_CFLAGS_OTHER } )
2016-09-28 01:09:48 +00:00
set ( BLACKLIST "nfd_win.cpp" "nfd_cocoa.m" )
2016-04-30 20:48:33 +00:00
addLib ( nativeFileDialogs )
set ( BLACKLIST "" )
target_link_libraries ( nativeFileDialogs ${ GTK3_LIBRARIES } )
2016-09-28 01:09:48 +00:00
elseif ( APPLE )
set ( BLACKLIST "nfd_gtk.c" "nfd_win.cpp" )
addLib ( nativeFileDialogs )
set ( BLACKLIST "" )
2016-04-30 20:48:33 +00:00
else ( )
2016-09-28 01:09:48 +00:00
set ( BLACKLIST "nfd_gtk.c" "nfd_cocoa.m" )
2016-04-30 20:48:33 +00:00
addLib ( nativeFileDialogs )
2016-09-28 01:09:48 +00:00
set ( BLACKLIST "" )
addLib ( comctl32 )
endif ( )
2015-01-16 19:37:16 +00:00
#override and hide SDL2 cache variables
2016-09-28 01:09:48 +00:00
#set apple to sue sdl static lib, other platforms use dynamic
if ( APPLE )
set ( SDL_SHARED OFF CACHE BOOL "Build a shared version of the library" FORCE )
set ( SDL_STATIC ON CACHE BOOL "Build a static version of the library" FORCE )
else ( )
set ( SDL_SHARED ON CACHE BOOL "Build a shared version of the library" FORCE )
set ( SDL_STATIC OFF CACHE BOOL "Build a static version of the library" FORCE )
endif ( )
2015-01-16 19:37:16 +00:00
add_subdirectory ( ${ libDir } /sdl ${ CMAKE_CURRENT_BINARY_DIR } /sdl2 )
2016-09-28 01:09:48 +00:00
link_directories ( ${ libDir } /sdl ${ CMAKE_CURRENT_BINARY_DIR } /sdl2 )
2015-01-16 19:37:16 +00:00
endif ( )
2014-06-02 00:15:55 +00:00
if ( TORQUE_DEDICATED )
addDef ( TORQUE_DEDICATED )
endif ( )
2016-05-20 04:42:38 +00:00
if ( TORQUE_EXPERIMENTAL_EC )
addDef ( TORQUE_EXPERIMENTAL_EC )
endif ( )
2014-10-11 06:50:05 +00:00
#modules dir
file ( GLOB modules "modules/*.cmake" )
foreach ( module ${ modules } )
include ( ${ module } )
endforeach ( )
2014-06-02 00:15:55 +00:00
2014-03-18 19:12:13 +00:00
###############################################################################
# platform specific things
###############################################################################
2014-03-18 12:27:25 +00:00
if ( WIN32 )
2014-03-18 19:12:13 +00:00
addPath ( "${srcDir}/platformWin32" )
2016-09-28 01:09:48 +00:00
if ( TORQUE_SDL )
2016-04-30 20:48:33 +00:00
set ( BLACKLIST "fileDialog.cpp" )
endif ( )
2014-03-18 19:12:13 +00:00
addPath ( "${srcDir}/platformWin32/nativeDialogs" )
2016-04-30 20:48:33 +00:00
set ( BLACKLIST "" )
2014-03-18 19:12:13 +00:00
addPath ( "${srcDir}/platformWin32/menus" )
2016-09-28 01:09:48 +00:00
if ( NOT TORQUE_SDL )
addPath ( "${srcDir}/platformWin32/threads" )
endif ( )
2014-03-18 19:12:13 +00:00
addPath ( "${srcDir}/platformWin32/videoInfo" )
addPath ( "${srcDir}/platformWin32/minidump" )
addPath ( "${srcDir}/windowManager/win32" )
2016-03-20 11:55:40 +00:00
if ( TORQUE_D3D11 )
addPath ( "${srcDir}/gfx/D3D11" )
endif ( )
2014-03-18 19:12:13 +00:00
addPath ( "${srcDir}/gfx/D3D9" )
addPath ( "${srcDir}/gfx/D3D9/pc" )
2016-09-28 01:09:48 +00:00
addPath ( "${srcDir}/shaderGen/HLSL" )
2014-03-18 19:12:13 +00:00
addPath ( "${srcDir}/terrain/hlsl" )
addPath ( "${srcDir}/forest/hlsl" )
# add windows rc file for the icon
2014-03-19 01:03:45 +00:00
addFile ( "${projectSrcDir}/torque.rc" )
2014-03-18 12:27:25 +00:00
endif ( )
if ( APPLE )
2014-03-18 19:12:13 +00:00
addPath ( "${srcDir}/platformMac" )
addPath ( "${srcDir}/platformPOSIX" )
2014-03-18 12:27:25 +00:00
endif ( )
2016-09-28 01:09:48 +00:00
if ( UNIX AND NOT APPLE )
2015-01-24 21:08:26 +00:00
# linux_dedicated
2014-06-02 00:15:55 +00:00
if ( TORQUE_DEDICATED )
addPath ( "${srcDir}/windowManager/dedicated" )
2016-09-28 01:09:48 +00:00
# ${srcDir}/platformX86UNIX/*.client.* files are not needed
2014-06-02 00:15:55 +00:00
# @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 21:08:26 +00:00
addPath ( "${srcDir}/platformX86UNIX/nativeDialogs" )
2016-09-28 01:09:48 +00:00
endif ( )
2015-01-24 21:08:26 +00:00
# linux
2014-03-18 19:12:13 +00:00
addPath ( "${srcDir}/platformPOSIX" )
2014-06-02 00:15:55 +00:00
endif ( )
if ( TORQUE_OPENGL )
2014-03-18 19:12:13 +00:00
addPath ( "${srcDir}/shaderGen/GLSL" )
2014-06-02 00:15:55 +00:00
if ( TORQUE_OPENGL AND NOT TORQUE_DEDICATED )
addPath ( "${srcDir}/gfx/gl" )
2016-09-28 01:09:48 +00:00
addPath ( "${srcDir}/gfx/gl/tGL" )
2016-03-25 17:38:40 +00:00
addPath ( "${srcDir}/shaderGen/GLSL" )
2014-06-02 00:15:55 +00:00
addPath ( "${srcDir}/terrain/glsl" )
2016-09-28 01:09:48 +00:00
addPath ( "${srcDir}/forest/glsl" )
2014-06-02 00:15:55 +00:00
endif ( )
2016-09-28 01:09:48 +00:00
2014-06-02 00:15:55 +00:00
if ( WIN32 AND NOT TORQUE_SDL )
addPath ( "${srcDir}/gfx/gl/win32" )
endif ( )
2014-03-18 12:27:25 +00:00
endif ( )
2014-03-18 19:12:13 +00:00
###############################################################################
###############################################################################
2014-06-01 23:35:06 +00:00
finishExecutable ( )
2014-03-18 19:12:13 +00:00
###############################################################################
###############################################################################
2014-03-18 12:27:25 +00:00
2016-07-16 02:14:31 +00:00
# Set Visual Studio startup project
if ( ( ${ CMAKE_VERSION } VERSION_EQUAL 3.6.0 ) OR ( ${ CMAKE_VERSION } VERSION_GREATER 3.6.0 ) AND MSVC )
set_property ( DIRECTORY ${ CMAKE_SOURCE_DIR } PROPERTY VS_STARTUP_PROJECT ${ TORQUE_APP_NAME } )
endif ( )
2014-09-28 18:27:29 +00:00
message ( STATUS "writing ${projectSrcDir}/torqueConfig.h" )
CONFIGURE_FILE ( "${cmakeDir}/torqueConfig.h.in" "${projectSrcDir}/torqueConfig.h" )
2014-03-19 01:43:52 +00:00
# configure the relevant files only once
2016-09-28 01:09:48 +00:00
if ( APPLE )
#icon
if ( NOT EXISTS "${projectSrcDir}/torque.icns" )
CONFIGURE_FILE ( "${cmakeDir}/torque.icns" "${projectSrcDir}/torque.icns" COPYONLY )
endif ( )
#plist
if ( NOT EXISTS "${projectSrcDir}/Info.plist" )
CONFIGURE_FILE ( "${cmakeDir}/Info.plist.in" "${projectSrcDir}/Info.plist" COPYONLY )
endif ( )
#target properties for mac
set_target_properties ( "${PROJECT_NAME}" PROPERTIES MACOSX_BUNDLE_INFO_PLIST "${projectSrcDir}/Info.plist" )
else ( )
if ( NOT EXISTS "${projectSrcDir}/torque.ico" )
CONFIGURE_FILE ( "${cmakeDir}/torque.ico" "${projectSrcDir}/torque.ico" COPYONLY )
endif ( )
2014-03-18 12:27:25 +00:00
endif ( )
2016-09-28 01:09:48 +00:00
2014-03-19 17:17:35 +00:00
if ( NOT EXISTS "${projectOutDir}/${PROJECT_NAME}.torsion" )
CONFIGURE_FILE ( "${cmakeDir}/template.torsion.in" "${projectOutDir}/${PROJECT_NAME}.torsion" )
endif ( )
2017-03-23 19:36:21 +00:00
if ( EXISTS "${CMAKE_SOURCE_DIR}/Templates/${TORQUE_TEMPLATE}/game/main.cs.in" )
2014-03-19 17:17:35 +00:00
CONFIGURE_FILE ( "${CMAKE_SOURCE_DIR}/Templates/${TORQUE_TEMPLATE}/game/main.cs.in" "${projectOutDir}/main.cs" )
endif ( )
2014-03-19 01:03:45 +00:00
if ( WIN32 )
2014-06-01 23:35:06 +00: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 01:03:45 +00:00
endif ( )
2014-03-18 12:27:25 +00:00
2014-03-18 19:12:13 +00:00
###############################################################################
# Common Libraries
###############################################################################
2014-03-19 01:03:45 +00:00
addLib ( lmng )
addLib ( lpng )
addLib ( lungif )
addLib ( ljpeg )
addLib ( zlib )
addLib ( tinyxml )
addLib ( opcode )
addLib ( squish )
addLib ( collada )
addLib ( pcre )
addLib ( convexDecomp )
2016-03-25 17:38:40 +00:00
if ( TORQUE_OPENGL )
2016-09-12 01:43:58 +00:00
addLib ( glad )
2016-03-25 17:38:40 +00:00
endif ( )
2014-03-18 12:27:25 +00:00
if ( WIN32 )
# copy pasted from T3D build system, some might not be needed
2016-09-10 22:01:10 +00:00
set ( TORQUE_EXTERNAL_LIBS "COMCTL32.LIB;COMDLG32.LIB;USER32.LIB;ADVAPI32.LIB;GDI32.LIB;WINMM.LIB;WS2_32.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" )
2014-06-01 23:35:06 +00:00
mark_as_advanced ( TORQUE_EXTERNAL_LIBS )
2014-03-19 01:41:06 +00:00
addLib ( "${TORQUE_EXTERNAL_LIBS}" )
2016-09-28 01:09:48 +00:00
2014-11-08 16:41:17 +00:00
if ( TORQUE_OPENGL )
addLib ( OpenGL32.lib )
endif ( )
2016-09-28 01:09:48 +00:00
2016-03-24 18:22:45 +00:00
# JTH: DXSDK is compiled with older runtime, and MSVC 2015+ is when __vsnprintf is undefined.
# This is a workaround by linking with the older legacy library functions.
# See this for more info: http://stackoverflow.com/a/34230122
if ( MSVC14 )
addLib ( legacy_stdio_definitions.lib )
endif ( )
2014-03-18 12:27:25 +00:00
endif ( )
2016-09-28 01:09:48 +00:00
if ( APPLE )
addFramework ( "Cocoa" )
addFramework ( "OpenGL" )
#These are needed by sdl2 static lib
addFramework ( "CoreAudio" )
addFramework ( "AudioUnit" )
addFramework ( "ForceFeedback" )
addFramework ( "IOKit" )
addFramework ( "CoreVideo" )
#grrr damn you sdl!
addFramework ( "Carbon" )
2017-01-13 15:42:52 +00:00
addFramework ( "AudioToolbox" )
2016-09-28 01:09:48 +00:00
addLib ( "iconv" )
#set a few arch defaults
set ( CMAKE_OSX_ARCHITECTURES "x86_64" CACHE STRING "OSX Architecture" FORCE )
set ( CMAKE_OSX_DEPLOYMENT_TARGET "10.9" CACHE STRING "OSX Deployment target" FORCE )
endif ( )
if ( UNIX AND NOT APPLE )
2015-01-24 21:08:26 +00:00
# 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 )
2014-03-18 12:27:25 +00:00
2014-06-02 00:15:55 +00:00
string ( REPLACE " " ";" TORQUE_EXTERNAL_LIBS_LIST ${ TORQUE_EXTERNAL_LIBS } )
addLib ( "${TORQUE_EXTERNAL_LIBS_LIST}" )
endif ( )
2014-03-18 19:12:13 +00:00
###############################################################################
# Always enabled Definitions
###############################################################################
2014-12-02 23:16:47 +00:00
addDef ( TORQUE_DEBUG Debug )
addDef ( TORQUE_ENABLE_ASSERTS "Debug;RelWithDebInfo" )
2014-06-01 23:35:06 +00:00
addDef ( TORQUE_DEBUG_GFX_MODE "RelWithDebInfo" )
2014-03-18 19:12:13 +00:00
addDef ( TORQUE_SHADERGEN )
addDef ( INITGUID )
addDef ( NTORQUE_SHARED )
addDef ( UNICODE )
addDef ( _UNICODE ) # for VS
addDef ( TORQUE_UNICODE )
2014-03-19 01:41:06 +00:00
#addDef(TORQUE_SHARED) # not used anymore as the game is the executable directly
2014-03-18 19:12:13 +00: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 )
2016-09-28 01:09:48 +00:00
if ( UNIX AND NOT APPLE )
addDef ( LINUX )
2014-06-02 00:15:55 +00:00
endif ( )
2014-11-08 16:41:17 +00:00
if ( TORQUE_OPENGL )
addDef ( TORQUE_OPENGL )
endif ( )
2015-01-16 19:37:16 +00:00
if ( TORQUE_SDL )
addDef ( TORQUE_SDL )
addInclude ( ${ libDir } /sdl/include )
addLib ( SDL2 )
2017-01-17 07:10:24 +00:00
SET ( VIDEO_WAYLAND OFF CACHE BOOL "" FORCE )
mark_as_advanced ( 3DNOW )
mark_as_advanced ( ALSA )
mark_as_advanced ( ALTIVEC )
mark_as_advanced ( ARTS )
mark_as_advanced ( ASSEMBLY )
mark_as_advanced ( ASSERTIONS )
mark_as_advanced ( DIRECTX )
mark_as_advanced ( DISKAUDIO )
mark_as_advanced ( DUMMYAUDIO )
mark_as_advanced ( ESD )
mark_as_advanced ( FUSIONSOUND )
mark_as_advanced ( INPUT_TSLIB )
mark_as_advanced ( LIBC )
mark_as_advanced ( MMX )
mark_as_advanced ( NAS )
mark_as_advanced ( NAS_SHARED )
mark_as_advanced ( OSS )
mark_as_advanced ( PTHREADS )
mark_as_advanced ( PULSEAUDIO )
mark_as_advanced ( RENDER_D3D )
mark_as_advanced ( RPATH )
mark_as_advanced ( SNDIO )
mark_as_advanced ( SSE )
mark_as_advanced ( SSE2 )
mark_as_advanced ( SSEMATH )
mark_as_advanced ( WINDRES )
mark_as_advanced ( SDL_ATOMIC )
mark_as_advanced ( SDL_AUDIO )
mark_as_advanced ( SDL_CPUINFO )
mark_as_advanced ( SDL_DLOPEN )
mark_as_advanced ( SDL_EVENTS )
mark_as_advanced ( SDL_FILE )
mark_as_advanced ( SDL_FILESYSTEM )
mark_as_advanced ( SDL_HAPTIC )
mark_as_advanced ( SDL_JOYSTICK )
mark_as_advanced ( SDL_LOADSO )
mark_as_advanced ( SDL_POWER )
mark_as_advanced ( SDL_RENDER )
mark_as_advanced ( SDL_SHARED )
mark_as_advanced ( SDL_STATIC )
mark_as_advanced ( SDL_THREADS )
mark_as_advanced ( SDL_TIMERS )
mark_as_advanced ( SDL_VIDEO )
mark_as_advanced ( CLOCK_GETTIME )
mark_as_advanced ( GCC_ATOMICS )
mark_as_advanced ( VIDEO_WAYLAND )
mark_as_advanced ( VIDEO_COCOA )
mark_as_advanced ( VIDEO_DIRECTFB )
mark_as_advanced ( VIDEO_DUMMY )
mark_as_advanced ( VIDEO_MIR )
mark_as_advanced ( VIDEO_OPENGL )
mark_as_advanced ( VIDEO_OPENGLES )
mark_as_advanced ( VIDEO_RPI )
mark_as_advanced ( VIDEO_VIVANTE )
mark_as_advanced ( VIDEO_X11 )
2015-01-16 19:37:16 +00:00
endif ( )
2015-01-24 21:08:26 +00:00
if ( TORQUE_STATIC_CODE_ANALYSIS )
addDef ( "ON_FAIL_ASSERTFATAL=exit(1)" )
endif ( )
2014-03-18 19:12:13 +00: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" )
2016-04-30 20:48:33 +00:00
if ( TORQUE_SDL )
addInclude ( "${libDir}/nativeFileDialogs/include" )
endif ( )
2014-11-08 16:41:17 +00:00
if ( TORQUE_OPENGL )
2016-09-12 01:43:58 +00:00
addInclude ( "${libDir}/glad/include" )
2014-11-08 16:41:17 +00:00
endif ( )
2014-03-18 12:27:25 +00:00
2016-09-28 01:09:48 +00:00
if ( UNIX AND NOT APPLE )
2015-01-24 21:08:26 +00:00
addInclude ( "/usr/include/freetype2/freetype" )
addInclude ( "/usr/include/freetype2" )
endif ( )
2014-03-18 19:12:13 +00:00
# external things
if ( WIN32 )
set_property ( TARGET ${ PROJECT_NAME } APPEND PROPERTY INCLUDE_DIRECTORIES $ENV{ DXSDK_DIR } /Include )
endif ( )
2014-03-18 12:27:25 +00:00
2014-12-17 20:21:19 +00: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 ( )
2017-01-11 23:03:21 +00:00
###############################################################################
# Project-specific configuration:
###############################################################################
include ( ${ TORQUE_APP_DIR } / ${ PROJECT_NAME } .cmake OPTIONAL )
2014-03-18 19:12:13 +00:00
###############################################################################
# Installation
###############################################################################
2014-05-20 21:24:08 +00:00
if ( TORQUE_TEMPLATE )
message ( "Prepare Template(${TORQUE_TEMPLATE}) install..." )
2016-05-18 04:58:34 +00:00
file ( GLOB_RECURSE INSTALL_FILES_AND_DIRS "${CMAKE_SOURCE_DIR}/Templates/${TORQUE_TEMPLATE}/game/*" )
2016-09-28 01:09:48 +00:00
2016-05-18 04:58:34 +00:00
IF ( NOT TORQUE_EXPERIMENTAL_EC )
list ( REMOVE_ITEM INSTALL_FILES_AND_DIRS "${CMAKE_SOURCE_DIR}/Templates/${TORQUE_TEMPLATE}/game/art/art.module.taml" )
list ( REMOVE_ITEM INSTALL_FILES_AND_DIRS "${CMAKE_SOURCE_DIR}/Templates/${TORQUE_TEMPLATE}/game/art/shapes/actors/Soldier/soldier.asset.taml" )
list ( REMOVE_ITEM INSTALL_FILES_AND_DIRS "${CMAKE_SOURCE_DIR}/Templates/${TORQUE_TEMPLATE}/game/scripts/scripts.module.taml" )
2016-09-28 01:09:48 +00:00
2016-05-18 04:58:34 +00:00
foreach ( ITEM ${ INSTALL_FILES_AND_DIRS } )
get_filename_component ( dir ${ ITEM } DIRECTORY )
get_filename_component ( fileName ${ ITEM } NAME )
2016-09-28 01:09:48 +00:00
if ( ${ dir } STREQUAL ${ CMAKE_SOURCE_DIR } /Templates/ ${ TORQUE_TEMPLATE } /game/scripts/server/components
2016-05-18 04:58:34 +00:00
O R $ { d i r } S T R E Q U A L $ { C M A K E _ S O U R C E _ D I R } / T e m p l a t e s / $ { T O R Q U E _ T E M P L A T E } / g a m e / s c r i p t s / s e r v e r / c o m p o n e n t s / g a m e
O R $ { d i r } S T R E Q U A L $ { C M A K E _ S O U R C E _ D I R } / T e m p l a t e s / $ { T O R Q U E _ T E M P L A T E } / g a m e / s c r i p t s / s e r v e r / c o m p o n e n t s / i n p u t
O R $ { d i r } S T R E Q U A L $ { C M A K E _ S O U R C E _ D I R } / T e m p l a t e s / $ { T O R Q U E _ T E M P L A T E } / g a m e / s c r i p t s / s e r v e r / g a m e O b j e c t s
O R $ { d i r } S T R E Q U A L $ { C M A K E _ S O U R C E _ D I R } / T e m p l a t e s / $ { T O R Q U E _ T E M P L A T E } / g a m e / t o o l s / c o m p o n e n t E d i t o r
O R $ { d i r } S T R E Q U A L $ { C M A K E _ S O U R C E _ D I R } / T e m p l a t e s / $ { T O R Q U E _ T E M P L A T E } / g a m e / t o o l s / c o m p o n e n t E d i t o r / g u i
O R $ { d i r } S T R E Q U A L $ { C M A K E _ S O U R C E _ D I R } / T e m p l a t e s / $ { T O R Q U E _ T E M P L A T E } / g a m e / t o o l s / c o m p o n e n t E d i t o r / s c r i p t s )
list ( REMOVE_ITEM INSTALL_FILES_AND_DIRS ${ dir } / ${ fileName } )
ENDIF ( )
endforeach ( )
ENDIF ( )
2016-09-28 01:09:48 +00:00
2016-05-18 04:58:34 +00:00
foreach ( ITEM ${ INSTALL_FILES_AND_DIRS } )
get_filename_component ( dir ${ ITEM } DIRECTORY )
STRING ( REGEX REPLACE "${CMAKE_SOURCE_DIR}/Templates/${TORQUE_TEMPLATE}/" "${TORQUE_APP_DIR}/" INSTALL_DIR ${ dir } )
install ( FILES ${ ITEM } DESTINATION ${ INSTALL_DIR } )
endforeach ( )
2016-09-28 01:09:48 +00:00
2014-05-20 21:24:08 +00:00
if ( WIN32 )
2014-07-28 10:30:38 +00: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 21:24:08 +00:00
endif ( )
2014-03-19 02:23:51 +00:00
endif ( )