123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678 |
- # -----------------------------------------------------------------------------
- # 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
-
- # default compiler flags
- 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'")
- # for asm files
- SET (CMAKE_ASM_NASM_OBJECT_FORMAT "elf")
- ENABLE_LANGUAGE (ASM_NASM)
- 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)
- if(WIN32)
- option(TORQUE_SFX_DirectX "DirectX Sound" ON)
- mark_as_advanced(TORQUE_SFX_DirectX)
- else()
- set(TORQUE_SFX_DirectX OFF)
- endif()
- option(TORQUE_SFX_OPENAL "OpenAL Sound" ON)
- 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)
- 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()
- 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()
- 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()
- if(WIN32)
- option(TORQUE_D3D11 "Allow Direct3D 11 render" OFF)
- endif()
- ###############################################################################
- # options
- ###############################################################################
- 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()
- 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)
- 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_CPU_X64 )
- link_directories($ENV{DXSDK_DIR}/Lib/x64)
- else()
- link_directories($ENV{DXSDK_DIR}/Lib/x86)
- endif()
- endif()
- # 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()
- ###############################################################################
- # 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")
- 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")
- addPath("${srcDir}/cinterface")
- addPath("${srcDir}/platform/nativeDialogs")
- 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}/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/")
- addPath("${srcDir}/assets")
- addPath("${srcDir}/module")
- addPath("${srcDir}/T3D/assets")
- addPathRec("${srcDir}/persistence")
- addPathRec("${srcDir}/ts/collada")
- addPathRec("${srcDir}/ts/loader")
- addPathRec("${projectSrcDir}")
- ###############################################################################
- # 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")
- #addPath("${srcDir}/sfx/openal/mac")
- if(WIN32)
- addPath("${srcDir}/sfx/openal/win32")
- addInclude("${libDir}/openal/win32")
- endif()
- if(UNIX)
- addPath("${srcDir}/sfx/openal/linux")
- endif()
-
- 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}/environment/editors")
- addPath("${srcDir}/forest/editor")
- addPath("${srcDir}/gui/editor")
- addPath("${srcDir}/gui/editor/inspector")
- 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)
- #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()
- 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()
- 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")
- addPath("${srcDir}/platformWin32/nativeDialogs")
- addPath("${srcDir}/platformWin32/menus")
- addPath("${srcDir}/platformWin32/threads")
- addPath("${srcDir}/platformWin32/videoInfo")
- addPath("${srcDir}/platformWin32/minidump")
- addPath("${srcDir}/windowManager/win32")
- if(TORQUE_D3D11)
- addPath("${srcDir}/gfx/D3D11")
- endif()
- 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
- addFile("${projectSrcDir}/torque.rc")
- endif()
- if(APPLE)
- 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")
- endif()
- if(XBOX360)
- 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")
- endif()
- if(PS3)
- 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")
- endif()
- if(UNIX)
- # 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}/platformX86UNIX/threads")
- 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")
- # glew
- LIST(APPEND ${PROJECT_NAME}_files "${libDir}/glew/src/glew.c")
- endif()
-
- if(WIN32 AND NOT TORQUE_SDL)
- addPath("${srcDir}/gfx/gl/win32")
- endif()
- endif()
- ###############################################################################
- ###############################################################################
- finishExecutable()
- ###############################################################################
- ###############################################################################
- message(STATUS "writing ${projectSrcDir}/torqueConfig.h")
- CONFIGURE_FILE("${cmakeDir}/torqueConfig.h.in" "${projectSrcDir}/torqueConfig.h")
- # configure the relevant files only once
- if(NOT EXISTS "${projectSrcDir}/torque.ico")
- CONFIGURE_FILE("${cmakeDir}/torque.ico" "${projectSrcDir}/torque.ico" COPYONLY)
- 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" AND NOT EXISTS "${projectOutDir}/main.cs")
- 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(lmng)
- addLib(lpng)
- addLib(lungif)
- addLib(ljpeg)
- addLib(zlib)
- addLib(tinyxml)
- addLib(opcode)
- addLib(squish)
- addLib(collada)
- addLib(pcre)
- addLib(convexDecomp)
- 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;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)
- addLib("${TORQUE_EXTERNAL_LIBS}")
-
- if(TORQUE_OPENGL)
- addLib(OpenGL32.lib)
- endif()
- endif()
- 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}" )
- endif()
- if(UNIX)
- # copy pasted from T3D build system, some might not be needed
- set(TORQUE_EXTERNAL_LIBS "rt 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(DOM_INCLUDE_TINYXML)
- addDef(PCRE_STATIC)
- addDef(_CRT_SECURE_NO_WARNINGS)
- addDef(_CRT_SECURE_NO_DEPRECATE)
- if(UNIX)
- addDef(LINUX)
- endif()
- if(TORQUE_OPENGL)
- addDef(TORQUE_OPENGL)
- if(WIN32)
- addDef(GLEW_STATIC)
- endif()
- endif()
- if(TORQUE_SDL)
- addDef(TORQUE_SDL)
- addInclude(${libDir}/sdl/include)
- addLib(SDL2)
- 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")
- if(TORQUE_OPENGL)
- addInclude("${libDir}/glew/include")
- endif()
- if(UNIX)
- addInclude("/usr/include/freetype2/freetype")
- addInclude("/usr/include/freetype2")
- endif()
- if(TORQUE_OPENGL)
- addInclude("${libDir}/glew/include")
- endif()
- # external things
- if(WIN32)
- set_property(TARGET ${PROJECT_NAME} APPEND PROPERTY INCLUDE_DIRECTORIES $ENV{DXSDK_DIR}/Include)
- endif()
- if(UNIX)
- 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()
- ###############################################################################
- # Installation
- ###############################################################################
- if(TORQUE_TEMPLATE)
- message("Prepare Template(${TORQUE_TEMPLATE}) install...")
- INSTALL(DIRECTORY "${CMAKE_SOURCE_DIR}/Templates/${TORQUE_TEMPLATE}/game" DESTINATION "${TORQUE_APP_DIR}")
- 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()
|