CMake changes for dedicated builds.

This commit is contained in:
LuisAntonRebollo 2014-06-02 02:15:55 +02:00
parent 8a50895062
commit 17bd69e659
5 changed files with 138 additions and 21 deletions

View file

@ -39,7 +39,8 @@ macro(addPath dir)
${dir}/*.cpp
${dir}/*.c
${dir}/*.cc
${dir}/*.h)
${dir}/*.h
${dir}/*.asm)
LIST(APPEND ${PROJECT_NAME}_files "${tmp_files}")
LIST(APPEND ${PROJECT_NAME}_paths "${dir}")
#message(STATUS "addPath ${PROJECT_NAME} : ${tmp_files}")
@ -351,6 +352,12 @@ else()
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${CMAKE_CXX_FLAGS}")
endif()
if(UNIX)
SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${projectOutDir}")
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${projectOutDir}")
SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG "${projectOutDir}")
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY_DEBUG "${projectOutDir}")
endif()
# fix the debug/release subfolders on windows
if(MSVC)

View file

@ -1,3 +1,7 @@
project(convexDecomp)
if(UNIX)
addDef(LINUX)
endif()
finishLibrary("${libDir}/convexDecomp")

View file

@ -1,6 +1,18 @@
project(libtheora)
addPathRec("${libDir}/libtheora")
addPath( "${libDir}/libtheora" )
addPathRec( "${libDir}/libtheora/include" )
addPath( "${libDir}/libtheora/lib" )
addPath( "${libDir}/libtheora/lib/dec" )
addPath( "${libDir}/libtheora/lib/enc" )
if(WIN32)
addPath( "${libDir}/libtheora/lib/dec/x86_vc" )
addPath( "${libDir}/libtheora/lib/enc/x86_32_vs" )
else()
addPath( "${libDir}/libtheora/lib/dec/x86" )
addPath( "${libDir}/libtheora/lib/enc/x86_32" )
endif()
addDef(TORQUE_OGGTHEORA)
addDef(TORQUE_OGGVORIBS)

View file

@ -6,4 +6,8 @@ addDef(TORQUE_OGGVORBIS)
addInclude(${libDir}/libvorbis/include)
addInclude(${libDir}/libogg/include)
if(UNIX)
addInclude(${libDir}/libvorbis/lib)
endif()
finishLibrary()

View file

@ -1,5 +1,16 @@
project(${TORQUE_APP_NAME})
if(UNIX)
# default compiler flags
# force compile 32 bit
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -m32 -Wall -Wundef -msse -pipe -Wfatal-errors ${TORQUE_ADDITIONAL_LINKER_FLAGS}")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -m32 -Wall -Wundef -msse -pipe -Wfatal-errors ${TORQUE_ADDITIONAL_LINKER_FLAGS}")
# for asm files
SET (CMAKE_ASM_NASM_OBJECT_FORMAT "elf")
ENABLE_LANGUAGE (ASM_NASM)
endif()
# TODO: fmod support
###############################################################################
@ -13,8 +24,12 @@ 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" ON)
mark_as_advanced(TORQUE_SFX_DirectX)
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)
@ -23,6 +38,13 @@ option(TORQUE_EXTENDED_MOVE "Extended move support" OFF)
mark_as_advanced(TORQUE_EXTENDED_MOVE)
option(TORQUE_NAVIGATION "Enable Navigation module" OFF)
#mark_as_advanced(TORQUE_NAVIGATION)
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()
#Oculus VR
option(TORQUE_OCULUSVR "Enable OCULUSVR module" OFF)
@ -45,10 +67,18 @@ 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" OFF)
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)
@ -130,7 +160,9 @@ addPath("${srcDir}/math/test")
addPath("${srcDir}/platform")
addPath("${srcDir}/cinterface")
addPath("${srcDir}/platform/nativeDialogs")
addPath("${srcDir}/platform/menus")
if( NOT TORQUE_DEDICATED )
addPath("${srcDir}/platform/menus")
endif()
addPath("${srcDir}/platform/test")
addPath("${srcDir}/platform/threads")
addPath("${srcDir}/platform/async")
@ -197,8 +229,12 @@ addPathRec("${projectSrcDir}")
if(TORQUE_ADVANCED_LIGHTING)
addPath("${srcDir}/lighting/advanced")
addPathRec("${srcDir}/lighting/shadowMap")
addPathRec("${srcDir}/lighting/advanced/hlsl")
#addPathRec("${srcDir}/lighting/advanced/glsl")
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)
@ -215,11 +251,17 @@ if(TORQUE_SFX_DirectX)
endif()
# OpenAL
if(TORQUE_SFX_OPENAL)
if(TORQUE_SFX_OPENAL AND NOT TORQUE_DEDICATED)
addPath("${srcDir}/sfx/openal")
#addPath("${srcDir}/sfx/openal/mac")
addPath("${srcDir}/sfx/openal/win32")
addInclude("${libDir}/openal/win32")
if(WIN32)
addPath("${srcDir}/sfx/openal/win32")
addInclude("${libDir}/openal/win32")
endif()
if(UNIX)
addPath("${srcDir}/sfx/openal/linux")
endif()
endif()
# Vorbis
@ -275,6 +317,15 @@ if(TORQUE_HYDRA)
include( "modules/module_hydra.cmake" )
endif()
if(TORQUE_DISABLE_MEMORY_MANAGER)
addDef(TORQUE_DISABLE_MEMORY_MANAGER)
endif()
if(TORQUE_DEDICATED)
addDef(TORQUE_DEDICATED)
endif()
###############################################################################
# platform specific things
###############################################################################
@ -339,19 +390,40 @@ if(PS3)
endif()
if(UNIX)
# linux_dedicated
addPath("${srcDir}/windowManager/dedicated")
# linux
addPath("${srcDir}/platformX86UNIX")
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")
endif()
addPath("${srcDir}/platformX86UNIX/threads")
addPath("${srcDir}/platformPOSIX")
addPath("${srcDir}/gfx/gl")
addPath("${srcDir}/gfx/gl/ggl")
addPath("${srcDir}/gfx/gl/ggl/x11") # This one is not yet implemented!
addPath("${srcDir}/gfx/gl/ggl/generated")
endif()
if( TORQUE_OPENGL )
addPath("${srcDir}/shaderGen/GLSL")
addPath("${srcDir}/terrain/glsl")
addPath("${srcDir}/forest/glsl")
if( TORQUE_OPENGL AND NOT TORQUE_DEDICATED )
addPath("${srcDir}/gfx/gl")
addPath("${srcDir}/gfx/gl/tGL")
addPath("${srcDir}/terrain/glsl")
addPath("${srcDir}/forest/glsl")
endif()
if(WIN32 AND NOT TORQUE_SDL)
addPath("${srcDir}/gfx/gl/win32")
endif()
endif()
###############################################################################
@ -408,6 +480,15 @@ if(WIN32)
addLib("${TORQUE_EXTERNAL_LIBS}")
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()
###############################################################################
# Always enabled Definitions
###############################################################################
@ -431,6 +512,10 @@ addDef(PCRE_STATIC)
addDef(_CRT_SECURE_NO_WARNINGS)
addDef(_CRT_SECURE_NO_DEPRECATE)
if(UNIX)
addDef(LINUX)
endif()
###############################################################################
# Include Paths
###############################################################################
@ -455,6 +540,11 @@ 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()
###############################################################################
# Installation
###############################################################################