mirror of
https://github.com/TorqueGameEngines/Torque3D.git
synced 2026-01-19 20:24:49 +00:00
Fixed loose file bindings for all associated slots in level asset, such as postFX file, decals, etc Expanded TSStatic onInspect testcase to parse materialSlots and hook-in a specialized material field for editing/quick reference from the inspector Adjusted expand behavior of guiTree to be more reliable Added internal name 'stack' to inspectorGroup's stack child objects for easier access to add programatic fields Removed redundant PreMult translucency type code Added setting of feature so probes work when in forward/basic lit mode Corrected indexing error in SQLiteObject class so it properly parses with the updated console API Tweaked the FOV setting logic in GameConnection::onControlObjectChange to not be spammy Fixed var when trying to bind the camera to the client Added project setting field to dictate the default render mode between Forward or Deferred Integrated MotionBlur PostFX into updated PostFX Editor paradigm and exposed the samples uniform as an editable field Integrated DOF PostFX into updated PostFX Editor paradigm Updated setting group name for vignette postFX Shifted shaderCache to be in data/cache along with other cached files Added helper function to replace strings in a file Fixed ExampleCppObject asset to have correct loose file references Adjusted editor default level logic so it can be modifed and then stored, as well as reset back to the original default Fixed verve reference to root scene group Adjusted location of a nonmodal gui profile so it loads at the correct time Reorganized AssetBrowser loading and refresh logic so it doesn't stack multiple refresh requests back-to-back causing lag Updated the search behavior to search not just the current address, but all child folders as well, making it far more useful Initial work into zip and folder drag-and-drop asset importing support Removed the import config setting for 'always display material maps' as it is redundant with the new importer context menu actions Updated example asset type file Ensured all asset types have proper handling for move, rename and delete actions Fixed double-click behavior on folders in the AB Fixed CPP asset preview Added better logic to discern if a top-level folder belongs to a module or not in the AB directory browser Added ability to convert a non-module top-level folder in the AB into a module Added initial hooks for being able to generate a new Editor Tool, similar to how the AB can generate modules Renamed CPP asset template files to have the .template so they aren't accidentally picked up by cmake Fixed convex editor's material handling to work with AB and reference back properly Updated AB images for folder up/down navigation buttons, and the breadcrumb divider arrow Made PostFX Editor properly allow for input pass-through so you can still edit the level with it open Added some additional common text gui profiles Disabled calls to old editor settings logic in various editors to remove spam Added callOnModules call so tools can initialize properly when the world editor is opened Fixed logic test for visualizers Added ability for cmake to scan tools directory for any tools that add source files
908 lines
31 KiB
CMake
908 lines
31 KiB
CMake
# -----------------------------------------------------------------------------
|
|
# 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.
|
|
# -----------------------------------------------------------------------------
|
|
|
|
project(${TORQUE_APP_NAME})
|
|
|
|
if(UNIX)
|
|
if(NOT CXX_FLAG32)
|
|
set(CXX_FLAG32 "")
|
|
endif()
|
|
#set(CXX_FLAG32 "-m32") #uncomment for build x32 on OSx64
|
|
|
|
if (CMAKE_CXX_COMPILER_ID MATCHES "Clang")
|
|
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}")
|
|
else()
|
|
# default compiler flags
|
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${CXX_FLAG32} -Wundef -msse -pipe -Wfatal-errors -no-pie ${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'")
|
|
|
|
endif()
|
|
|
|
# for asm files
|
|
SET (CMAKE_ASM_NASM_OBJECT_FORMAT "elf")
|
|
ENABLE_LANGUAGE (ASM_NASM)
|
|
|
|
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
|
|
endif()
|
|
|
|
# TODO: fmod support
|
|
|
|
###############################################################################
|
|
# modules
|
|
###############################################################################
|
|
option(TORQUE_SFX_VORBIS "Vorbis Sound" ON)
|
|
mark_as_advanced(TORQUE_SFX_VORBIS)
|
|
option(TORQUE_THEORA "Theora Video Support" ON)
|
|
mark_as_advanced(TORQUE_THEORA)
|
|
option(TORQUE_ADVANCED_LIGHTING "Advanced Lighting" ON)
|
|
mark_as_advanced(TORQUE_ADVANCED_LIGHTING)
|
|
option(TORQUE_BASIC_LIGHTING "Basic Lighting" ON)
|
|
mark_as_advanced(TORQUE_BASIC_LIGHTING)
|
|
option(TORQUE_SFX_DirectX "DirectX Sound" OFF)
|
|
mark_as_advanced(TORQUE_SFX_DirectX)
|
|
option(TORQUE_SFX_OPENAL "OpenAL Sound" ON)
|
|
#windows uses openal-soft
|
|
if(WIN32)
|
|
#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)
|
|
set(ALSOFT_EMBED_HRTF_DATA OFF CACHE BOOL "Embed the HRTF data (increases library footprint)" 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)
|
|
mark_as_advanced(ALSOFT_BACKEND_WASAPI)
|
|
mark_as_advanced(ALSOFT_BUILD_ROUTER)
|
|
mark_as_advanced(ALSOFT_REQUIRE_SDL2)
|
|
mark_as_advanced(ALSOFT_REQUIRE_WASAPI)
|
|
#the following is from openal-soft
|
|
mark_as_advanced(SDL2MAIN_LIBRARY)
|
|
mark_as_advanced(SDL2_CORE_LIBRARY)
|
|
mark_as_advanced(SDL2_INCLUDE_DIR)
|
|
endif()
|
|
|
|
mark_as_advanced(TORQUE_SFX_OPENAL)
|
|
option(TORQUE_HIFI "HIFI? support" OFF)
|
|
mark_as_advanced(TORQUE_HIFI)
|
|
option(TORQUE_EXTENDED_MOVE "Extended move support" OFF)
|
|
mark_as_advanced(TORQUE_EXTENDED_MOVE)
|
|
|
|
set(TORQUE_SDL ON) # we need sdl to do our platform interop
|
|
|
|
if(WIN32)
|
|
option(TORQUE_OPENGL "Allow OpenGL render" ON)
|
|
#mark_as_advanced(TORQUE_OPENGL)
|
|
else()
|
|
set(TORQUE_OPENGL ON) # we need OpenGL to render on Linux/Mac
|
|
endif()
|
|
|
|
if(WIN32)
|
|
option(TORQUE_D3D11 "Allow Direct3D 11 render" ON)
|
|
|
|
addDef(TORQUE_D3D11)
|
|
endif()
|
|
|
|
option(TORQUE_DEDICATED "Torque dedicated" OFF)
|
|
mark_as_advanced(TORQUE_DEDICATED)
|
|
|
|
###############################################################################
|
|
# options
|
|
###############################################################################
|
|
if(NOT MSVC AND NOT APPLE) # 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()
|
|
|
|
option(TORQUE_MULTITHREAD "Multi Threading" ON)
|
|
mark_as_advanced(TORQUE_MULTITHREAD)
|
|
|
|
option(TORQUE_DISABLE_MEMORY_MANAGER "Disable memory manager" ON)
|
|
mark_as_advanced(TORQUE_DISABLE_MEMORY_MANAGER)
|
|
|
|
option(TORQUE_DISABLE_VIRTUAL_MOUNT_SYSTEM "Disable virtual mount system" OFF)
|
|
mark_as_advanced(TORQUE_DISABLE_VIRTUAL_MOUNT_SYSTEM)
|
|
|
|
option(TORQUE_PLAYER "Playback only?" OFF)
|
|
mark_as_advanced(TORQUE_PLAYER)
|
|
|
|
option(TORQUE_TOOLS "Enable or disable the tools" ON)
|
|
mark_as_advanced(TORQUE_TOOLS)
|
|
|
|
option(TORQUE_ENABLE_PROFILER "Enable or disable the profiler" OFF)
|
|
mark_as_advanced(TORQUE_ENABLE_PROFILER)
|
|
|
|
option(TORQUE_DEBUG "T3D Debug mode" OFF)
|
|
mark_as_advanced(TORQUE_DEBUG)
|
|
|
|
option(TORQUE_SHIPPING "T3D Shipping build?" OFF)
|
|
mark_as_advanced(TORQUE_SHIPPING)
|
|
|
|
option(TORQUE_DEBUG_NET "debug network" OFF)
|
|
mark_as_advanced(TORQUE_DEBUG_NET)
|
|
|
|
option(TORQUE_DEBUG_NET_MOVES "debug network moves" OFF)
|
|
mark_as_advanced(TORQUE_DEBUG_NET_MOVES)
|
|
|
|
option(TORQUE_ENABLE_ASSERTS "enables or disable asserts" OFF)
|
|
mark_as_advanced(TORQUE_ENABLE_ASSERTS)
|
|
|
|
option(TORQUE_DEBUG_GFX_MODE "triggers graphics debug mode" OFF)
|
|
mark_as_advanced(TORQUE_DEBUG_GFX_MODE)
|
|
|
|
#option(DEBUG_SPEW "more debug" OFF)
|
|
set(TORQUE_NO_DSO_GENERATION ON)
|
|
|
|
option(TORQUE_USE_ZENITY "use the Zenity backend for NFD" OFF)
|
|
mark_as_advanced(TORQUE_USE_ZENITY)
|
|
|
|
if(WIN32)
|
|
# 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")
|
|
if(TORQUE_SFX_DirectX)
|
|
if( TORQUE_CPU_X64 )
|
|
link_directories($ENV{DXSDK_DIR}/Lib/x64)
|
|
else()
|
|
link_directories($ENV{DXSDK_DIR}/Lib/x86)
|
|
endif()
|
|
endif()
|
|
endif()
|
|
|
|
# build types
|
|
if(NOT MSVC AND NOT APPLE) # 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()
|
|
|
|
###############################################################################
|
|
# 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")
|
|
addPath("${srcDir}/core/util/zip/test")
|
|
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")
|
|
if(NOT TORQUE_SDL)
|
|
set(BLACKLIST "fileDialog.cpp" )
|
|
endif()
|
|
addPath("${srcDir}/platform/nativeDialogs")
|
|
set(BLACKLIST "" )
|
|
|
|
addPath("${srcDir}/cinterface")
|
|
|
|
if( NOT TORQUE_DEDICATED )
|
|
addPath("${srcDir}/platform/menus")
|
|
endif()
|
|
addPath("${srcDir}/platform/test")
|
|
addPath("${srcDir}/platform/threads")
|
|
addPath("${srcDir}/platform/threads/test")
|
|
addPath("${srcDir}/platform/async")
|
|
addPath("${srcDir}/platform/async/test")
|
|
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}/renderInstance/debug")
|
|
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")
|
|
set(BLACKLIST "" )
|
|
|
|
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}/T3D/lighting")
|
|
addPath("${srcDir}/T3D/gameObjects")
|
|
addPathRec("${srcDir}/T3D/components/")
|
|
addPathRec("${srcDir}/T3D/systems")
|
|
|
|
addPath("${srcDir}/main/")
|
|
addPath("${srcDir}/assets")
|
|
addPath("${srcDir}/module")
|
|
addPathRec("${srcDir}/T3D/assets")
|
|
addPathRec("${srcDir}/persistence")
|
|
addPathRec("${srcDir}/ts/collada")
|
|
addPathRec("${srcDir}/ts/assimp")
|
|
addPathRec("${srcDir}/ts/loader")
|
|
addPathRec("${projectSrcDir}")
|
|
|
|
# Load module-based files
|
|
if(EXISTS ${TORQUE_APP_DIR}/game/data)
|
|
message("Reading modules in ${TORQUE_APP_DIR}/game/data path...")
|
|
|
|
addInclude("${TORQUE_APP_DIR}/game/data")
|
|
addPathRec("${TORQUE_APP_DIR}/game/data")
|
|
endif()
|
|
if(EXISTS ${TORQUE_APP_DIR}/game/tools)
|
|
message("Reading modules in ${TORQUE_APP_DIR}/game/tools path...")
|
|
|
|
addInclude("${TORQUE_APP_DIR}/game/tools")
|
|
addPathRec("${TORQUE_APP_DIR}/game/tools")
|
|
endif()
|
|
|
|
###############################################################################
|
|
# modular paths
|
|
###############################################################################
|
|
# lighting
|
|
if(TORQUE_ADVANCED_LIGHTING)
|
|
addPath("${srcDir}/lighting/advanced")
|
|
addPathRec("${srcDir}/lighting/shadowMap")
|
|
if(WIN32)
|
|
addPathRec("${srcDir}/lighting/advanced/hlsl")
|
|
endif()
|
|
if(TORQUE_OPENGL)
|
|
addPathRec("${srcDir}/lighting/advanced/glsl")
|
|
endif()
|
|
addDef(TORQUE_ADVANCED_LIGHTING)
|
|
endif()
|
|
if(TORQUE_BASIC_LIGHTING)
|
|
addPathRec("${srcDir}/lighting/basic")
|
|
addPathRec("${srcDir}/lighting/shadowMap")
|
|
addDef(TORQUE_BASIC_LIGHTING)
|
|
endif()
|
|
|
|
# DirectX Sound
|
|
if(TORQUE_SFX_DirectX)
|
|
addLib(x3daudio.lib)
|
|
addPathRec("${srcDir}/sfx/dsound")
|
|
addPathRec("${srcDir}/sfx/xaudio")
|
|
endif()
|
|
|
|
# OpenAL
|
|
if(TORQUE_SFX_OPENAL AND NOT TORQUE_DEDICATED)
|
|
addPath("${srcDir}/sfx/openal")
|
|
if(WIN32)
|
|
option(AL_ALEXT_PROTOTYPES "Use Extended OpenAL options" ON)
|
|
addPath("${srcDir}/sfx/openal/win32")
|
|
addInclude("${libDir}/openal-soft/include")
|
|
endif()
|
|
if(UNIX AND NOT APPLE)
|
|
option(AL_ALEXT_PROTOTYPES "Use Extended OpenAL options" ON)
|
|
addPath("${srcDir}/sfx/openal/linux")
|
|
endif()
|
|
if(APPLE)
|
|
option(AL_ALEXT_PROTOTYPES "Use Extended OpenAL options" OFF)
|
|
addPath("${srcDir}/sfx/openal/mac")
|
|
addFramework("OpenAL")
|
|
endif()
|
|
endif()
|
|
|
|
mark_as_advanced(AL_ALEXT_PROTOTYPES)
|
|
if(AL_ALEXT_PROTOTYPES)
|
|
addDef( "AL_ALEXT_PROTOTYPES" )
|
|
endif()
|
|
|
|
# Vorbis
|
|
if(TORQUE_SFX_VORBIS)
|
|
addInclude(${libDir}/libvorbis/include)
|
|
addDef(TORQUE_OGGVORBIS)
|
|
addLib(libvorbis)
|
|
addLib(libogg)
|
|
endif()
|
|
|
|
# Theora
|
|
if(TORQUE_THEORA)
|
|
addPath("${srcDir}/core/ogg")
|
|
addPath("${srcDir}/gfx/video")
|
|
addPath("${srcDir}/gui/theora")
|
|
|
|
addDef(TORQUE_OGGTHEORA)
|
|
addDef(TORQUE_OGGVORIBS)
|
|
addInclude(${libDir}/libtheora/include)
|
|
addLib(libtheora)
|
|
endif()
|
|
|
|
# Include tools for non-tool builds (or define player if a tool build)
|
|
if(TORQUE_TOOLS)
|
|
addPath("${srcDir}/gui/worldEditor")
|
|
addPath("${srcDir}/gui/worldEditor/tools")
|
|
addPath("${srcDir}/environment/editors")
|
|
addPath("${srcDir}/forest/editor")
|
|
addPath("${srcDir}/gui/editor")
|
|
addPath("${srcDir}/gui/editor/inspector")
|
|
set(BLACKLIST "" )
|
|
endif()
|
|
|
|
if(TORQUE_HIFI)
|
|
addPath("${srcDir}/T3D/gameBase/hifi")
|
|
addDef(TORQUE_HIFI_NET)
|
|
endif()
|
|
|
|
if(TORQUE_EXTENDED_MOVE)
|
|
addPath("${srcDir}/T3D/gameBase/extended")
|
|
addDef(TORQUE_EXTENDED_MOVE)
|
|
else()
|
|
addPath("${srcDir}/T3D/gameBase/std")
|
|
endif()
|
|
|
|
if(TORQUE_SDL)
|
|
addPathRec("${srcDir}/windowManager/sdl")
|
|
addPathRec("${srcDir}/platformSDL")
|
|
|
|
if(TORQUE_OPENGL)
|
|
addPathRec("${srcDir}/gfx/gl/sdl")
|
|
endif()
|
|
|
|
if(UNIX AND NOT APPLE)
|
|
#set(CMAKE_SIZEOF_VOID_P 4) #force 32 bit
|
|
set(ENV{CFLAGS} "${CXX_FLAG32} -g -O3")
|
|
if("${TORQUE_ADDITIONAL_LINKER_FLAGS}" STREQUAL "")
|
|
set(ENV{LDFLAGS} "${CXX_FLAG32}")
|
|
else()
|
|
set(ENV{LDFLAGS} "${CXX_FLAG32} ${TORQUE_ADDITIONAL_LINKER_FLAGS}")
|
|
endif()
|
|
|
|
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})
|
|
|
|
if(TORQUE_USE_ZENITY)
|
|
set(BLACKLIST "nfd_win.cpp" "nfd_cocoa.m" "nfd_gtk.c" )
|
|
else()
|
|
set(BLACKLIST "nfd_win.cpp" "nfd_cocoa.m" "simple_exec.h" "nfd_zenity.c")
|
|
endif()
|
|
addLib(nativeFileDialogs)
|
|
|
|
set(BLACKLIST "" )
|
|
target_link_libraries(nativeFileDialogs ${GTK3_LIBRARIES})
|
|
elseif(APPLE)
|
|
set(BLACKLIST "nfd_gtk.c" "nfd_win.cpp" )
|
|
addLib(nativeFileDialogs)
|
|
set(BLACKLIST "" )
|
|
else()
|
|
set(BLACKLIST "nfd_gtk.c" "nfd_cocoa.m" "simple_exec.h" "nfd_zenity.c")
|
|
addLib(nativeFileDialogs)
|
|
set(BLACKLIST "" )
|
|
addLib(comctl32)
|
|
endif()
|
|
|
|
#override and hide SDL2 cache variables
|
|
#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()
|
|
add_subdirectory( ${libDir}/sdl ${CMAKE_CURRENT_BINARY_DIR}/sdl2 EXCLUDE_FROM_ALL)
|
|
link_directories( ${libDir}/sdl ${CMAKE_CURRENT_BINARY_DIR}/sdl2)
|
|
endif()
|
|
|
|
if(TORQUE_DEDICATED)
|
|
addDef(TORQUE_DEDICATED)
|
|
endif()
|
|
|
|
#modules dir
|
|
file(GLOB modules "modules/*.cmake")
|
|
foreach(module ${modules})
|
|
include(${module})
|
|
endforeach()
|
|
|
|
###############################################################################
|
|
# platform specific things
|
|
###############################################################################
|
|
if(WIN32)
|
|
addPath("${srcDir}/platformWin32")
|
|
if(TORQUE_SDL)
|
|
set(BLACKLIST "fileDialog.cpp" )
|
|
endif()
|
|
addPath("${srcDir}/platformWin32/nativeDialogs")
|
|
set(BLACKLIST "" )
|
|
addPath("${srcDir}/platformWin32/menus")
|
|
if(NOT TORQUE_SDL)
|
|
addPath("${srcDir}/platformWin32/threads")
|
|
endif()
|
|
addPath("${srcDir}/platformWin32/videoInfo")
|
|
addPath("${srcDir}/platformWin32/minidump")
|
|
addPath("${srcDir}/windowManager/win32")
|
|
if(TORQUE_D3D11)
|
|
addPath("${srcDir}/gfx/D3D11")
|
|
endif()
|
|
addPath("${srcDir}/shaderGen/HLSL")
|
|
addPath("${srcDir}/terrain/hlsl")
|
|
addPath("${srcDir}/forest/hlsl")
|
|
# add windows rc file for the icon
|
|
addFile("${projectSrcDir}/torque.rc")
|
|
endif()
|
|
|
|
if(APPLE)
|
|
addPath("${srcDir}/platformMac")
|
|
addPath("${srcDir}/platformPOSIX")
|
|
endif()
|
|
|
|
if(UNIX AND NOT APPLE)
|
|
# linux_dedicated
|
|
if(TORQUE_DEDICATED)
|
|
addPath("${srcDir}/windowManager/dedicated")
|
|
# ${srcDir}/platformX86UNIX/*.client.* files are not needed
|
|
# @todo: move to separate file
|
|
file( GLOB tmp_files
|
|
${srcDir}/platformX86UNIX/*.cpp
|
|
${srcDir}/platformX86UNIX/*.c
|
|
${srcDir}/platformX86UNIX/*.cc
|
|
${srcDir}/platformX86UNIX/*.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")
|
|
addPath("${srcDir}/platformX86UNIX/nativeDialogs")
|
|
endif()
|
|
# linux
|
|
addPath("${srcDir}/platformPOSIX")
|
|
endif()
|
|
|
|
if( TORQUE_OPENGL )
|
|
addPath("${srcDir}/shaderGen/GLSL")
|
|
if( TORQUE_OPENGL AND NOT TORQUE_DEDICATED )
|
|
addPath("${srcDir}/gfx/gl")
|
|
addPath("${srcDir}/gfx/gl/tGL")
|
|
addPath("${srcDir}/shaderGen/GLSL")
|
|
addPath("${srcDir}/terrain/glsl")
|
|
addPath("${srcDir}/forest/glsl")
|
|
endif()
|
|
|
|
if(WIN32 AND NOT TORQUE_SDL)
|
|
addPath("${srcDir}/gfx/gl/win32")
|
|
endif()
|
|
endif()
|
|
|
|
###############################################################################
|
|
###############################################################################
|
|
finishExecutable()
|
|
###############################################################################
|
|
###############################################################################
|
|
|
|
# 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()
|
|
|
|
message(STATUS "writing ${projectSrcDir}/torqueConfig.h")
|
|
CONFIGURE_FILE("${cmakeDir}/torqueConfig.h.in" "${projectSrcDir}/torqueConfig.h")
|
|
|
|
# configure the relevant files only once
|
|
|
|
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()
|
|
endif()
|
|
|
|
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")
|
|
CONFIGURE_FILE("${CMAKE_SOURCE_DIR}/Templates/${TORQUE_TEMPLATE}/game/main.cs.in" "${projectOutDir}/main.cs")
|
|
endif()
|
|
if(WIN32)
|
|
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()
|
|
endif()
|
|
|
|
###############################################################################
|
|
# Common Libraries
|
|
###############################################################################
|
|
addLib(lpng)
|
|
addLib(ljpeg)
|
|
addLib(zlib)
|
|
addLib(tinyxml)
|
|
addLib(opcode)
|
|
addLib(squish)
|
|
addLib(collada)
|
|
addLib(pcre)
|
|
addLib(convexDecomp)
|
|
if (TORQUE_OPENGL)
|
|
addLib(glad)
|
|
endif()
|
|
addLib(assimp)
|
|
addLib(meshOptimizer)
|
|
|
|
if(WIN32)
|
|
# copy pasted from T3D build system, some might not be needed
|
|
set(TORQUE_EXTERNAL_LIBS "COMCTL32.LIB;COMDLG32.LIB;USER32.LIB;ADVAPI32.LIB;GDI32.LIB;WINMM.LIB;WS2_32.LIB;vfw32.lib;Imm32.lib;ole32.lib;shell32.lib;oleaut32.lib;version.lib" CACHE STRING "external libs to link against")
|
|
mark_as_advanced(TORQUE_EXTERNAL_LIBS)
|
|
addLib("${TORQUE_EXTERNAL_LIBS}")
|
|
|
|
if(TORQUE_OPENGL)
|
|
addLib(OpenGL32.lib)
|
|
endif()
|
|
endif()
|
|
|
|
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")
|
|
addFramework("AudioToolbox")
|
|
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)
|
|
# 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}" )
|
|
endif()
|
|
|
|
###############################################################################
|
|
# Always enabled Definitions
|
|
###############################################################################
|
|
addDef(TORQUE_DEBUG Debug)
|
|
addDef(TORQUE_ENABLE_ASSERTS "Debug;RelWithDebInfo")
|
|
addDef(TORQUE_DEBUG_GFX_MODE "RelWithDebInfo")
|
|
addDef(TORQUE_SHADERGEN)
|
|
addDef(INITGUID)
|
|
addDef(NTORQUE_SHARED)
|
|
addDef(UNICODE)
|
|
addDef(_UNICODE) # for VS
|
|
addDef(TORQUE_UNICODE)
|
|
#addDef(TORQUE_SHARED) # not used anymore as the game is the executable directly
|
|
addDef(LTC_NO_PROTOTYPES) # for libTomCrypt
|
|
addDef(BAN_OPCODE_AUTOLINK)
|
|
addDef(ICE_NO_DLL)
|
|
addDef(TORQUE_OPCODE)
|
|
addDef(TORQUE_COLLADA)
|
|
addDef(TORQUE_ASSIMP)
|
|
addDef(DOM_INCLUDE_TINYXML)
|
|
addDef(PCRE_STATIC)
|
|
addDef(_CRT_SECURE_NO_WARNINGS)
|
|
addDef(_CRT_SECURE_NO_DEPRECATE)
|
|
|
|
if(UNIX AND NOT APPLE)
|
|
addDef(LINUX)
|
|
endif()
|
|
|
|
if(TORQUE_OPENGL)
|
|
addDef(TORQUE_OPENGL)
|
|
endif()
|
|
|
|
if(TORQUE_SDL)
|
|
addDef(TORQUE_SDL)
|
|
addInclude(${libDir}/sdl/include)
|
|
if(APPLE)
|
|
addLib(SDL2main)
|
|
addLib(SDL2-static)
|
|
add_dependencies(${TORQUE_APP_NAME} SDL2main SDL2-static)
|
|
else()
|
|
addLib(SDL2)
|
|
endif()
|
|
|
|
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)
|
|
set(VIDEO_WAYLAND OFF)
|
|
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)
|
|
set(VIDEO_OPENGLES OFF)
|
|
mark_as_advanced(VIDEO_RPI)
|
|
set(VIDEO_RPI OFF)
|
|
mark_as_advanced(VIDEO_VIVANTE)
|
|
set(VIDEO_VIVANTE OFF)
|
|
mark_as_advanced(VIDEO_X11)
|
|
set(VIDEO_X11 OFF)
|
|
mark_as_advanced(VIDEO_VULKAN)
|
|
set(VIDEO_VULKAN OFF)
|
|
mark_as_advanced(VIDEO_KMSDRM)
|
|
set(VIDEO_KMSDRM OFF)
|
|
mark_as_advanced(WASAPI)
|
|
mark_as_advanced(SS3)
|
|
mark_as_advanced(SDL_TEST)
|
|
set(SDL_TEST OFF)
|
|
mark_as_advanced(SDL_SENSOR)
|
|
set(SDL_SENSOR OFF)
|
|
mark_as_advanced(BACKGROUNDING_SIGNAL)
|
|
mark_as_advanced(FOREGROUNDING_SIGNAL)
|
|
endif()
|
|
|
|
if(TORQUE_STATIC_CODE_ANALYSIS)
|
|
addDef( "ON_FAIL_ASSERTFATAL=exit(1)" )
|
|
endif()
|
|
|
|
###############################################################################
|
|
# 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")
|
|
addInclude("${libDir}/assimp/include")
|
|
if(TORQUE_SDL)
|
|
addInclude("${libDir}/nativeFileDialogs/include")
|
|
endif()
|
|
if(TORQUE_OPENGL)
|
|
addInclude("${libDir}/glad/include")
|
|
endif()
|
|
|
|
if(UNIX AND NOT APPLE)
|
|
addInclude("/usr/include/freetype2/freetype")
|
|
addInclude("/usr/include/freetype2")
|
|
endif()
|
|
|
|
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()
|
|
|
|
###############################################################################
|
|
# Project-specific configuration:
|
|
###############################################################################
|
|
|
|
include(${TORQUE_APP_DIR}/${PROJECT_NAME}.cmake OPTIONAL)
|
|
|
|
###############################################################################
|
|
# Installation
|
|
###############################################################################
|
|
|
|
if(TORQUE_TEMPLATE)
|
|
message("Prepare Template(${TORQUE_TEMPLATE}) install...")
|
|
file(GLOB_RECURSE INSTALL_FILES_AND_DIRS "${CMAKE_SOURCE_DIR}/Templates/${TORQUE_TEMPLATE}/game/*")
|
|
|
|
IF( NOT TORQUE_D3D11)
|
|
list(REMOVE_ITEM INSTALL_FILES_AND_DIRS "${CMAKE_SOURCE_DIR}/Templates/${TORQUE_TEMPLATE}/game/D3DCompiler_47.dll")
|
|
ENDIF()
|
|
|
|
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()
|
|
|
|
if(WIN32)
|
|
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}")
|
|
endif()
|
|
endif()
|