mirror of
https://github.com/TorqueGameEngines/Torque3D.git
synced 2026-07-12 07:04:36 +00:00
Merge branch 'cmake_adjustments' of https://github.com/Ragora/Torque3D into alpha41/cmake_adjustments
# Conflicts: # Engine/lib/assimp/INSTALL # Engine/source/console/fileSystemFunctions.cpp # Tools/CMake/basics.cmake # Tools/CMake/modules/module_testing.cmake
This commit is contained in:
commit
c61439c2f9
5655 changed files with 2646874 additions and 17396 deletions
|
|
@ -19,494 +19,30 @@
|
|||
# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
|
||||
# IN THE SOFTWARE.
|
||||
# -----------------------------------------------------------------------------
|
||||
|
||||
project("Torque3DEngine")
|
||||
|
||||
# Detect 32bit and 64bit x86/ARM
|
||||
if (CMAKE_SYSTEM_PROCESSOR MATCHES "arm")
|
||||
if( CMAKE_CXX_SIZEOF_DATA_PTR EQUAL 8 )
|
||||
set( TORQUE_CPU_ARM64 ON )
|
||||
elseif( CMAKE_CXX_SIZEOF_DATA_PTR EQUAL 4 )
|
||||
set( TORQUE_CPU_ARM32 ON )
|
||||
endif()
|
||||
else()
|
||||
if( CMAKE_CXX_SIZEOF_DATA_PTR EQUAL 8 )
|
||||
set( TORQUE_CPU_X64 ON )
|
||||
elseif( CMAKE_CXX_SIZEOF_DATA_PTR EQUAL 4 )
|
||||
set( TORQUE_CPU_X32 ON )
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(NOT TORQUE_TEMPLATE)
|
||||
set(TORQUE_TEMPLATE "BaseGame" CACHE STRING "the template to use")
|
||||
endif()
|
||||
if(NOT TORQUE_APP_DIR)
|
||||
set(TORQUE_APP_DIR "${CMAKE_SOURCE_DIR}/My Projects/${TORQUE_APP_NAME}" CACHE STRING "final installation location")
|
||||
endif()
|
||||
if(NOT projectOutDir)
|
||||
set(projectOutDir "${TORQUE_APP_DIR}/game")
|
||||
endif()
|
||||
if(NOT projectSrcDir)
|
||||
set(projectSrcDir "${TORQUE_APP_DIR}/source")
|
||||
endif()
|
||||
set(libDir "${CMAKE_SOURCE_DIR}/Engine/lib")
|
||||
set(srcDir "${CMAKE_SOURCE_DIR}/Engine/source")
|
||||
set(cmakeDir "${CMAKE_SOURCE_DIR}/Tools/CMake")
|
||||
|
||||
# hide some things
|
||||
mark_as_advanced(CMAKE_INSTALL_PREFIX)
|
||||
mark_as_advanced(CMAKE_CONFIGURATION_TYPES)
|
||||
|
||||
# output folders
|
||||
#set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${projectOutDir}/game)
|
||||
#set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${projectOutDir}/game)
|
||||
#set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${projectOutDir}/game)
|
||||
|
||||
###############################################################################
|
||||
### Source File Handling
|
||||
###############################################################################
|
||||
|
||||
# finds and adds sources files in a folder
|
||||
macro(addPath dir)
|
||||
set(tmp_files "")
|
||||
set(glob_config GLOB)
|
||||
if(${ARGC} GREATER 1 AND "${ARGV1}" STREQUAL "REC")
|
||||
set(glob_config GLOB_RECURSE)
|
||||
endif()
|
||||
set(mac_files "")
|
||||
if(APPLE)
|
||||
set(mac_files ${dir}/*.mm ${dir}/*.m)
|
||||
endif()
|
||||
file(${glob_config} tmp_files
|
||||
${dir}/*.cpp
|
||||
${dir}/*.c
|
||||
${dir}/*.cc
|
||||
${dir}/*.h
|
||||
${mac_files}
|
||||
#${dir}/*.asm
|
||||
)
|
||||
foreach(entry ${BLACKLIST})
|
||||
list(REMOVE_ITEM tmp_files ${dir}/${entry})
|
||||
endforeach()
|
||||
LIST(APPEND ${PROJECT_NAME}_files "${tmp_files}")
|
||||
LIST(APPEND ${PROJECT_NAME}_paths "${dir}")
|
||||
#message(STATUS "addPath ${PROJECT_NAME} : ${tmp_files}")
|
||||
endmacro()
|
||||
|
||||
# adds a file to the sources
|
||||
macro(addFile filename)
|
||||
LIST(APPEND ${PROJECT_NAME}_files "${filename}")
|
||||
#message(STATUS "addFile ${PROJECT_NAME} : ${filename}")
|
||||
endmacro()
|
||||
|
||||
# finds and adds sources files in a folder recursively
|
||||
macro(addPathRec dir)
|
||||
addPath("${dir}" "REC")
|
||||
endmacro()
|
||||
|
||||
###############################################################################
|
||||
### Gameplay Modules Lib Check
|
||||
###############################################################################
|
||||
macro(subDirCmake result curdir)
|
||||
file(GLOB children RELATIVE ${curdir} ${curdir}/*)
|
||||
set(dirList "")
|
||||
foreach(child ${children})
|
||||
if(IS_DIRECTORY ${curdir}/${child})
|
||||
LIST(APPEND dirList ${curdir}/${child})
|
||||
endif()
|
||||
endforeach()
|
||||
set(${result} ${dirList})
|
||||
endmacro()
|
||||
|
||||
###############################################################################
|
||||
### Definition Handling
|
||||
###############################################################################
|
||||
macro(__addDef def config)
|
||||
# two possibilities: a) target already known, so add it directly, or b) target not yet known, so add it to its cache
|
||||
if(TARGET ${PROJECT_NAME})
|
||||
#message(STATUS "directly applying defs: ${PROJECT_NAME} with config ${config}: ${def}")
|
||||
if("${config}" STREQUAL "")
|
||||
set_property(TARGET ${PROJECT_NAME} APPEND PROPERTY COMPILE_DEFINITIONS ${def})
|
||||
else()
|
||||
set_property(TARGET ${PROJECT_NAME} APPEND PROPERTY COMPILE_DEFINITIONS $<$<CONFIG:${config}>:${def}>)
|
||||
endif()
|
||||
else()
|
||||
if("${config}" STREQUAL "")
|
||||
list(APPEND ${PROJECT_NAME}_defs_ ${def})
|
||||
else()
|
||||
list(APPEND ${PROJECT_NAME}_defs_ $<$<CONFIG:${config}>:${def}>)
|
||||
endif()
|
||||
#message(STATUS "added definition to cache: ${PROJECT_NAME}_defs_: ${${PROJECT_NAME}_defs_}")
|
||||
endif()
|
||||
endmacro()
|
||||
|
||||
# adds a definition: argument 1: Nothing(for all), _DEBUG, _RELEASE, <more build configurations>
|
||||
macro(addDef def)
|
||||
set(def_configs "")
|
||||
if(${ARGC} GREATER 1)
|
||||
foreach(config ${ARGN})
|
||||
__addDef(${def} ${config})
|
||||
endforeach()
|
||||
else()
|
||||
__addDef(${def} "")
|
||||
endif()
|
||||
endmacro()
|
||||
|
||||
# this applies cached definitions onto the target
|
||||
macro(_process_defs)
|
||||
if(DEFINED ${PROJECT_NAME}_defs_)
|
||||
set_property(TARGET ${PROJECT_NAME} APPEND PROPERTY COMPILE_DEFINITIONS ${${PROJECT_NAME}_defs_})
|
||||
#message(STATUS "applying defs to project ${PROJECT_NAME}: ${${PROJECT_NAME}_defs_}")
|
||||
endif()
|
||||
endmacro()
|
||||
|
||||
###############################################################################
|
||||
### Source Library Handling
|
||||
###############################################################################
|
||||
macro(addLibSrc libPath)
|
||||
set(cached_project_name ${PROJECT_NAME})
|
||||
include(${libPath})
|
||||
project(${cached_project_name})
|
||||
endmacro()
|
||||
|
||||
###############################################################################
|
||||
### Linked Library Handling
|
||||
###############################################################################
|
||||
macro(addLib libs)
|
||||
foreach(lib ${libs})
|
||||
# check if we can build it ourselfs
|
||||
if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/libraries/${lib}.cmake")
|
||||
addLibSrc("${CMAKE_CURRENT_SOURCE_DIR}/libraries/${lib}.cmake")
|
||||
endif()
|
||||
# then link against it
|
||||
# two possibilities: a) target already known, so add it directly, or b) target not yet known, so add it to its cache
|
||||
if(TARGET ${PROJECT_NAME})
|
||||
target_link_libraries(${PROJECT_NAME} "${lib}")
|
||||
else()
|
||||
list(APPEND ${PROJECT_NAME}_libs ${lib})
|
||||
endif()
|
||||
endforeach()
|
||||
endmacro()
|
||||
|
||||
#addLibRelease will add to only release builds
|
||||
macro(addLibRelease libs)
|
||||
foreach(lib ${libs})
|
||||
# check if we can build it ourselfs
|
||||
if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/libraries/${lib}.cmake")
|
||||
addLibSrc("${CMAKE_CURRENT_SOURCE_DIR}/libraries/${lib}.cmake")
|
||||
endif()
|
||||
# then link against it
|
||||
# two possibilities: a) target already known, so add it directly, or b) target not yet known, so add it to its cache
|
||||
if(TARGET ${PROJECT_NAME})
|
||||
target_link_libraries(${PROJECT_NAME} optimized "${lib}")
|
||||
else()
|
||||
list(APPEND ${PROJECT_NAME}_libsRelease ${lib})
|
||||
endif()
|
||||
endforeach()
|
||||
endmacro()
|
||||
|
||||
#addLibDebug will add to only debug builds
|
||||
macro(addLibDebug libs)
|
||||
foreach(lib ${libs})
|
||||
# check if we can build it ourselfs
|
||||
if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/libraries/${lib}.cmake")
|
||||
addLibSrc("${CMAKE_CURRENT_SOURCE_DIR}/libraries/${lib}.cmake")
|
||||
endif()
|
||||
# then link against it
|
||||
# two possibilities: a) target already known, so add it directly, or b) target not yet known, so add it to its cache
|
||||
if(TARGET ${PROJECT_NAME})
|
||||
target_link_libraries(${PROJECT_NAME} debug "${lib}")
|
||||
else()
|
||||
list(APPEND ${PROJECT_NAME}_libsDebug ${lib})
|
||||
endif()
|
||||
endforeach()
|
||||
endmacro()
|
||||
|
||||
# this applies cached definitions onto the target
|
||||
macro(_process_libs)
|
||||
if(DEFINED ${PROJECT_NAME}_libs)
|
||||
target_link_libraries(${PROJECT_NAME} "${${PROJECT_NAME}_libs}")
|
||||
endif()
|
||||
if(DEFINED ${PROJECT_NAME}_libsRelease)
|
||||
target_link_libraries(${PROJECT_NAME} optimized "${${PROJECT_NAME}_libsRelease}")
|
||||
endif()
|
||||
if(DEFINED ${PROJECT_NAME}_libsDebug)
|
||||
target_link_libraries(${PROJECT_NAME} debug "${${PROJECT_NAME}_libsDebug}")
|
||||
endif()
|
||||
|
||||
endmacro()
|
||||
|
||||
# apple frameworks
|
||||
macro(addFramework framework)
|
||||
if (APPLE)
|
||||
addLib("-framework ${framework}")
|
||||
endif()
|
||||
endmacro()
|
||||
|
||||
###############################################################################
|
||||
### Include Handling
|
||||
###############################################################################
|
||||
macro(addInclude incPath)
|
||||
if(TARGET ${PROJECT_NAME})
|
||||
set_property(TARGET ${PROJECT_NAME} APPEND PROPERTY INCLUDE_DIRECTORIES "${incPath}")
|
||||
else()
|
||||
list(APPEND ${PROJECT_NAME}_includes ${incPath})
|
||||
endif()
|
||||
endmacro()
|
||||
|
||||
# this applies cached definitions onto the target
|
||||
macro(_process_includes)
|
||||
if(DEFINED ${PROJECT_NAME}_includes)
|
||||
set_property(TARGET ${PROJECT_NAME} APPEND PROPERTY INCLUDE_DIRECTORIES "${${PROJECT_NAME}_includes}")
|
||||
endif()
|
||||
endmacro()
|
||||
|
||||
###############################################################################
|
||||
|
||||
macro(_postTargetProcess)
|
||||
_process_includes()
|
||||
_process_defs()
|
||||
_process_libs()
|
||||
endmacro()
|
||||
|
||||
# adds a path to search for libs
|
||||
macro(addLibPath dir)
|
||||
link_directories(${dir})
|
||||
endmacro()
|
||||
|
||||
# creates a proper filter for VS
|
||||
macro(generateFilters relDir)
|
||||
foreach(f ${${PROJECT_NAME}_files})
|
||||
# Get the path of the file relative to ${DIRECTORY},
|
||||
# then alter it (not compulsory)
|
||||
file(RELATIVE_PATH SRCGR ${relDir} ${f})
|
||||
set(SRCGR "${PROJECT_NAME}/${SRCGR}")
|
||||
# Extract the folder, ie remove the filename part
|
||||
string(REGEX REPLACE "(.*)(/[^/]*)$" "\\1" SRCGR ${SRCGR})
|
||||
# do not have any ../ dirs
|
||||
string(REPLACE "../" "" SRCGR ${SRCGR})
|
||||
# Source_group expects \\ (double antislash), not / (slash)
|
||||
string(REPLACE / \\ SRCGR ${SRCGR})
|
||||
#STRING(REPLACE "//" "/" SRCGR ${SRCGR})
|
||||
#message(STATUS "FILE: ${f} -> ${SRCGR}")
|
||||
source_group("${SRCGR}" FILES ${f})
|
||||
endforeach()
|
||||
endmacro()
|
||||
|
||||
# creates a proper filter for VS
|
||||
macro(generateFiltersSpecial relDir)
|
||||
foreach(f ${${PROJECT_NAME}_files})
|
||||
# Get the path of the file relative to ${DIRECTORY},
|
||||
# then alter it (not compulsory)
|
||||
file(RELATIVE_PATH SRCGR ${relDir} ${f})
|
||||
set(SRCGR "torque3d/${SRCGR}")
|
||||
# Extract the folder, ie remove the filename part
|
||||
string(REGEX REPLACE "(.*)(/[^/]*)$" "\\1" SRCGR ${SRCGR})
|
||||
# do not have any ../ dirs
|
||||
string(REPLACE "../" "" SRCGR ${SRCGR})
|
||||
IF("${SRCGR}" MATCHES "^torque3d/My Projects/.*$")
|
||||
string(REPLACE "torque3d/My Projects/${PROJECT_NAME}/" "" SRCGR ${SRCGR})
|
||||
string(REPLACE "/source" "" SRCGR ${SRCGR})
|
||||
endif()
|
||||
# Source_group expects \\ (double antislash), not / (slash)
|
||||
string(REPLACE / \\ SRCGR ${SRCGR})
|
||||
#STRING(REPLACE "//" "/" SRCGR ${SRCGR})
|
||||
IF(EXISTS "${f}" AND NOT IS_DIRECTORY "${f}")
|
||||
#message(STATUS "FILE: ${f} -> ${SRCGR}")
|
||||
source_group("${SRCGR}" FILES ${f})
|
||||
endif()
|
||||
endforeach()
|
||||
endmacro()
|
||||
|
||||
# macro to add a static library
|
||||
macro(finishLibrary)
|
||||
# more paths?
|
||||
if(${ARGC} GREATER 0)
|
||||
foreach(dir ${ARGV0})
|
||||
addPath("${dir}")
|
||||
endforeach()
|
||||
endif()
|
||||
# now inspect the paths we got
|
||||
set(firstDir "")
|
||||
foreach(dir ${${PROJECT_NAME}_paths})
|
||||
if("${firstDir}" STREQUAL "")
|
||||
set(firstDir "${dir}")
|
||||
endif()
|
||||
endforeach()
|
||||
generateFilters("${firstDir}")
|
||||
|
||||
# set per target compile flags
|
||||
if(TORQUE_CXX_FLAGS_${PROJECT_NAME})
|
||||
set_source_files_properties(${${PROJECT_NAME}_files} PROPERTIES COMPILE_FLAGS "${TORQUE_CXX_FLAGS_${PROJECT_NAME}}")
|
||||
else()
|
||||
set_source_files_properties(${${PROJECT_NAME}_files} PROPERTIES COMPILE_FLAGS "${TORQUE_CXX_FLAGS_LIBS}")
|
||||
endif()
|
||||
|
||||
if(TORQUE_STATIC)
|
||||
add_library("${PROJECT_NAME}" STATIC ${${PROJECT_NAME}_files})
|
||||
else()
|
||||
add_library("${PROJECT_NAME}" SHARED ${${PROJECT_NAME}_files})
|
||||
endif()
|
||||
|
||||
target_compile_features(${PROJECT_NAME} PRIVATE cxx_std_11)
|
||||
|
||||
# omg - only use the first folder ... otherwise we get lots of header name collisions
|
||||
#foreach(dir ${${PROJECT_NAME}_paths})
|
||||
addInclude("${firstDir}")
|
||||
#endforeach()
|
||||
|
||||
_postTargetProcess()
|
||||
|
||||
#set the folder property name
|
||||
set_target_properties(${PROJECT_NAME} PROPERTIES FOLDER ${TORQUE_LIBS_FOLDER_NAME})
|
||||
endmacro()
|
||||
|
||||
# macro to add an executable
|
||||
macro(finishExecutable)
|
||||
# now inspect the paths we got
|
||||
set(firstDir "")
|
||||
foreach(dir ${${PROJECT_NAME}_paths})
|
||||
if("${firstDir}" STREQUAL "")
|
||||
set(firstDir "${dir}")
|
||||
endif()
|
||||
endforeach()
|
||||
generateFiltersSpecial("${firstDir}")
|
||||
|
||||
# set per target compile flags
|
||||
if(TORQUE_CXX_FLAGS_${PROJECT_NAME})
|
||||
set_source_files_properties(${${PROJECT_NAME}_files} PROPERTIES COMPILE_FLAGS "${TORQUE_CXX_FLAGS_${PROJECT_NAME}}")
|
||||
else()
|
||||
set_source_files_properties(${${PROJECT_NAME}_files} PROPERTIES COMPILE_FLAGS "${TORQUE_CXX_FLAGS_EXECUTABLES}")
|
||||
endif()
|
||||
|
||||
if (APPLE)
|
||||
set(ICON_FILE "${projectSrcDir}/torque.icns")
|
||||
set_source_files_properties(${ICON_FILE} PROPERTIES MACOSX_PACKAGE_LOCATION "Resources")
|
||||
add_executable("${PROJECT_NAME}" MACOSX_BUNDLE ${ICON_FILE} ${${PROJECT_NAME}_files})
|
||||
else()
|
||||
add_executable("${PROJECT_NAME}" WIN32 ${${PROJECT_NAME}_files})
|
||||
endif()
|
||||
|
||||
# Torque requires c++20
|
||||
target_compile_features(${PROJECT_NAME} PRIVATE cxx_std_20)
|
||||
|
||||
addInclude("${firstDir}")
|
||||
|
||||
_postTargetProcess()
|
||||
endmacro()
|
||||
|
||||
macro(setupVersionNumbers)
|
||||
set(TORQUE_APP_VERSION_MAJOR 1 CACHE STRING "")
|
||||
set(TORQUE_APP_VERSION_MINOR 0 CACHE STRING "")
|
||||
set(TORQUE_APP_VERSION_PATCH 0 CACHE STRING "")
|
||||
set(TORQUE_APP_VERSION_TWEAK 0 CACHE STRING "")
|
||||
|
||||
mark_as_advanced(TORQUE_APP_VERSION_TWEAK)
|
||||
MATH(EXPR TORQUE_APP_VERSION "${TORQUE_APP_VERSION_MAJOR} * 1000 + ${TORQUE_APP_VERSION_MINOR} * 100 + ${TORQUE_APP_VERSION_PATCH} * 10 + ${TORQUE_APP_VERSION_TWEAK}")
|
||||
set(TORQUE_APP_VERSION_STRING "${TORQUE_APP_VERSION_MAJOR}.${TORQUE_APP_VERSION_MINOR}.${TORQUE_APP_VERSION_PATCH}.${TORQUE_APP_VERSION_TWEAK}")
|
||||
#message(STATUS "version numbers: ${TORQUE_APP_VERSION} / ${TORQUE_APP_VERSION_STRING}")
|
||||
endmacro()
|
||||
|
||||
macro(setupPackaging)
|
||||
INCLUDE(CPack)
|
||||
# only enable zips for now
|
||||
set(CPACK_BINARY_NSIS OFF CACHE INTERNAL "" FORCE)
|
||||
set(CPACK_BINARY_ZIP ON CACHE INTERNAL "" FORCE)
|
||||
set(CPACK_SOURCE_ZIP OFF CACHE INTERNAL "" FORCE)
|
||||
SET(CPACK_GENERATOR "ZIP")
|
||||
SET(CPACK_PACKAGE_VENDOR "${PROJECT_NAME}")
|
||||
SET(CPACK_PACKAGE_DESCRIPTION_SUMMARY "${PROJECT_NAME}")
|
||||
SET(CPACK_INCLUDE_TOPLEVEL_DIRECTORY 1)
|
||||
SET(CPACK_OUTPUT_FILE_PREFIX "${TORQUE_APP_DIR}/packages/${PROJECT_NAME}")
|
||||
SET(CPACK_PACKAGE_INSTALL_DIRECTORY "")
|
||||
#SET(CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_CURRENT_SOURCE_DIR}/ReadMe.txt")
|
||||
#SET(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/Copyright.txt")
|
||||
SET(CPACK_PACKAGE_VERSION_MAJOR "${TORQUE_APP_VERSION_MAJOR}")
|
||||
SET(CPACK_PACKAGE_VERSION_MINOR "${TORQUE_APP_VERSION_MINOR}")
|
||||
SET(CPACK_PACKAGE_VERSION_PATCH "${TORQUE_APP_VERSION_PATCH}")
|
||||
#SET(CPACK_PACKAGE_EXECUTABLES "${PROJECT_NAME}" "${PROJECT_NAME}")
|
||||
SET(CPACK_SOURCE_PACKAGE_FILE_NAME "${PROJECT_NAME}-${TORQUE_APP_VERSION_STRING}")
|
||||
#SET(CPACK_SOURCE_STRIP_FILES "")
|
||||
endmacro()
|
||||
# always static for now
|
||||
set(TORQUE_STATIC ON)
|
||||
#option(TORQUE_STATIC "enables or disable static" OFF)
|
||||
function(installTemplate templateName)
|
||||
message("Prepare Template(${templateName}) install...")
|
||||
|
||||
if(WIN32)
|
||||
set(TORQUE_CXX_FLAGS_EXECUTABLES "/wd4018 /wd4100 /wd4121 /wd4127 /wd4130 /wd4244 /wd4245 /wd4389 /wd4511 /wd4512 /wd4800 /wd4995 " CACHE STRING "")
|
||||
mark_as_advanced(TORQUE_CXX_FLAGS_EXECUTABLES)
|
||||
add_subdirectory("${CMAKE_SOURCE_DIR}/Templates/${templateName}")
|
||||
endfunction()
|
||||
|
||||
set(TORQUE_CXX_FLAGS_LIBS "/W0" CACHE STRING "")
|
||||
mark_as_advanced(TORQUE_CXX_FLAGS_LIBS)
|
||||
|
||||
set(TORQUE_CXX_FLAGS_COMMON_DEFAULT "-DUNICODE -D_UNICODE -D_CRT_SECURE_NO_WARNINGS /MP /O2 /Ob2 /Oi /Ot /Oy /GT /Zi /W4 /nologo /GF /EHsc /GS- /Gy- /Qpar- /fp:precise /fp:except- /GR /Zc:wchar_t-" )
|
||||
if( TORQUE_CPU_X32 )
|
||||
set(TORQUE_CXX_FLAGS_COMMON_DEFAULT "${TORQUE_CXX_FLAGS_COMMON_DEFAULT} /arch:SSE2")
|
||||
endif()
|
||||
set(TORQUE_CXX_FLAGS_COMMON ${TORQUE_CXX_FLAGS_COMMON_DEFAULT} CACHE STRING "")
|
||||
|
||||
mark_as_advanced(TORQUE_CXX_FLAGS_COMMON)
|
||||
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${TORQUE_CXX_FLAGS_COMMON}")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${CMAKE_CXX_FLAGS}")
|
||||
set(CMAKE_EXE_LINKER_FLAGS "/LARGEADDRESSAWARE")
|
||||
#set(STATIC_LIBRARY_FLAGS "/OPT:NOREF")
|
||||
|
||||
# Force static runtime libraries
|
||||
if(TORQUE_STATIC)
|
||||
FOREACH(flag
|
||||
CMAKE_C_FLAGS_RELEASE
|
||||
CMAKE_C_FLAGS_RELWITHDEBINFO
|
||||
CMAKE_C_FLAGS_DEBUG
|
||||
CMAKE_C_FLAGS_DEBUG_INIT
|
||||
CMAKE_CXX_FLAGS_RELEASE
|
||||
CMAKE_CXX_FLAGS_RELWITHDEBINFO
|
||||
CMAKE_CXX_FLAGS_DEBUG
|
||||
CMAKE_CXX_FLAGS_DEBUG_INIT)
|
||||
STRING(REPLACE "/MD" "/MT" "${flag}" "${${flag}}")
|
||||
SET("${flag}" "${${flag}} /EHsc")
|
||||
ENDFOREACH()
|
||||
endif()
|
||||
else()
|
||||
if(${CMAKE_VERSION} VERSION_LESS "3.16.0")
|
||||
macro(CHECK_OBJC_SOURCE_COMPILES SOURCE VAR)
|
||||
set(PREV_REQUIRED_DEFS "${CMAKE_REQUIRED_DEFINITIONS}")
|
||||
set(CMAKE_REQUIRED_DEFINITIONS "-x objective-c ${PREV_REQUIRED_DEFS}")
|
||||
CHECK_C_SOURCE_COMPILES(${SOURCE} ${VAR})
|
||||
set(CMAKE_REQUIRED_DEFINITIONS "${PREV_REQUIRED_DEFS}")
|
||||
endmacro()
|
||||
else()
|
||||
include(CheckOBJCSourceCompiles)
|
||||
if (APPLE)
|
||||
enable_language(OBJC)
|
||||
endif()
|
||||
endif()
|
||||
# TODO: improve default settings on other platforms
|
||||
set(TORQUE_CXX_FLAGS_EXECUTABLES "" CACHE STRING "")
|
||||
mark_as_advanced(TORQUE_CXX_FLAGS_EXECUTABLES)
|
||||
set(TORQUE_CXX_FLAGS_LIBS "" CACHE STRING "")
|
||||
mark_as_advanced(TORQUE_CXX_FLAGS_LIBS)
|
||||
set(TORQUE_CXX_FLAGS_COMMON "" CACHE STRING "")
|
||||
mark_as_advanced(TORQUE_CXX_FLAGS)
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${TORQUE_CXX_FLAGS}")
|
||||
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}")
|
||||
SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE "${projectOutDir}")
|
||||
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY_RELEASE "${projectOutDir}")
|
||||
endif()
|
||||
|
||||
# fix the debug/release subfolders on windows
|
||||
if(MSVC)
|
||||
SET("CMAKE_RUNTIME_OUTPUT_DIRECTORY" "${projectOutDir}")
|
||||
FOREACH(CONF ${CMAKE_CONFIGURATION_TYPES})
|
||||
# Go uppercase (DEBUG, RELEASE...)
|
||||
STRING(TOUPPER "${CONF}" CONF)
|
||||
#SET("CMAKE_ARCHIVE_OUTPUT_DIRECTORY_${CONF}" "${projectOutDir}")
|
||||
SET("CMAKE_RUNTIME_OUTPUT_DIRECTORY_${CONF}" "${projectOutDir}")
|
||||
ENDFOREACH()
|
||||
endif()
|
||||
MACRO(SUBDIRLIST result curdir)
|
||||
FILE(GLOB children RELATIVE ${curdir} ${curdir}/*)
|
||||
SET(dirlist "")
|
||||
FOREACH(child ${children})
|
||||
IF(IS_DIRECTORY ${curdir}/${child})
|
||||
LIST(APPEND dirlist ${child})
|
||||
ENDIF()
|
||||
ENDFOREACH()
|
||||
SET(${result} ${dirlist})
|
||||
ENDMACRO()
|
||||
|
|
|
|||
12
Tools/CMake/modules/afx.cmake
Normal file
12
Tools/CMake/modules/afx.cmake
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
# AFX Module
|
||||
option(TORQUE_AFX_ENABLED "Enable AFX module" ON)
|
||||
|
||||
if(TORQUE_AFX_ENABLED)
|
||||
message("Enabling AFX Module")
|
||||
|
||||
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_AFX_SOURCES})
|
||||
set(TORQUE_COMPILE_DEFINITIONS ${TORQUE_COMPILE_DEFINITIONS} TORQUE_AFX_ENABLED)
|
||||
|
||||
source_group("Modules/AFX" ${TORQUE_AFX_SOURCES})
|
||||
endif()
|
||||
19
Tools/CMake/modules/bullet.cmake
Normal file
19
Tools/CMake/modules/bullet.cmake
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
# Bullet module
|
||||
option(TORQUE_PHYSICS_BULLET "Use Bullet physics" OFF)
|
||||
|
||||
if(TORQUE_PHYSICS_BULLET)
|
||||
message("Enabling Bullet Module")
|
||||
|
||||
torqueAddSourceDirectories("${CMAKE_SOURCE_DIR}/Engine/source/T3D/physics/bullet")
|
||||
set(TORQUE_LINK_LIBRARIES ${TORQUE_LINK_LIBRARIES} BulletSoftBody Bullet3Dynamics BulletInverseDynamics BulletCollision
|
||||
Bullet2FileLoader BulletDynamics Bullet3OpenCL_clew Bullet3Common
|
||||
LinearMath Bullet3Geometry Bullet3Collision)
|
||||
set(TORQUE_COMPILE_DEFINITIONS ${TORQUE_COMPILE_DEFINITIONS} TORQUE_PHYSICS_BULLET TORQUE_PHYSICS_ENABLED)
|
||||
set(TORQUE_INCLUDE_DIRECTORIES ${TORQUE_INCLUDE_DIRECTORIES} "${CMAKE_SOURCE_DIR}/Engine/lib/bullet/src" )
|
||||
|
||||
# Since Bullet lives elsewhere we need to ensure it is known to Torque when providing a link to it
|
||||
set(BUILD_SHARED_LIBS OFF CACHE BOOL "Bullet Shared Libs" FORCE)
|
||||
set(BUILD_CPU_DEMOS OFF CACHE BOOL "Bullet CPU Demos" FORCE)
|
||||
set(BUILD_BULLET2_DEMOS OFF CACHE BOOL "Bullet2 Demos" FORCE)
|
||||
add_subdirectory("${CMAKE_SOURCE_DIR}/Engine/lib/bullet" ${CMAKE_BINARY_DIR}/temp/bullet EXCLUDE_FROM_ALL)
|
||||
endif(TORQUE_PHYSICS_BULLET)
|
||||
8
Tools/CMake/modules/dsound.cmake
Normal file
8
Tools/CMake/modules/dsound.cmake
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
# OpenAL module
|
||||
option(TORQUE_SFX_DIRECTX "Use DirectSound SFX" OFF)
|
||||
|
||||
if(TORQUE_SFX_DIRECTX AND WIN32)
|
||||
message("Enabling DirectSound Module")
|
||||
|
||||
torqueAddSourceDirectories("${CMAKE_SOURCE_DIR}/Engine/source/sfx/dsound" "${CMAKE_SOURCE_DIR}/Engine/source/sfx/xaudio")
|
||||
endif(TORQUE_SFX_DIRECTX AND WIN32)
|
||||
|
|
@ -1,26 +0,0 @@
|
|||
# -----------------------------------------------------------------------------
|
||||
# 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.
|
||||
# -----------------------------------------------------------------------------
|
||||
|
||||
option(TORQUE_AFX_ENABLED "Enable AFX module" ON)
|
||||
if(TORQUE_AFX_ENABLED)
|
||||
addPathRec( "${srcDir}/afx" )
|
||||
endif()
|
||||
|
|
@ -1,37 +0,0 @@
|
|||
# -----------------------------------------------------------------------------
|
||||
# Copyright (c) 2015 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.
|
||||
# -----------------------------------------------------------------------------
|
||||
|
||||
# Bullet module
|
||||
|
||||
option(TORQUE_PHYSICS_BULLET "Use Bullet physics" OFF)
|
||||
|
||||
if( NOT TORQUE_PHYSICS_BULLET )
|
||||
return()
|
||||
endif()
|
||||
|
||||
addDef( "TORQUE_PHYSICS_BULLET" )
|
||||
addDef( "TORQUE_PHYSICS_ENABLED" )
|
||||
|
||||
addPath( "${srcDir}/T3D/physics/bullet" )
|
||||
addInclude( "${libDir}/bullet/src" )
|
||||
|
||||
addLib( "libbullet" )
|
||||
|
|
@ -1,52 +0,0 @@
|
|||
# -----------------------------------------------------------------------------
|
||||
# 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.
|
||||
# -----------------------------------------------------------------------------
|
||||
|
||||
# module Hydra
|
||||
|
||||
option(TORQUE_HYDRA "Enable HYDRA module" OFF)
|
||||
mark_as_advanced(TORQUE_HYDRA)
|
||||
if(TORQUE_HYDRA)
|
||||
if(TORQUE_HYDRA_SDK_PATH STREQUAL "")
|
||||
set(TORQUE_HYDRA_SDK_PATH "" CACHE PATH "HYDRA library path" FORCE)
|
||||
endif()
|
||||
else() # hide variable
|
||||
set(TORQUE_HYDRA_SDK_PATH "" CACHE INTERNAL "" FORCE)
|
||||
endif()
|
||||
|
||||
if(TORQUE_HYDRA)
|
||||
# Source
|
||||
addPathRec( "${srcDir}/platform/input/razerHydra" )
|
||||
|
||||
# Includes
|
||||
addInclude( "${TORQUE_RAZERHYDRA_SDK_PATH}/include" )
|
||||
|
||||
# Install
|
||||
if( WIN32 )
|
||||
# File Copy for Release
|
||||
INSTALL(FILES "${TORQUE_RAZERHYDRA_SDK_PATH}/bin/win32/release_dll/sixense.dll" DESTINATION "${projectOutDir}")
|
||||
|
||||
# File Copy for Debug
|
||||
INSTALL(FILES "${TORQUE_RAZERHYDRA_SDK_PATH}/bin/win32/debug_dll/sixensed.dll" DESTINATION "${projectOutDir}" CONFIGURATIONS "Debug" )
|
||||
# Only needed by the debug sixense library
|
||||
INSTALL(FILES "${TORQUE_RAZERHYDRA_SDK_PATH}/samples/win32/sixense_simple3d/DeviceDLL.dll" DESTINATION "${projectOutDir}" CONFIGURATIONS "Debug" )
|
||||
endif()
|
||||
endif()
|
||||
|
|
@ -1,39 +0,0 @@
|
|||
# -----------------------------------------------------------------------------
|
||||
# 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.
|
||||
# -----------------------------------------------------------------------------
|
||||
|
||||
# Navigation module
|
||||
option(TORQUE_NAVIGATION "Enable Navigation module" ON)
|
||||
|
||||
if(TORQUE_NAVIGATION)
|
||||
addDef( "TORQUE_NAVIGATION_ENABLED" )
|
||||
addLib( "recast" )
|
||||
|
||||
# files
|
||||
addPathRec( "${srcDir}/navigation" )
|
||||
|
||||
# include paths
|
||||
addInclude( "${libDir}/recast/DebugUtils/Include" )
|
||||
addInclude( "${libDir}/recast/Recast/Include" )
|
||||
addInclude( "${libDir}/recast/Detour/Include" )
|
||||
addInclude( "${libDir}/recast/DetourTileCache/Include" )
|
||||
addInclude( "${libDir}/recast/DetourCrowd/Include" )
|
||||
endif(TORQUE_NAVIGATION)
|
||||
|
|
@ -1,49 +0,0 @@
|
|||
# -----------------------------------------------------------------------------
|
||||
# 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.
|
||||
# -----------------------------------------------------------------------------
|
||||
|
||||
# module OculusVR
|
||||
|
||||
option(TORQUE_OCULUSVR "Enable OCULUSVR module" OFF)
|
||||
mark_as_advanced(TORQUE_OCULUSVR)
|
||||
if(TORQUE_OCULUSVR)
|
||||
if(TORQUE_OCULUSVR_SDK_PATH STREQUAL "")
|
||||
set(TORQUE_OCULUSVR_SDK_PATH "" CACHE PATH "OCULUSVR library path" FORCE)
|
||||
endif()
|
||||
else() # hide variable
|
||||
set(TORQUE_OCULUSVR_SDK_PATH "" CACHE INTERNAL "" FORCE)
|
||||
endif()
|
||||
|
||||
if(TORQUE_OCULUSVR)
|
||||
# Source
|
||||
addPathRec( "${srcDir}/platform/input/oculusVR" )
|
||||
|
||||
# Includes
|
||||
addInclude( "${TORQUE_OCULUSVR_SDK_PATH}/LibOVR/Include" )
|
||||
addInclude( "${TORQUE_OCULUSVR_SDK_PATH}/LibOVR/Src" )
|
||||
|
||||
# Libs
|
||||
if( WIN32 )
|
||||
link_directories( "${TORQUE_OCULUSVR_SDK_PATH}/LibOVR/Lib/Win32" )
|
||||
addLib( "libovr" )
|
||||
addLib( "libovrd" )
|
||||
endif()
|
||||
endif()
|
||||
|
|
@ -1,32 +0,0 @@
|
|||
|
||||
# module openvr
|
||||
|
||||
option(TORQUE_OPENVR "Enable openvr module" OFF)
|
||||
mark_as_advanced(TORQUE_OPENVR)
|
||||
if(TORQUE_OPENVR)
|
||||
if(TORQUE_OPENVR_SDK_PATH STREQUAL "")
|
||||
set(TORQUE_OPENVR_SDK_PATH "" CACHE PATH "openvr library path" FORCE)
|
||||
endif()
|
||||
else() # hide variable
|
||||
set(TORQUE_OPENVR_SDK_PATH "" CACHE INTERNAL "" FORCE)
|
||||
endif()
|
||||
|
||||
if(TORQUE_OPENVR)
|
||||
# Source
|
||||
addPathRec( "${srcDir}/platform/input/openvr" )
|
||||
|
||||
# Includes
|
||||
addInclude( "${TORQUE_OPENVR_SDK_PATH}/headers" )
|
||||
|
||||
# Libs
|
||||
if( WIN32 )
|
||||
if( TORQUE_CPU_X64 )
|
||||
link_directories( "${TORQUE_OPENVR_SDK_PATH}/lib/win64" )
|
||||
else()
|
||||
link_directories( "${TORQUE_OPENVR_SDK_PATH}/lib/win32" )
|
||||
endif()
|
||||
addLib( "openvr_api" )
|
||||
endif()
|
||||
|
||||
addDef(TORQUE_OPENVR)
|
||||
endif()
|
||||
|
|
@ -1,284 +0,0 @@
|
|||
# -----------------------------------------------------------------------------
|
||||
# Copyright (c) 2017 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.
|
||||
# -----------------------------------------------------------------------------
|
||||
|
||||
# module Physx 3.4
|
||||
|
||||
#do note the inconsistent upper/lower case nvidia use for directory names in physx
|
||||
|
||||
option(TORQUE_PHYSICS_PHYSX3 "Use PhysX 3.4 physics" OFF)
|
||||
|
||||
if( NOT TORQUE_PHYSICS_PHYSX3 )
|
||||
return()
|
||||
endif()
|
||||
|
||||
if("${PHYSX3_BASE_PATH}" STREQUAL "")
|
||||
set(PHYSX3_BASE_PATH "" CACHE PATH "PhysX 3.4 path" FORCE)
|
||||
endif()
|
||||
|
||||
#still no path we can't go any further
|
||||
if("${PHYSX3_BASE_PATH}" STREQUAL "")
|
||||
message(FATAL_ERROR "No PhysX path selected")
|
||||
return()
|
||||
endif()
|
||||
|
||||
#set physx path
|
||||
set(PHYSX3_PATH "${PHYSX3_BASE_PATH}/PhysX_3.4")
|
||||
|
||||
# Windows/ Visual Studio
|
||||
if(MSVC)
|
||||
if(TORQUE_CPU_X32)
|
||||
if(MSVC_VERSION EQUAL 1800 )
|
||||
set(PHYSX3_LIBPATH_PREFIX vc12win32)
|
||||
elseif(MSVC_VERSION EQUAL 1900)
|
||||
set(PHYSX3_LIBPATH_PREFIX vc14win32)
|
||||
elseif(MSVC_VERSION GREATER_EQUAL 1910)
|
||||
set(PHYSX3_LIBPATH_PREFIX vc15win32)
|
||||
else()
|
||||
message(FATAL_ERROR "This version of VS is not supported")
|
||||
return()
|
||||
endif()
|
||||
set(PHYSX3_LIBNAME_POSTFIX _x86)
|
||||
|
||||
elseif(TORQUE_CPU_X64)
|
||||
if(MSVC_VERSION EQUAL 1800 )
|
||||
set(PHYSX3_LIBPATH_PREFIX vc12win64)
|
||||
elseif(MSVC_VERSION EQUAL 1900)
|
||||
set(PHYSX3_LIBPATH_PREFIX vc14win64)
|
||||
elseif(MSVC_VERSION GREATER_EQUAL 1910)
|
||||
set(PHYSX3_LIBPATH_PREFIX vc15win64)
|
||||
else()
|
||||
message(FATAL_ERROR "This version of VS is not supported")
|
||||
return()
|
||||
endif()
|
||||
set(PHYSX3_LIBNAME_POSTFIX _x64)
|
||||
|
||||
endif()
|
||||
endif()
|
||||
|
||||
# Only suport 64bit on macOS and linux
|
||||
if(APPLE)
|
||||
set(PHYSX3_LIBPATH_PREFIX osx64)
|
||||
set(PHYSX3_LIBNAME_POSTFIX _x64)
|
||||
elseif(UNIX)
|
||||
set(PHYSX3_LIBPATH_PREFIX linux64)
|
||||
set(PHYSX3_LIBNAME_POSTFIX _x64)
|
||||
endif()
|
||||
|
||||
MACRO(FIND_PHYSX3_LIBRARY VARNAME LIBNAME WITHPOSTFIX SEARCHDIR)
|
||||
|
||||
set(LIBPOSTFIX "")
|
||||
if(${WITHPOSTFIX})
|
||||
set(LIBPOSTFIX ${PHYSX3_LIBNAME_POSTFIX})
|
||||
endif(${WITHPOSTFIX})
|
||||
#release
|
||||
find_library(PHYSX3_${VARNAME}_LIBRARY NAMES ${LIBNAME}${LIBPOSTFIX} PATHS ${SEARCHDIR}${PHYSX3_LIBPATH_PREFIX})
|
||||
#debug
|
||||
find_library(PHYSX3_${VARNAME}_LIBRARY_DEBUG NAMES ${LIBNAME}DEBUG${LIBPOSTFIX} PATHS ${SEARCHDIR}${PHYSX3_LIBPATH_PREFIX})
|
||||
|
||||
ENDMACRO()
|
||||
|
||||
# Find the Libs
|
||||
if( WIN32 )
|
||||
FIND_PHYSX3_LIBRARY(CORE PhysX3 1 ${PHYSX3_PATH}/Lib/)
|
||||
FIND_PHYSX3_LIBRARY(COMMON PhysX3Common 1 ${PHYSX3_PATH}/Lib/)
|
||||
FIND_PHYSX3_LIBRARY(COOKING PhysX3Cooking 1 ${PHYSX3_PATH}/Lib/)
|
||||
FIND_PHYSX3_LIBRARY(CHARACTER PhysX3CharacterKinematic 1 ${PHYSX3_PATH}/Lib/)
|
||||
FIND_PHYSX3_LIBRARY(EXTENSIONS PhysX3Extensions 0 ${PHYSX3_PATH}/Lib/)
|
||||
FIND_PHYSX3_LIBRARY(TASK PxTask 1 ${PHYSX3_BASE_PATH}/PxShared/Lib/)
|
||||
FIND_PHYSX3_LIBRARY(FOUNDATION PxFoundation 1 ${PHYSX3_BASE_PATH}/PxShared/Lib/)
|
||||
FIND_PHYSX3_LIBRARY(PVD PxPvdSDK 1 ${PHYSX3_BASE_PATH}/PxShared/Lib/)
|
||||
|
||||
if(NOT PHYSX3_CORE_LIBRARY)
|
||||
message(FATAL_ERROR "Could not find core PhysX lib")
|
||||
return()
|
||||
endif()
|
||||
|
||||
#Add the libs
|
||||
set(PHYSX_LIBRARIES
|
||||
${PHYSX3_CORE_LIBRARY}
|
||||
${PHYSX3_COMMON_LIBRARY}
|
||||
${PHYSX3_EXTENSIONS_LIBRARY}
|
||||
${PHYSX3_COOKING_LIBRARY}
|
||||
${PHYSX3_CHARACTER_LIBRARY}
|
||||
${PHYSX3_TASK_LIBRARY}
|
||||
${PHYSX3_PVD_LIBRARY}
|
||||
${PHYSX3_FOUNDATION_LIBRARY}
|
||||
)
|
||||
|
||||
set(PHYSX_LIBRARIES_DEBUG
|
||||
${PHYSX3_CORE_LIBRARY_DEBUG}
|
||||
${PHYSX3_COMMON_LIBRARY_DEBUG}
|
||||
${PHYSX3_EXTENSIONS_LIBRARY_DEBUG}
|
||||
${PHYSX3_COOKING_LIBRARY_DEBUG}
|
||||
${PHYSX3_CHARACTER_LIBRARY_DEBUG}
|
||||
${PHYSX3_TASK_LIBRARY_DEBUG}
|
||||
${PHYSX3_PVD_LIBRARY_DEBUG}
|
||||
${PHYSX3_FOUNDATION_LIBRARY_DEBUG}
|
||||
)
|
||||
#macOS & linux
|
||||
elseif(UNIX)
|
||||
#common
|
||||
FIND_PHYSX3_LIBRARY(EXTENSIONS PhysX3Extensions 0 ${PHYSX3_PATH}/Lib/)
|
||||
FIND_PHYSX3_LIBRARY(CONTROLLER SimulationController 0 ${PHYSX3_PATH}/Lib/)
|
||||
FIND_PHYSX3_LIBRARY(SCENEQUERY SceneQuery 0 ${PHYSX3_PATH}/Lib/)
|
||||
FIND_PHYSX3_LIBRARY(LOWLEVEL LowLevel 0 ${PHYSX3_PATH}/Lib/)
|
||||
FIND_PHYSX3_LIBRARY(LOWLEVEL_DYNAMICS LowLevelDynamics 0 ${PHYSX3_PATH}/Lib/)
|
||||
FIND_PHYSX3_LIBRARY(LOWLEVEL_AABB LowLevelAABB 0 ${PHYSX3_PATH}/Lib/)
|
||||
FIND_PHYSX3_LIBRARY(LOWLEVEL_CLOTH LowLevelCloth 0 ${PHYSX3_PATH}/Lib/)
|
||||
FIND_PHYSX3_LIBRARY(LOWLEVEL_PARTICLES LowLevelParticles 0 ${PHYSX3_PATH}/Lib/)
|
||||
FIND_PHYSX3_LIBRARY(TASK PxTask 0 ${PHYSX3_BASE_PATH}/PxShared/lib/)
|
||||
#platform dependent
|
||||
if(APPLE)
|
||||
FIND_PHYSX3_LIBRARY(CORE PhysX3 0 ${PHYSX3_PATH}/Lib/)
|
||||
FIND_PHYSX3_LIBRARY(COMMON PhysX3Common 0 ${PHYSX3_PATH}/Lib/)
|
||||
FIND_PHYSX3_LIBRARY(COOKING PhysX3Cooking 0 ${PHYSX3_PATH}/Lib/)
|
||||
FIND_PHYSX3_LIBRARY(CHARACTER PhysX3CharacterKinematic 0 ${PHYSX3_PATH}/Lib/)
|
||||
FIND_PHYSX3_LIBRARY(FOUNDATION PxFoundation 0 ${PHYSX3_BASE_PATH}/PxShared/lib/)
|
||||
FIND_PHYSX3_LIBRARY(PVD PxPvdSDK 0 ${PHYSX3_BASE_PATH}/PxShared/lib/)
|
||||
else() #linux
|
||||
FIND_PHYSX3_LIBRARY(CORE PhysX3 1 ${PHYSX3_PATH}/Bin/)
|
||||
FIND_PHYSX3_LIBRARY(COMMON PhysX3Common 1 ${PHYSX3_PATH}/Bin/)
|
||||
FIND_PHYSX3_LIBRARY(GPU PhysX3Gpu 1 ${PHYSX3_PATH}/Bin/)
|
||||
FIND_PHYSX3_LIBRARY(CHARACTER PhysX3CharacterKinematic 1 ${PHYSX3_PATH}/Bin/)
|
||||
FIND_PHYSX3_LIBRARY(COOKING PhysX3Cooking 1 ${PHYSX3_PATH}/Bin/)
|
||||
FIND_PHYSX3_LIBRARY(FOUNDATION PxFoundation 1 ${PHYSX3_BASE_PATH}/PxShared/bin/)
|
||||
FIND_PHYSX3_LIBRARY(PVD PxPvdSDK 1 ${PHYSX3_BASE_PATH}/PxShared/bin/)
|
||||
FIND_PHYSX3_LIBRARY(XML PsFastXml 0 ${PHYSX3_BASE_PATH}/PxShared/lib/)
|
||||
endif()
|
||||
|
||||
if(NOT PHYSX3_CORE_LIBRARY)
|
||||
message(FATAL_ERROR "Could not find core PhysX lib")
|
||||
return()
|
||||
endif()
|
||||
|
||||
#Add the libs
|
||||
set(PHYSX_LIBRARIES
|
||||
${PHYSX3_CORE_LIBRARY}
|
||||
${PHYSX3_CHARACTER_LIBRARY}
|
||||
${PHYSX3_COOKING_LIBRARY}
|
||||
${PHYSX3_COMMON_LIBRARY}
|
||||
${PHYSX3_GPU_LIBRARY}
|
||||
${PHYSX3_EXTENSIONS_LIBRARY}
|
||||
${PHYSX3_CONTROLLER_LIBRARY}
|
||||
${PHYSX3_SCENEQUERY_LIBRARY}
|
||||
${PHYSX3_LOWLEVEL_LIBRARY}
|
||||
${PHYSX3_LOWLEVEL_AABB_LIBRARY}
|
||||
${PHYSX3_LOWLEVEL_DYNAMICS_LIBRARY}
|
||||
${PHYSX3_LOWLEVEL_CLOTH_LIBRARY}
|
||||
${PHYSX3_LOWLEVEL_PARTICLES_LIBRARY}
|
||||
${PHYSX3_TASK_LIBRARY}
|
||||
${PHYSX3_XML_LIBRARY}
|
||||
${PHYSX3_FOUNDATION_LIBRARY}
|
||||
${PHYSX3_PVD_LIBRARY}
|
||||
)
|
||||
|
||||
set(PHYSX_LIBRARIES_DEBUG
|
||||
${PHYSX3_CORE_LIBRARY_DEBUG}
|
||||
${PHYSX3_CHARACTER_LIBRARY_DEBUG}
|
||||
${PHYSX3_COOKING_LIBRARY_DEBUG}
|
||||
${PHYSX3_COMMON_LIBRARY_DEBUG}
|
||||
${PHYSX3_GPU_LIBRARY_DEBUG}
|
||||
${PHYSX3_EXTENSIONS_LIBRARY_DEBUG}
|
||||
${PHYSX3_CONTROLLER_LIBRARY_DEBUG}
|
||||
${PHYSX3_SCENEQUERY_LIBRARY_DEBUG}
|
||||
${PHYSX3_LOWLEVEL_LIBRARY_DEBUG}
|
||||
${PHYSX3_LOWLEVEL_AABB_LIBRARY_DEBUG}
|
||||
${PHYSX3_LOWLEVEL_DYNAMICS_LIBRARY_DEBUG}
|
||||
${PHYSX3_LOWLEVEL_CLOTH_LIBRARY_DEBUG}
|
||||
${PHYSX3_LOWLEVEL_PARTICLES_LIBRARY_DEBUG}
|
||||
${PHYSX3_TASK_LIBRARY_DEBUG}
|
||||
${PHYSX3_XML_LIBRARY_DEBUG}
|
||||
${PHYSX3_FOUNDATION_LIBRARY_DEBUG}
|
||||
${PHYSX3_PVD_LIBRARY_DEBUG}
|
||||
)
|
||||
|
||||
endif()
|
||||
|
||||
# Defines
|
||||
addDef( "TORQUE_PHYSICS_PHYSX3" )
|
||||
addDef( "TORQUE_PHYSICS_ENABLED" )
|
||||
|
||||
# Source
|
||||
addPath( "${srcDir}/T3D/physics/physx3" )
|
||||
|
||||
# Includes
|
||||
addInclude( "${PHYSX3_BASE_PATH}/PxShared/include" )
|
||||
addInclude( "${PHYSX3_BASE_PATH}/PxShared/src/foundation/include" )
|
||||
addInclude( "${PHYSX3_BASE_PATH}/PxShared/src/pvd/include" )
|
||||
addInclude( "${PHYSX3_PATH}/Include" )
|
||||
|
||||
# Libs
|
||||
addLibRelease( "${PHYSX_LIBRARIES}" )
|
||||
addLibDebug( "${PHYSX_LIBRARIES_DEBUG}" )
|
||||
|
||||
#Install files
|
||||
if( WIN32 )
|
||||
# File Copy for Release
|
||||
INSTALL(FILES "${PHYSX3_PATH}/Bin/${PHYSX3_LIBPATH_PREFIX}/PhysX3${PHYSX3_LIBNAME_POSTFIX}.dll" DESTINATION "${projectOutDir}" CONFIGURATIONS Release)
|
||||
INSTALL(FILES "${PHYSX3_PATH}/Bin/${PHYSX3_LIBPATH_PREFIX}/PhysX3Gpu${PHYSX3_LIBNAME_POSTFIX}.dll" DESTINATION "${projectOutDir}" CONFIGURATIONS Release)
|
||||
INSTALL(FILES "${PHYSX3_PATH}/Bin/${PHYSX3_LIBPATH_PREFIX}/PhysX3CharacterKinematic${PHYSX3_LIBNAME_POSTFIX}.dll" DESTINATION "${projectOutDir}" CONFIGURATIONS Release)
|
||||
INSTALL(FILES "${PHYSX3_PATH}/Bin/${PHYSX3_LIBPATH_PREFIX}/PhysX3Common${PHYSX3_LIBNAME_POSTFIX}.dll" DESTINATION "${projectOutDir}" CONFIGURATIONS Release)
|
||||
INSTALL(FILES "${PHYSX3_PATH}/Bin/${PHYSX3_LIBPATH_PREFIX}/PhysX3Cooking${PHYSX3_LIBNAME_POSTFIX}.dll" DESTINATION "${projectOutDir}" CONFIGURATIONS Release)
|
||||
INSTALL(FILES "${PHYSX3_BASE_PATH}/PxShared/bin/${PHYSX3_LIBPATH_PREFIX}/PxFoundation${PHYSX3_LIBNAME_POSTFIX}.dll" DESTINATION "${projectOutDir}" CONFIGURATIONS Release)
|
||||
INSTALL(FILES "${PHYSX3_BASE_PATH}/PxShared/bin/${PHYSX3_LIBPATH_PREFIX}/PxPvdSDK${PHYSX3_LIBNAME_POSTFIX}.dll" DESTINATION "${projectOutDir}" CONFIGURATIONS Release)
|
||||
|
||||
# File Copy
|
||||
if(TORQUE_CPU_X32)
|
||||
INSTALL(FILES "${PHYSX3_PATH}/Bin/${PHYSX3_LIBPATH_PREFIX}/PhysXDevice.dll" DESTINATION "${projectOutDir}")
|
||||
INSTALL(FILES "${PHYSX3_PATH}/Bin/${PHYSX3_LIBPATH_PREFIX}/nvToolsExt32_1.dll" DESTINATION "${projectOutDir}" CONFIGURATIONS Debug)
|
||||
elseif(TORQUE_CPU_X64)
|
||||
INSTALL(FILES "${PHYSX3_PATH}/Bin/${PHYSX3_LIBPATH_PREFIX}/PhysXDevice64.dll" DESTINATION "${projectOutDir}")
|
||||
INSTALL(FILES "${PHYSX3_PATH}/Bin/${PHYSX3_LIBPATH_PREFIX}/nvToolsExt64_1.dll" DESTINATION "${projectOutDir}" CONFIGURATIONS Debug)
|
||||
endif()
|
||||
|
||||
#File copy for Debug
|
||||
INSTALL(FILES "${PHYSX3_PATH}/Bin/${PHYSX3_LIBPATH_PREFIX}/PhysX3DEBUG${PHYSX3_LIBNAME_POSTFIX}.dll" DESTINATION "${projectOutDir}" CONFIGURATIONS Debug)
|
||||
INSTALL(FILES "${PHYSX3_PATH}/Bin/${PHYSX3_LIBPATH_PREFIX}/PhysX3GpuDEBUG${PHYSX3_LIBNAME_POSTFIX}.dll" DESTINATION "${projectOutDir}" CONFIGURATIONS Debug)
|
||||
INSTALL(FILES "${PHYSX3_PATH}/Bin/${PHYSX3_LIBPATH_PREFIX}/PhysX3CharacterKinematicDEBUG${PHYSX3_LIBNAME_POSTFIX}.dll" DESTINATION "${projectOutDir}" CONFIGURATIONS Debug)
|
||||
INSTALL(FILES "${PHYSX3_PATH}/Bin/${PHYSX3_LIBPATH_PREFIX}/PhysX3CommonDEBUG${PHYSX3_LIBNAME_POSTFIX}.dll" DESTINATION "${projectOutDir}" CONFIGURATIONS Debug)
|
||||
INSTALL(FILES "${PHYSX3_PATH}/Bin/${PHYSX3_LIBPATH_PREFIX}/PhysX3CookingDEBUG${PHYSX3_LIBNAME_POSTFIX}.dll" DESTINATION "${projectOutDir}" CONFIGURATIONS Debug)
|
||||
INSTALL(FILES "${PHYSX3_BASE_PATH}/PxShared/bin/${PHYSX3_LIBPATH_PREFIX}/PxFoundationDEBUG${PHYSX3_LIBNAME_POSTFIX}.dll" DESTINATION "${projectOutDir}" CONFIGURATIONS Debug)
|
||||
INSTALL(FILES "${PHYSX3_BASE_PATH}/PxShared/bin/${PHYSX3_LIBPATH_PREFIX}/PxPvdSDKDEBUG${PHYSX3_LIBNAME_POSTFIX}.dll" DESTINATION "${projectOutDir}" CONFIGURATIONS Debug)
|
||||
|
||||
endif()
|
||||
|
||||
#linux - apple xcode physx build generates static libs
|
||||
if(UNIX AND NOT APPLE)
|
||||
# File Copy for Release
|
||||
INSTALL(FILES "${PHYSX3_PATH}/Bin/${PHYSX3_LIBPATH_PREFIX}/libPhysX3${PHYSX3_LIBNAME_POSTFIX}.so" DESTINATION "${projectOutDir}" CONFIGURATIONS Release)
|
||||
INSTALL(FILES "${PHYSX3_PATH}/Bin/${PHYSX3_LIBPATH_PREFIX}/libPhysX3CharacterKinematic${PHYSX3_LIBNAME_POSTFIX}.so" DESTINATION "${projectOutDir}" CONFIGURATIONS Release)
|
||||
INSTALL(FILES "${PHYSX3_PATH}/Bin/${PHYSX3_LIBPATH_PREFIX}/libPhysX3Common${PHYSX3_LIBNAME_POSTFIX}.so" DESTINATION "${projectOutDir}" CONFIGURATIONS Release)
|
||||
INSTALL(FILES "${PHYSX3_PATH}/Bin/${PHYSX3_LIBPATH_PREFIX}/libPhysX3Cooking${PHYSX3_LIBNAME_POSTFIX}.so" DESTINATION "${projectOutDir}" CONFIGURATIONS Release)
|
||||
INSTALL(FILES "${PHYSX3_BASE_PATH}/PxShared/bin/${PHYSX3_LIBPATH_PREFIX}/libPxFoundation${PHYSX3_LIBNAME_POSTFIX}.so" DESTINATION "${projectOutDir}" CONFIGURATIONS Release)
|
||||
INSTALL(FILES "${PHYSX3_BASE_PATH}/PxShared/bin/${PHYSX3_LIBPATH_PREFIX}/libPxPvdSDK${PHYSX3_LIBNAME_POSTFIX}.so" DESTINATION "${projectOutDir}" CONFIGURATIONS Release)
|
||||
INSTALL(FILES "${PHYSX3_PATH}/Bin/${PHYSX3_LIBPATH_PREFIX}/libPhysX3Gpu${PHYSX3_LIBNAME_POSTFIX}.so" DESTINATION "${projectOutDir}" CONFIGURATIONS Release)
|
||||
|
||||
# File Copy for Debug
|
||||
INSTALL(FILES "${PHYSX3_PATH}/Bin/${PHYSX3_LIBPATH_PREFIX}/libPhysX3DEBUG${PHYSX3_LIBNAME_POSTFIX}.so" DESTINATION "${projectOutDir}" CONFIGURATIONS Debug)
|
||||
INSTALL(FILES "${PHYSX3_PATH}/Bin/${PHYSX3_LIBPATH_PREFIX}/libPhysX3CharacterKinematicDEBUG${PHYSX3_LIBNAME_POSTFIX}.so" DESTINATION "${projectOutDir}" CONFIGURATIONS Debug)
|
||||
INSTALL(FILES "${PHYSX3_PATH}/Bin/${PHYSX3_LIBPATH_PREFIX}/libPhysX3CommonDEBUG${PHYSX3_LIBNAME_POSTFIX}.so" DESTINATION "${projectOutDir}" CONFIGURATIONS Debug)
|
||||
INSTALL(FILES "${PHYSX3_PATH}/Bin/${PHYSX3_LIBPATH_PREFIX}/libPhysX3CookingDEBUG${PHYSX3_LIBNAME_POSTFIX}.so" DESTINATION "${projectOutDir}" CONFIGURATIONS Debug)
|
||||
INSTALL(FILES "${PHYSX3_BASE_PATH}/PxShared/bin/${PHYSX3_LIBPATH_PREFIX}/libPxFoundationDEBUG${PHYSX3_LIBNAME_POSTFIX}.so" DESTINATION "${projectOutDir}" CONFIGURATIONS Debug)
|
||||
INSTALL(FILES "${PHYSX3_BASE_PATH}/PxShared/bin/${PHYSX3_LIBPATH_PREFIX}/libPxPvdSDKDEBUG${PHYSX3_LIBNAME_POSTFIX}.so" DESTINATION "${projectOutDir}" CONFIGURATIONS Debug)
|
||||
INSTALL(FILES "${PHYSX3_PATH}/Bin/${PHYSX3_LIBPATH_PREFIX}/libPhysX3GpuDEBUG${PHYSX3_LIBNAME_POSTFIX}.so" DESTINATION "${projectOutDir}" CONFIGURATIONS Debug)
|
||||
|
||||
endif()
|
||||
|
|
@ -1,28 +0,0 @@
|
|||
# -----------------------------------------------------------------------------
|
||||
# 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.
|
||||
# -----------------------------------------------------------------------------
|
||||
|
||||
option(TORQUE_SQLITE "Enable sqlite module" OFF)
|
||||
if(TORQUE_SQLITE)
|
||||
addPath( "${srcDir}/sqlite" )
|
||||
addLib( "sqlite" )
|
||||
addInclude( "${libDir}/sqlite" )
|
||||
endif()
|
||||
|
|
@ -1,31 +0,0 @@
|
|||
# -----------------------------------------------------------------------------
|
||||
# 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.
|
||||
# -----------------------------------------------------------------------------
|
||||
|
||||
option(TORQUE_VERVE_ENABLED "Enable Verve module" ON)
|
||||
option(TORQUE_VERVE_TOOLS_ENABLED "Enable Verve's Tools" ON)
|
||||
if(TORQUE_VERVE_ENABLED)
|
||||
addPathRec( "${srcDir}/Verve" )
|
||||
endif()
|
||||
|
||||
if(TORQUE_VERVE_ENABLED)
|
||||
addDef(VT_EDITOR)
|
||||
endif()
|
||||
13
Tools/CMake/modules/navigation.cmake
Normal file
13
Tools/CMake/modules/navigation.cmake
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
# Navigation module
|
||||
option(TORQUE_NAVIGATION "Enable Navigation module" ON)
|
||||
|
||||
if(TORQUE_NAVIGATION)
|
||||
message("Enabling Navigation Module")
|
||||
|
||||
torqueAddSourceDirectories("${CMAKE_SOURCE_DIR}/Engine/source/navigation")
|
||||
set(TORQUE_LINK_LIBRARIES ${TORQUE_LINK_LIBRARIES} recast)
|
||||
set(TORQUE_COMPILE_DEFINITIONS ${TORQUE_COMPILE_DEFINITIONS} recast TORQUE_NAVIGATION_ENABLED)
|
||||
|
||||
# Since recast lives elsewhere we need to ensure it is known to Torque when providing a link to it
|
||||
add_subdirectory("${CMAKE_SOURCE_DIR}/Engine/lib/recast" ${CMAKE_BINARY_DIR}/temp/recast EXCLUDE_FROM_ALL)
|
||||
endif(TORQUE_NAVIGATION)
|
||||
26
Tools/CMake/modules/openal.cmake
Normal file
26
Tools/CMake/modules/openal.cmake
Normal file
|
|
@ -0,0 +1,26 @@
|
|||
# OpenAL module
|
||||
option(TORQUE_SFX_OPENAL "Use OpenAL SFX" ON)
|
||||
|
||||
if(TORQUE_SFX_OPENAL)
|
||||
message("Enabling OpenAL Module")
|
||||
|
||||
torqueAddSourceDirectories("${CMAKE_SOURCE_DIR}/Engine/source/sfx/openal")
|
||||
|
||||
if (APPLE)
|
||||
torqueAddSourceDirectories("${CMAKE_SOURCE_DIR}/Engine/source/sfx/openal/mac")
|
||||
elseif (WIN32)
|
||||
torqueAddSourceDirectories("${CMAKE_SOURCE_DIR}/Engine/source/sfx/openal/win32")
|
||||
elseif (UNIX)
|
||||
torqueAddSourceDirectories("${CMAKE_SOURCE_DIR}/Engine/source/sfx/openal/linux")
|
||||
else()
|
||||
message(FATAL_ERROR "Unsupported OpenAL platform.")
|
||||
endif (APPLE)
|
||||
|
||||
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
|
||||
set(ALSOFT_EXAMPLES OFF CACHE BOOL "OpenAL Examples" FORCE)
|
||||
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)
|
||||
endif(TORQUE_SFX_OPENAL)
|
||||
11
Tools/CMake/modules/tools.cmake
Normal file
11
Tools/CMake/modules/tools.cmake
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
# Torque Tools module
|
||||
option(TORQUE_TOOLS "Enable Torque Tools" ON)
|
||||
|
||||
if(TORQUE_TOOLS)
|
||||
message("Enabling Torque Tools Module")
|
||||
|
||||
file(GLOB TORQUE_TOOLS_SOURCES "gui/editor/*.cpp" "gui/worldEditor/*.cpp" "gui/worldEditor/tools/*.cpp"
|
||||
"gui/editor/inspector/*.cpp")
|
||||
set(TORQUE_SOURCE_FILES ${TORQUE_SOURCE_FILES} ${TORQUE_TOOLS_SOURCES})
|
||||
set(TORQUE_COMPILE_DEFINITIONS ${TORQUE_COMPILE_DEFINITIONS} TORQUE_TOOLS)
|
||||
endif(TORQUE_TOOLS)
|
||||
|
|
@ -40,8 +40,8 @@ LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
|
|||
|
||||
// Icon with lowest ID value placed first to ensure application icon
|
||||
// remains consistent on all systems.
|
||||
IDI_ICON1 ICON DISCARDABLE "torque.ico"
|
||||
IDI_ICON2 ICON DISCARDABLE "torque.ico"
|
||||
IDI_ICON1 ICON DISCARDABLE "@APPLICATION_ICON_PATH@"
|
||||
IDI_ICON2 ICON DISCARDABLE "@APPLICATION_ICON_PATH@"
|
||||
|
||||
#ifdef APSTUDIO_INVOKED
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
|
|
|||
|
|
@ -41,9 +41,6 @@
|
|||
/// Human readable application version string.
|
||||
#define TORQUE_APP_VERSION_STRING "@TORQUE_APP_VERSION_STRING@"
|
||||
|
||||
/// Define me if you want to enable Arcane FX support.
|
||||
#cmakedefine TORQUE_AFX_ENABLED
|
||||
|
||||
/// Define me if you want path case insensitivity support on POSIX systems. Does nothing on Windows.
|
||||
#cmakedefine TORQUE_POSIX_PATH_CASE_INSENSITIVE
|
||||
|
||||
|
|
@ -92,7 +89,6 @@
|
|||
|
||||
// Define me if this build is a tools build
|
||||
#cmakedefine TORQUE_PLAYER
|
||||
#cmakedefine TORQUE_TOOLS
|
||||
|
||||
/// Define me if you want to enable the profiler.
|
||||
/// See also the TORQUE_SHIPPING block below
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue