* BugFix: Allow header files to appear in the filters through use of a helper function torqueAddSourceDirectories.

This commit is contained in:
Robert MacGregor 2022-06-01 13:18:34 -04:00
parent 05cce33be3
commit 3d963d44e3
7 changed files with 133 additions and 166 deletions

View file

@ -12,6 +12,9 @@ set(ASSIMP_BUILD_ZLIB off CACHE STRING "")
set(ASSIMP_HUNTER_ENABLED off CACHE STRING "") set(ASSIMP_HUNTER_ENABLED off CACHE STRING "")
add_subdirectory(assimp ${CMAKE_BINARY_DIR}/temp/assimp EXCLUDE_FROM_ALL) add_subdirectory(assimp ${CMAKE_BINARY_DIR}/temp/assimp EXCLUDE_FROM_ALL)
if (TORQUE_CPU_ARM32 OR TORQUE_CPU_ARM64)
set(PNG_ARM_NEON on CACHE BOOL "" FORCE)
endif (TORQUE_CPU_ARM32 OR TORQUE_CPU_ARM64)
set(PNG_STATIC on CACHE BOOL "" FORCE) set(PNG_STATIC on CACHE BOOL "" FORCE)
set(PNG_BUILD_ZLIB on CACHE BOOL "" FORCE) set(PNG_BUILD_ZLIB on CACHE BOOL "" FORCE)
set(PNG_TESTS off CACHE BOOL "" FORCE) set(PNG_TESTS off CACHE BOOL "" FORCE)

View file

@ -24,6 +24,25 @@ set(TORQUE_COMPILE_DEFINITIONS ICE_NO_DLL PCRE_STATIC TORQUE_ADVANCED_LIGHTING T
set(TORQUE_LINK_LIBRARIES tinyxml collada ljpeg squish png_static opcode assimp set(TORQUE_LINK_LIBRARIES tinyxml collada ljpeg squish png_static opcode assimp
SDL2 glad pcre convexDecomp zlib) SDL2 glad pcre convexDecomp zlib)
################# Helper Functions ###################
# Helper function to add a directory to the TORQUE_SOURCE_FILES variable. It automatically searches for .cpp and .h files in the
# specified directory then adds them to the TORQUE_SOURCE_FILES variable.
macro (torqueAddSourceDirectories)
foreach(ARGUMENT ${ARGV})
file(GLOB SCANNED_SOURCE_FILES "${ARGUMENT}/*.cpp")
file(GLOB SCANNED_INCLUDE_FILES "${ARGUMENT}/*.h")
if (APPLE)
file(GLOB SCANNED_INCLUDE_FILES "${ARGUMENT}/*.mm")
endif (APPLE)
# Set in both current and parent scope so this macro can be used from loaded modules
set(TORQUE_SOURCE_FILES ${TORQUE_SOURCE_FILES} ${SCANNED_SOURCE_FILES} ${SCANNED_INCLUDE_FILES})
set(TORQUE_SOURCE_FILES ${TORQUE_SOURCE_FILES} PARENT_SCOPE)
endforeach()
endmacro (torqueAddSourceDirectories)
################# Set Conditional Engine Defines ################### ################# Set Conditional Engine Defines ###################
if (TORQUE_OPENGL) if (TORQUE_OPENGL)
@ -76,220 +95,214 @@ endif (UNIX AND NOT APPLE)
################# Collect Source Files ################### ################# Collect Source Files ###################
set(TORQUE_SOURCE_FILES "main/main.cpp") torqueAddSourceDirectories("main")
# Handle app # Handle app
file(GLOB TORQUE_APP_SOURCES "app/*.cpp" "app/net/*.cpp") torqueAddSourceDirectories("app" "app/net")
set(TORQUE_SOURCE_FILES ${TORQUE_SOURCE_FILES} ${TORQUE_APP_SOURCES})
# Handle console # Handle console
file(GLOB TORQUE_CONSOLE_SOURCES "console/*.cpp") torqueAddSourceDirectories("console")
set(TORQUE_SOURCE_FILES ${TORQUE_SOURCE_FILES} ${TORQUE_CONSOLE_SOURCES})
# Handle Platform # Handle Platform
file(GLOB TORQUE_PLATFORM_SOURCES "platform/*.cpp" "platform/threads/*.cpp" "platform/async/*.cpp" torqueAddSourceDirectories("platform" "platform/threads" "platform/async"
"platform/input/*.cpp" "platform/output/*.cpp") "platform/input" "platform/output")
set(TORQUE_SOURCE_FILES ${TORQUE_SOURCE_FILES} ${TORQUE_PLATFORM_SOURCES})
# Handle T3D # Handle T3D
file(GLOB TORQUE_T3D_SOURCES "T3D/fps/*.cpp" "T3D/fx/*.cpp" "T3D/vehicles/*.cpp" "T3D/physics/*.cpp" torqueAddSourceDirectories("T3D/fps" "T3D/fx" "T3D/vehicles" "T3D/physics"
"T3D/decal/*.cpp" "T3D/sfx/*.cpp" "T3D/gameBase/*.cpp" "T3D/turret/*.cpp" "T3D/decal" "T3D/sfx" "T3D/gameBase" "T3D/turret"
"T3D/lighting/*.cpp" "T3D/gameOBjects/*.cpp" "T3D/components/*.cpp" "T3D/lighting" "T3D/gameOBjects" "T3D/components"
"T3D/systems/*.cpp" "T3D/assets/*.cpp" "T3D/*.cpp" "T3D/gameBase/std/*.cpp") "T3D/systems" "T3D/assets" "T3D" "T3D/gameBase/std")
set(TORQUE_SOURCE_FILES ${TORQUE_SOURCE_FILES} ${TORQUE_T3D_SOURCES})
# Handle TS # Handle TS
file(GLOB TORQUE_TS_SOURCES "ts/*.cpp" "ts/collada/*.cpp" "ts/assimp/*.cpp" "ts/loader/*.cpp" "ts/arch/*.cpp") torqueAddSourceDirectories("ts" "ts/collada" "ts/assimp" "ts/loader" "ts/arch")
set(TORQUE_SOURCE_FILES ${TORQUE_SOURCE_FILES} ${TORQUE_TS_SOURCES})
# Handle SFX - OpenAL is handled as a module later on # Handle SFX - OpenAL is handled as a module later on
file(GLOB TORQUE_SFX_SOURCES "sfx/*.cpp" "sfx/media/*.cpp" "sfx/null/*.cpp") torqueAddSourceDirectories("sfx" "sfx/media" "sfx/null")
set(TORQUE_SOURCE_FILES ${TORQUE_SOURCE_FILES} ${TORQUE_SFX_SOURCES})
# Handle GFX # Handle GFX
file(GLOB TORQUE_GFX_SOURCES "gfx/*.cpp" "gfx/Null/*.cpp" "gfx/test/*.cpp" "gfx/bitmap/*.cpp" "gfx/bitmap/loaders/*.cpp" torqueAddSourceDirectories("gfx" "gfx/Null" "gfx/test" "gfx/bitmap" "gfx/bitmap/loaders"
"gfx/util/*.cpp" "gfx/video/*.cpp" "gfx/sim/*.cpp" ) "gfx/util" "gfx/video" "gfx/sim" )
if (TORQUE_OPENGL) if (TORQUE_OPENGL)
file(GLOB TORQUE_GFX_SOURCES_OPENGL "gfx/gl/*.cpp" "gfx/gl/sdl/*.cpp" "gfx/gl/tGL/*.cpp") torqueAddSourceDirectories("gfx/gl" "gfx/gl/sdl" "gfx/gl/tGL")
set(TORQUE_GFX_SOURCES ${TORQUE_GFX_SOURCES} ${TORQUE_GFX_SOURCES_OPENGL})
endif (TORQUE_OPENGL) endif (TORQUE_OPENGL)
if (WIN32 AND TORQUE_D3D11) if (WIN32 AND TORQUE_D3D11)
file(GLOB TORQUE_GFX_SOURCES_D3D11 "gfx/D3D11/*.cpp") torqueAddSourceDirectories("gfx/D3D11")
set(TORQUE_GFX_SOURCES ${TORQUE_GFX_SOURCES} ${TORQUE_GFX_SOURCES_D3D11})
endif (WIN32 AND TORQUE_D3D11) endif (WIN32 AND TORQUE_D3D11)
set(TORQUE_SOURCE_FILES ${TORQUE_SOURCE_FILES} ${TORQUE_GFX_SOURCES})
# Handle core # Handle core
file(GLOB TORQUE_CORE_SOURCES "core/*.cpp" "core/stream/*.cpp" "core/strings/*.cpp" "core/util/*.cpp" torqueAddSourceDirectories("core" "core/stream" "core/strings" "core/util"
"core/util/journal/*.cpp" "core/util/zip/*.cpp" "core/util/compressors/*.cpp") "core/util/journal" "core/util/zip" "core/util/compressors")
set(TORQUE_SOURCE_FILES ${TORQUE_SOURCE_FILES} ${TORQUE_CORE_SOURCES})
# Handle GUI # Handle GUI
file(GLOB TORQUE_GUI_SOURCES "gui/*.cpp" "gui/buttons/*.cpp" "gui/containers/*.cpp" "gui/controls/*.cpp" "gui/core/*.cpp" torqueAddSourceDirectories("gui" "gui/buttons" "gui/containers" "gui/controls" "gui/core"
"gui/game/*.cpp" "gui/shiny/*.cpp" "gui/utility/*.cpp" "gui/3d/*.cpp") "gui/game" "gui/shiny" "gui/utility" "gui/3d")
set(TORQUE_SOURCE_FILES ${TORQUE_SOURCE_FILES} ${TORQUE_GUI_SOURCES})
# Handle postFX # Handle postFX
file(GLOB TORQUE_POSTFX_SOURCES "postFx/*.cpp") torqueAddSourceDirectories("postFx")
set(TORQUE_SOURCE_FILES ${TORQUE_SOURCE_FILES} ${TORQUE_POSTFX_SOURCES})
# Handle Windowmanager # Handle Windowmanager
file(GLOB TORQUE_WINDOW_MANAGER_SOURCES "windowManager/*.cpp" "windowManager/torque/*.cpp" "windowManager/sdl/*.cpp") torqueAddSourceDirectories("windowManager" "windowManager/torque" "windowManager/sdl")
set(TORQUE_SOURCE_FILES ${TORQUE_SOURCE_FILES} ${TORQUE_WINDOW_MANAGER_SOURCES})
# Handle scene # Handle scene
file(GLOB TORQUE_SCENE_SOURCES "scene/*.cpp" "scene/culling/*.cpp" "scene/zones/*.cpp" "scene/mixin/*.cpp") torqueAddSourceDirectories("scene" "scene/culling" "scene/zones" "scene/mixin")
set(TORQUE_SOURCE_FILES ${TORQUE_SOURCE_FILES} ${TORQUE_SCENE_SOURCES})
# Handle math # Handle math
file(GLOB TORQUE_MATH_SOURCES "math/*.cpp" "math/util/*.cpp") torqueAddSourceDirectories("math" "math/util")
set(TORQUE_SOURCE_FILES ${TORQUE_SOURCE_FILES} ${TORQUE_MATH_SOURCES})
# Handle persistence # Handle persistence
file(GLOB TORQUE_PERSISTENCE_SOURCES "persistence/taml/*.cpp" "persistence/taml/binary/*.cpp" "persistence/taml/xml/*.cpp") torqueAddSourceDirectories("persistence/taml" "persistence/taml/binary" "persistence/taml/xml")
set(TORQUE_SOURCE_FILES ${TORQUE_SOURCE_FILES} ${TORQUE_PERSISTENCE_SOURCES})
# Handle Cinterface # Handle Cinterface
file(GLOB TORQUE_CINTERFACE_SOURCES "cinterface/*.cpp") torqueAddSourceDirectories("cinterface")
set(TORQUE_SOURCE_FILES ${TORQUE_SOURCE_FILES} ${TORQUE_CINTERFACE_SOURCES})
# Handle util # Handle util
file(GLOB TORQUE_UTIL_SOURCES "util/*.cpp" "util/messaging/*.cpp") torqueAddSourceDirectories("util" "util/messaging")
set(TORQUE_SOURCE_FILES ${TORQUE_SOURCE_FILES} ${TORQUE_UTIL_SOURCES})
# Handle assets # Handle assets
file(GLOB TORQUE_ASSETS_SOURCES "assets/*.cpp") torqueAddSourceDirectories("assets")
set(TORQUE_SOURCE_FILES ${TORQUE_SOURCE_FILES} ${TORQUE_ASSETS_SOURCES})
# Handle Sim # Handle Sim
file(GLOB TORQUE_SIM_SOURCES "sim/*.cpp") torqueAddSourceDirectories("sim")
set(TORQUE_SOURCE_FILES ${TORQUE_SOURCE_FILES} ${TORQUE_SIM_SOURCES})
# Handle module # Handle module
file(GLOB TORQUE_MODULE_SOURCES "module/*.cpp") torqueAddSourceDirectories("module")
set(TORQUE_SOURCE_FILES ${TORQUE_SOURCE_FILES} ${TORQUE_MODULE_SOURCES})
# Handle forest # Handle forest
file(GLOB TORQUE_FOREST_SOURCES "forest/*.cpp" "forest/ts/*.cpp") torqueAddSourceDirectories("forest" "forest/ts")
set(TORQUE_SOURCE_FILES ${TORQUE_SOURCE_FILES} ${TORQUE_FOREST_SOURCES})
# Handle shadergen # Handle shadergen
file(GLOB TORQUE_SHADERGEN_SOURCES "shaderGen/*.cpp") torqueAddSourceDirectories("shaderGen")
if (WIN32 AND TORQUE_D3D11) if (WIN32 AND TORQUE_D3D11)
file(GLOB TORQUE_SHADERGEN_SOURCES_HLSL "shaderGen/HLSL/*.cpp") torqueAddSourceDirectories("shaderGen/HLSL")
set(TORQUE_SHADERGEN_SOURCES ${TORQUE_SHADERGEN_SOURCES} ${TORQUE_SHADERGEN_SOURCES_HLSL})
endif (WIN32) endif (WIN32)
if (TORQUE_OPENGL) if (TORQUE_OPENGL)
file(GLOB TORQUE_SHADERGEN_SOURCES_GLSL "shaderGen/GLSL/*.cpp") torqueAddSourceDirectories("shaderGen/GLSL")
set(TORQUE_SHADERGEN_SOURCES ${TORQUE_SHADERGEN_SOURCES} ${TORQUE_SHADERGEN_SOURCES_GLSL})
endif (TORQUE_OPENGL) endif (TORQUE_OPENGL)
set(TORQUE_SOURCE_FILES ${TORQUE_SOURCE_FILES} ${TORQUE_SHADERGEN_SOURCES})
# Handle terrain # Handle terrain
file(GLOB TORQUE_TERRAIN_SOURCES "terrain/*.cpp") torqueAddSourceDirectories("terrain")
if (WIN32 AND TORQUE_D3D11) if (WIN32 AND TORQUE_D3D11)
file(GLOB TORQUE_TERRAIN_SOURCES_HLSL "terrain/hlsl/*.cpp") torqueAddSourceDirectories("terrain/hlsl")
set(TORQUE_TERRAIN_SOURCES ${TORQUE_TERRAIN_SOURCES} ${TORQUE_TERRAIN_SOURCES_HLSL})
endif (WIN32 AND TORQUE_D3D11) endif (WIN32 AND TORQUE_D3D11)
if (TORQUE_OPENGL) if (TORQUE_OPENGL)
file(GLOB TORQUE_TERRAIN_SOURCES_GLSL "terrain/glsl/*.cpp") torqueAddSourceDirectories("terrain/glsl")
set(TORQUE_TERRAIN_SOURCES ${TORQUE_TERRAIN_SOURCES} ${TORQUE_TERRAIN_SOURCES_GLSL})
endif (TORQUE_OPENGL) endif (TORQUE_OPENGL)
set(TORQUE_SOURCE_FILES ${TORQUE_SOURCE_FILES} ${TORQUE_TERRAIN_SOURCES})
# Handle Materials # Handle Materials
file(GLOB TORQUE_MATERIALS_SOURCES "materials/*.cpp") torqueAddSourceDirectories("materials")
set(TORQUE_SOURCE_FILES ${TORQUE_SOURCE_FILES} ${TORQUE_MATERIALS_SOURCES})
# Handle collision # Handle collision
file(GLOB TORQUE_COLLISION_SOURCES "collision/*.cpp") torqueAddSourceDirectories("collision")
set(TORQUE_SOURCE_FILES ${TORQUE_SOURCE_FILES} ${TORQUE_COLLISION_SOURCES})
# Handle lighting # Handle lighting
file(GLOB TORQUE_LIGHTING_SOURCES "lighting/*.cpp" "lighting/common/*.cpp" torqueAddSourceDirectories("lighting" "lighting/common"
"lighting/shadowMap/*.cpp") "lighting/shadowMap")
if (TORQUE_ADVANCED_LIGHTING) if (TORQUE_ADVANCED_LIGHTING)
file(GLOB TORQUE_LIGHTING_SOURCES_ADVANCED "lighting/advanced/*.cpp") torqueAddSourceDirectories("lighting/advanced")
set(TORQUE_LIGHTING_SOURCES ${TORQUE_LIGHTING_SOURCES} ${TORQUE_LIGHTING_SOURCES_ADVANCED})
if (WIN32 AND TORQUE_D3D11) if (WIN32 AND TORQUE_D3D11)
file(GLOB TORQUE_LIGHTING_SOURCES_HLSL "lighting/advanced/hlsl/*.cpp") torqueAddSourceDirectories("lighting/advanced/hlsl")
set(TORQUE_LIGHTING_SOURCES ${TORQUE_LIGHTING_SOURCES} ${TORQUE_LIGHTING_SOURCES_HLSL})
endif (WIN32 AND TORQUE_D3D11) endif (WIN32 AND TORQUE_D3D11)
if (TORQUE_OPENGL) if (TORQUE_OPENGL)
file(GLOB TORQUE_LIGHTING_SOURCES_GLSL "lighting/advanced/glsl/*.cpp") torqueAddSourceDirectories("lighting/advanced/glsl")
set(TORQUE_LIGHTING_SOURCES ${TORQUE_LIGHTING_SOURCES} ${TORQUE_LIGHTING_SOURCES_GLSL})
endif (TORQUE_OPENGL) endif (TORQUE_OPENGL)
endif (TORQUE_ADVANCED_LIGHTING) endif (TORQUE_ADVANCED_LIGHTING)
if (TORQUE_BASIC_LIGHTING) if (TORQUE_BASIC_LIGHTING)
file(GLOB TORQUE_LIGHTING_SOURCES_BASIC "lighting/basic/*.cpp" "lighting/basic/shadowMap/*.cpp") torqueAddSourceDirectories("lighting/basic" "lighting/basic/shadowMap")
set(TORQUE_LIGHTING_SOURCES ${TORQUE_LIGHTING_SOURCES} ${TORQUE_LIGHTING_SOURCES_BASIC})
endif (TORQUE_BASIC_LIGHTING) endif (TORQUE_BASIC_LIGHTING)
set(TORQUE_SOURCE_FILES ${TORQUE_SOURCE_FILES} ${TORQUE_LIGHTING_SOURCES})
# Handle environment # Handle environment
file(GLOB TORQUE_ENVIRONMENT_SOURCES "environment/*.cpp") torqueAddSourceDirectories("environment")
set(TORQUE_SOURCE_FILES ${TORQUE_SOURCE_FILES} ${TORQUE_ENVIRONMENT_SOURCES})
# Handle renderInstance # Handle renderInstance
file(GLOB TORQUE_RENDERINSTANCE_SOURCES "renderInstance/*.cpp") torqueAddSourceDirectories("renderInstance")
set(TORQUE_SOURCE_FILES ${TORQUE_SOURCE_FILES} ${TORQUE_RENDERINSTANCE_SOURCES})
# Handle i18n # Handle i18n
file(GLOB TORQUE_I18N_SOURCES "i18n/*.cpp") torqueAddSourceDirectories("i18n")
set(TORQUE_SOURCE_FILES ${TORQUE_SOURCE_FILES} ${TORQUE_I18N_SOURCES})
# Begin handling platform specific stuff # Begin handling platform specific stuff
# Handle Platform POSIX # Handle Platform POSIX
if (UNIX) if (UNIX)
file(GLOB TORQUE_PLATFORM_POSIX_SOURCES "platformPOSIX/*.cpp") torqueAddSourceDirectories("platformPOSIX")
if (TORQUE_CPU_X32 OR TORQUE_CPU_X64) if (TORQUE_CPU_X32 OR TORQUE_CPU_X64)
file(GLOB TORQUE_PLATFORM_X86_UNIX_SOURCES "platformX86UNIX/*.cpp") torqueAddSourceDirectories("platformX86UNIX")
set(TORQUE_PLATFORM_POSIX_SOURCES ${TORQUE_PLATFORM_POSIX_SOURCES} ${TORQUE_PLATFORM_X86_UNIX_SOURCES})
endif (TORQUE_CPU_X32 OR TORQUE_CPU_X64) endif (TORQUE_CPU_X32 OR TORQUE_CPU_X64)
set(TORQUE_SOURCE_FILES ${TORQUE_SOURCE_FILES} ${TORQUE_PLATFORM_POSIX_SOURCES})
endif (UNIX) endif (UNIX)
# Handle platformMac # Handle platformMac
if (APPLE) if (APPLE)
file(GLOB TORQUE_PLATFORM_MAC_SOURCES "platformMac/*.mm") torqueAddSourceDirectories("platformMac")
set(TORQUE_SOURCE_FILES ${TORQUE_SOURCE_FILES} ${TORQUE_PLATFORM_MAC_SOURCES})
endif (APPLE) endif (APPLE)
# Handle platformWin32 # Handle platformWin32
if (WIN32) if (WIN32)
file(GLOB TORQUE_PLATFORM_WIN_SOURCES "platformWin32/*.cpp" "platformWin32/videoInfo/*.cpp") torqueAddSourceDirectories("platformWin32" "platformWin32/videoInfo")
set(TORQUE_SOURCE_FILES ${TORQUE_SOURCE_FILES} ${TORQUE_PLATFORM_WIN_SOURCES})
endif (WIN32) endif (WIN32)
# Handle platformSDL # Handle platformSDL
file(GLOB TORQUE_PLATFORM_SDL_SOURCES "platformSDL/*.cpp" "platformSDL/threads/*.cpp") torqueAddSourceDirectories("platformSDL" "platformSDL/threads")
set(TORQUE_SOURCE_FILES ${TORQUE_SOURCE_FILES} ${TORQUE_PLATFORM_SDL_SOURCES})
# Handle platformX11 # Handle platformX11
if (UNIX AND NOT APPLE) if (UNIX AND NOT APPLE)
file(GLOB TORQUE_PLATFORM_X11_SOURCES "platformX11/*.cpp") torqueAddSourceDirectories("platformX11")
set(TORQUE_SOURCE_FILES ${TORQUE_SOURCE_FILES} ${TORQUE_PLATFORM_X11_SOURCES})
endif (UNIX AND NOT APPLE) endif (UNIX AND NOT APPLE)
# Generate the filters for the main Torque project before we add RC files and such # Add the collected files to our engine group
source_group(TREE "${CMAKE_SOURCE_DIR}/Engine/source" PREFIX "Engine" FILES ${TORQUE_SOURCE_FILES}) source_group(TREE "${CMAKE_SOURCE_DIR}/Engine/source" PREFIX "Engine" FILES ${TORQUE_SOURCE_FILES})
################# Engine Module Handling ###################
set(TORQUE_MODULE_PATHS "${CMAKE_SOURCE_DIR}/Tools/CMake/modules" "${TORQUE_APP_GAME_DIRECTORY}/data")
if (NOT "${TORQUE_MODULE_USER_PATH}" STREQUAL "")
list(APPEND TORQUE_MODULE_PATHS "${TORQUE_MODULE_USER_PATH}")
endif()
# Before doing module scanning, store away the engine sources - we do this so that modules
# can be placed into the proper filters
set(TORQUE_SOURCE_FILES_TEMPORARY ${TORQUE_SOURCE_FILES})
set(TORQUE_SOURCE_FILES "")
foreach (TORQUE_MODULE_PATH ${TORQUE_MODULE_PATHS})
# First find simple cmake scripts, mostly used for in-engine modules
file(GLOB MODULE_SCRIPTS "${TORQUE_MODULE_PATH}/*.cmake")
foreach (TORQUE_MODULE_SCRIPT ${MODULE_SCRIPTS})
include(${TORQUE_MODULE_SCRIPT})
# Add this script's collected files to our Engine group
source_group(TREE "${CMAKE_SOURCE_DIR}/Engine/source" PREFIX "Engine" FILES ${TORQUE_SOURCE_FILES})
set(TORQUE_SOURCE_FILES_TEMPORARY ${TORQUE_SOURCE_FILES_TEMPORARY} ${TORQUE_SOURCE_FILES})
set(TORQUE_SOURCE_FILES "")
endforeach()
# Next find sub projects, these can introduce new source files
SUBDIRLIST(POSSIBLE_PROJECTS "${TORQUE_MODULE_PATH}")
foreach (POSSIBLE_PROJECT ${POSSIBLE_PROJECTS})
# Retrieve the absolute path of this possible project
get_filename_component(POSSIBLE_PROJECT_ABSOLUTEPATH "${POSSIBLE_PROJECT}"
REALPATH BASE_DIR "${TORQUE_MODULE_PATH}")
if (EXISTS "${POSSIBLE_PROJECT_ABSOLUTEPATH}/CMakeLists.txt")
add_subdirectory("${POSSIBLE_PROJECT_ABSOLUTEPATH}" ${CMAKE_BINARY_DIR}/temp/${POSSIBLE_PROJECT} EXCLUDE_FROM_ALL)
source_group(TREE "${POSSIBLE_PROJECT_ABSOLUTEPATH}" PREFIX "Modules/${POSSIBLE_PROJECT}" FILES ${TORQUE_SOURCE_FILES})
set(TORQUE_SOURCE_FILES_TEMPORARY ${TORQUE_SOURCE_FILES_TEMPORARY} ${TORQUE_SOURCE_FILES})
set(TORQUE_SOURCE_FILES "")
endif()
endforeach()
endforeach()
set(TORQUE_SOURCE_FILES ${TORQUE_SOURCE_FILES_TEMPORARY})
################# Dynamic File Configuration ################### ################# Dynamic File Configuration ###################
# Prepare Windows RC file # Prepare Windows RC file
@ -309,49 +322,6 @@ if (APPLE)
configure_file("${CMAKE_SOURCE_DIR}/Tools/CMake/Info.plist.in" "${CMAKE_BINARY_DIR}/temp/Info.plist" COPYONLY) configure_file("${CMAKE_SOURCE_DIR}/Tools/CMake/Info.plist.in" "${CMAKE_BINARY_DIR}/temp/Info.plist" COPYONLY)
endif (APPLE) endif (APPLE)
################# Engine Module Handling ###################
set(TORQUE_MODULE_PATHS "${CMAKE_SOURCE_DIR}/Tools/CMake/modules" "${TORQUE_APP_GAME_DIRECTORY}/data")
if (NOT "${TORQUE_MODULE_USER_PATH}" STREQUAL "")
list(APPEND TORQUE_MODULE_PATHS "${TORQUE_MODULE_USER_PATH}")
endif()
# Before doing module scanning, store away the engine sources - we do this so that modules
# can be placed into the proper filters
set(TORQUE_SOURCE_FILES_TEMPORARY ${TORQUE_SOURCE_FILES})
set(TORQUE_SOURCE_FILES "")
foreach (TORQUE_MODULE_PATH ${TORQUE_MODULE_PATHS})
# First find simple cmake scripts
file(GLOB MODULE_SCRIPTS "${TORQUE_MODULE_PATH}/*.cmake")
foreach (TORQUE_MODULE_SCRIPT ${MODULE_SCRIPTS})
include(${TORQUE_MODULE_SCRIPT})
get_filename_component(TORQUE_MODULE_NAME "${TORQUE_MODULE_SCRIPT}" NAME)
source_group("Modules/${TORQUE_MODULE_NAME}" FILES ${TORQUE_SOURCE_FILES})
set(TORQUE_SOURCE_FILES_TEMPORARY ${TORQUE_SOURCE_FILES_TEMPORARY} ${TORQUE_SOURCE_FILES})
set(TORQUE_SOURCE_FILES "")
endforeach()
# Next find sub projects
SUBDIRLIST(POSSIBLE_PROJECTS "${TORQUE_MODULE_PATH}")
foreach (POSSIBLE_PROJECT ${POSSIBLE_PROJECTS})
# Retrieve the absolute path of this possible project
get_filename_component(POSSIBLE_PROJECT_ABSOLUTEPATH "${POSSIBLE_PROJECT}"
REALPATH BASE_DIR "${TORQUE_MODULE_PATH}")
if (EXISTS "${POSSIBLE_PROJECT_ABSOLUTEPATH}/CMakeLists.txt")
add_subdirectory("${POSSIBLE_PROJECT_ABSOLUTEPATH}" ${CMAKE_BINARY_DIR}/temp/${POSSIBLE_PROJECT} EXCLUDE_FROM_ALL)
source_group("Modules/${POSSIBLE_PROJECT}" FILES ${TORQUE_SOURCE_FILES})
set(TORQUE_SOURCE_FILES_TEMPORARY ${TORQUE_SOURCE_FILES_TEMPORARY} ${TORQUE_SOURCE_FILES})
set(TORQUE_SOURCE_FILES "")
endif()
endforeach()
endforeach()
set(TORQUE_SOURCE_FILES ${TORQUE_SOURCE_FILES_TEMPORARY})
################# Executable Generation ################### ################# Executable Generation ###################
if (APPLE) if (APPLE)

View file

@ -4,7 +4,9 @@ option(TORQUE_AFX_ENABLED "Enable AFX module" ON)
if(TORQUE_AFX_ENABLED) if(TORQUE_AFX_ENABLED)
message("Enabling AFX Module") message("Enabling AFX Module")
file(GLOB_RECURSE TORQUE_SFX_SOURCES "${CMAKE_SOURCE_DIR}/Engine/source/afx/*.cpp") file(GLOB_RECURSE TORQUE_AFX_SOURCES "${CMAKE_SOURCE_DIR}/Engine/source/afx/*.cpp" "${CMAKE_SOURCE_DIR}/Engine/source/afx/*.h" )
set(TORQUE_SOURCE_FILES ${TORQUE_SOURCE_FILES} ${TORQUE_SFX_SOURCES}) set(TORQUE_SOURCE_FILES ${TORQUE_SOURCE_FILES} ${TORQUE_AFX_SOURCES})
set(TORQUE_COMPILE_DEFINITIONS ${TORQUE_COMPILE_DEFINITIONS} TORQUE_AFX_ENABLED) set(TORQUE_COMPILE_DEFINITIONS ${TORQUE_COMPILE_DEFINITIONS} TORQUE_AFX_ENABLED)
source_group("Modules/AFX" ${TORQUE_AFX_SOURCES})
endif() endif()

View file

@ -4,8 +4,7 @@ option(TORQUE_PHYSICS_BULLET "Use Bullet physics" OFF)
if(TORQUE_PHYSICS_BULLET) if(TORQUE_PHYSICS_BULLET)
message("Enabling Bullet Module") message("Enabling Bullet Module")
file(GLOB TORQUE_BULLET_SOURCES "${CMAKE_SOURCE_DIR}/Engine/source/T3D/physics/bullet/*.cpp") torqueAddSourceDirectories("${CMAKE_SOURCE_DIR}/Engine/source/T3D/physics/bullet")
set(TORQUE_SOURCE_FILES ${TORQUE_SOURCE_FILES} ${TORQUE_NAVIGATION_SOURCES})
set(TORQUE_LINK_LIBRARIES ${TORQUE_LINK_LIBRARIES} BulletSoftBody Bullet3Dynamics BulletInverseDynamics BulletCollision set(TORQUE_LINK_LIBRARIES ${TORQUE_LINK_LIBRARIES} BulletSoftBody Bullet3Dynamics BulletInverseDynamics BulletCollision
Bullet2FileLoader BulletDynamics Bullet3OpenCL_clew Bullet3Common Bullet2FileLoader BulletDynamics Bullet3OpenCL_clew Bullet3Common
LinearMath Bullet3Geometry Bullet3Collision) LinearMath Bullet3Geometry Bullet3Collision)

View file

@ -4,7 +4,5 @@ option(TORQUE_SFX_DIRECTX "Use DirectSound SFX" OFF)
if(TORQUE_SFX_DIRECTX AND WIN32) if(TORQUE_SFX_DIRECTX AND WIN32)
message("Enabling DirectSound Module") message("Enabling DirectSound Module")
file(GLOB TORQUE_DSOUND_SOURCES "${CMAKE_SOURCE_DIR}/Engine/source/sfx/dsound/*.cpp" "${CMAKE_SOURCE_DIR}/Engine/source/sfx/xaudio/*.cpp") torqueAddSourceDirectories("${CMAKE_SOURCE_DIR}/Engine/source/sfx/dsound" "${CMAKE_SOURCE_DIR}/Engine/source/sfx/xaudio")
set(TORQUE_SOURCE_FILES ${TORQUE_SOURCE_FILES} ${TORQUE_DSOUND_SOURCES})
endif(TORQUE_SFX_DIRECTX AND WIN32) endif(TORQUE_SFX_DIRECTX AND WIN32)

View file

@ -4,8 +4,7 @@ option(TORQUE_NAVIGATION "Enable Navigation module" ON)
if(TORQUE_NAVIGATION) if(TORQUE_NAVIGATION)
message("Enabling Navigation Module") message("Enabling Navigation Module")
file(GLOB TORQUE_NAVIGATION_SOURCES "${CMAKE_SOURCE_DIR}/Engine/source/navigation/*.cpp") torqueAddSourceDirectories("${CMAKE_SOURCE_DIR}/Engine/source/navigation")
set(TORQUE_SOURCE_FILES ${TORQUE_SOURCE_FILES} ${TORQUE_NAVIGATION_SOURCES})
set(TORQUE_LINK_LIBRARIES ${TORQUE_LINK_LIBRARIES} recast) set(TORQUE_LINK_LIBRARIES ${TORQUE_LINK_LIBRARIES} recast)
set(TORQUE_COMPILE_DEFINITIONS ${TORQUE_COMPILE_DEFINITIONS} recast TORQUE_NAVIGATION_ENABLED) set(TORQUE_COMPILE_DEFINITIONS ${TORQUE_COMPILE_DEFINITIONS} recast TORQUE_NAVIGATION_ENABLED)

View file

@ -4,27 +4,23 @@ option(TORQUE_SFX_OPENAL "Use OpenAL SFX" ON)
if(TORQUE_SFX_OPENAL) if(TORQUE_SFX_OPENAL)
message("Enabling OpenAL Module") message("Enabling OpenAL Module")
file(GLOB TORQUE_OPENAL_SOURCES "${CMAKE_SOURCE_DIR}/Engine/source/sfx/openal/*.cpp") torqueAddSourceDirectories("${CMAKE_SOURCE_DIR}/Engine/source/sfx/openal")
if (APPLE) if (APPLE)
file(GLOB TORQUE_OPENAL_MAC_SOURCES "${CMAKE_SOURCE_DIR}/Engine/source/sfx/openal/mac/*.cpp") torqueAddSourceDirectories("${CMAKE_SOURCE_DIR}/Engine/source/sfx/openal/mac")
set(TORQUE_OPENAL_SOURCES ${TORQUE_OPENAL_SOURCES} ${TORQUE_OPENAL_MAC_SOURCES})
elseif (WIN32) elseif (WIN32)
file(GLOB TORQUE_OPENAL_WIN_SOURCES "${CMAKE_SOURCE_DIR}/Engine/source/sfx/openal/win32/*.cpp") torqueAddSourceDirectories("${CMAKE_SOURCE_DIR}/Engine/source/sfx/openal/win32")
set(TORQUE_OPENAL_SOURCES ${TORQUE_OPENAL_SOURCES} ${TORQUE_OPENAL_WIN_SOURCES})
elseif (UNIX) elseif (UNIX)
file(GLOB TORQUE_OPENAL_LINUX_SOURCES "${CMAKE_SOURCE_DIR}/Engine/source/sfx/openal/linux/*.cpp") torqueAddSourceDirectories("${CMAKE_SOURCE_DIR}/Engine/source/sfx/openal/linux")
set(TORQUE_OPENAL_SOURCES ${TORQUE_OPENAL_SOURCES} ${TORQUE_OPENAL_LINUX_SOURCES})
else() else()
message(FATAL_ERROR "Unsupported OpenAL platform.") message(FATAL_ERROR "Unsupported OpenAL platform.")
endif (APPLE) endif (APPLE)
set(TORQUE_SOURCE_FILES ${TORQUE_SOURCE_FILES} ${TORQUE_OPENAL_SOURCES})
set(TORQUE_LINK_LIBRARIES ${TORQUE_LINK_LIBRARIES} OpenAL) set(TORQUE_LINK_LIBRARIES ${TORQUE_LINK_LIBRARIES} OpenAL)
# Since OpenAL lives elsewhere we need to ensure it is known to Torque when providing a link to it # Since OpenAL lives elsewhere we need to ensure it is known to Torque when providing a link to it
set(ALSOFT_EXAMPLES OFF CACHE BOOL "OpenAL Examples" FORCE) set(ALSOFT_EXAMPLES OFF CACHE BOOL "OpenAL Examples" FORCE)
set(ALSOFT_UPDATE_BUILD_VERSION OFF CACHE BOOL "Update build Version" UPDATE) set(ALSOFT_UPDATE_BUILD_VERSION OFF CACHE BOOL "Update build Version" UPDATE)
add_subdirectory("${CMAKE_SOURCE_DIR}/Engine/lib/openal-soft" ${CMAKE_BINARY_DIR}/temp/openal-soft EXCLUDE_FROM_ALL) add_subdirectory("${CMAKE_SOURCE_DIR}/Engine/lib/openal-soft" ${CMAKE_BINARY_DIR}/temp/openal-soft EXCLUDE_FROM_ALL)
endif(TORQUE_SFX_OPENAL) endif(TORQUE_SFX_OPENAL)