diff --git a/CMakeLists.txt b/CMakeLists.txt index 99fe98d6b..b2b7b6090 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -26,4 +26,80 @@ endif() enable_language(OBJC) + +option(TORQUE_MULTITHREAD "Multi Threading" ON) +mark_as_advanced(TORQUE_MULTITHREAD) + +option(TORQUE_POSIX_PATH_CASE_INSENSITIVE "POSIX Pathing Case Insensitivity" ON) +mark_as_advanced(TORQUE_POSIX_PATH_CASE_INSENSITIVE) + +option(TORQUE_ZIP_PATH_CASE_INSENSITIVE "ZIP Pathing Case Insensitivity" ON) +mark_as_advanced(TORQUE_ZIP_PATH_CASE_INSENSITIVE) + +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_DISABLE_FIND_ROOT_WITHIN_ZIP "Disable reading root path from zip. Zips will be mounted in-place with file name as directory name." ON) +mark_as_advanced(TORQUE_DISABLE_FIND_ROOT_WITHIN_ZIP) + +option(TORQUE_ZIP_DISK_LAYOUT "All zips must be placed in the executable directory and contain full paths to the files." OFF) +mark_as_advanced(TORQUE_ZIP_DISK_LAYOUT) + +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(NOT TORQUE_SCRIPT_EXTENSION) + set(TORQUE_SCRIPT_EXTENSION "tscript" CACHE STRING "The default script extension to use for TorqueScript files") +endif() + +mark_as_advanced(TORQUE_SCRIPT_EXTENSION) + +option(TORQUE_USE_ZENITY "use the Zenity backend for NFD" OFF) +mark_as_advanced(TORQUE_USE_ZENITY) + +option(TORQUE_SHOW_LEGACY_FILE_FIELDS "If on, shows legacy direct file path fields in the inspector." OFF) +mark_as_advanced(TORQUE_SHOW_LEGACY_FILE_FIELDS) + + +include("${CMAKE_SOURCE_DIR}/Tools/CMake/basics.cmake") +setupVersionNumbers() + +if(NOT TORQUE_TEMPLATE) + set(TORQUE_TEMPLATE "BaseGame" CACHE STRING "the template to use") +endif() +installTemplate(${TORQUE_TEMPLATE}) + +# Generate torqueConfig.h in our temp directory +CONFIGURE_FILE("${CMAKE_SOURCE_DIR}/Tools/CMake/torqueConfig.h.in" "${CMAKE_BINARY_DIR}/temp/torqueConfig.h") + add_subdirectory(Engine) diff --git a/Engine/lib/CMakeLists.txt b/Engine/lib/CMakeLists.txt index b4a348917..f2840a3da 100644 --- a/Engine/lib/CMakeLists.txt +++ b/Engine/lib/CMakeLists.txt @@ -1,5 +1,6 @@ # Ask CMake to perform builds in a temporary directory for all of these. # We also use EXCLUDE_FROM_ALL to ensure we only build and install what we want +set(BUILD_SHARED_LIBS off CACHE STRING "") add_subdirectory(assimp ${CMAKE_BINARY_DIR}/temp/assimp EXCLUDE_FROM_ALL) set(BUILD_CPU_DEMOS off CACHE STRING "") @@ -9,13 +10,18 @@ add_subdirectory(sdl ${CMAKE_BINARY_DIR}/temp/sdl2 EXCLUDE_FROM_ALL) # FIXME: For now we force-on Neon set(PNG_ARM_NEON on CACHE STRING "") +set(PNG_STATIC on CACHE STRING "") add_subdirectory(lpng ${CMAKE_BINARY_DIR}/temp/lpng EXCLUDE_FROM_ALL) add_subdirectory(ljpeg ${CMAKE_BINARY_DIR}/temp/ljpeg EXCLUDE_FROM_ALL) add_subdirectory(tinyxml ${CMAKE_BINARY_DIR}/temp/tinyxml EXCLUDE_FROM_ALL) add_subdirectory(opcode ${CMAKE_BINARY_DIR}/temp/opcode EXCLUDE_FROM_ALL) + +set(ALSOFT_EXAMPLES off CACHE STRING "") +set(ALSOFT_UPDATE_BUILD_VERSION off CACHE STRING "") add_subdirectory(openal-soft ${CMAKE_BINARY_DIR}/temp/openal-soft EXCLUDE_FROM_ALL) + add_subdirectory(zlib ${CMAKE_BINARY_DIR}/temp/zlib EXCLUDE_FROM_ALL) add_subdirectory(pcre ${CMAKE_BINARY_DIR}/temp/pcre EXCLUDE_FROM_ALL) add_subdirectory(convexDecomp ${CMAKE_BINARY_DIR}/temp/convexDecomp EXCLUDE_FROM_ALL) diff --git a/Engine/lib/convexDecomp/CMakeLists.txt b/Engine/lib/convexDecomp/CMakeLists.txt index 36a5cf5de..6328b01db 100644 --- a/Engine/lib/convexDecomp/CMakeLists.txt +++ b/Engine/lib/convexDecomp/CMakeLists.txt @@ -1,3 +1,3 @@ file(GLOB CONVEX_DECOMP_SOURCES "*.cpp") -add_library(convexDecomp ${CONVEX_DECOMP_SOURCES}) +add_library(convexDecomp STATIC ${CONVEX_DECOMP_SOURCES}) target_include_directories(convexDecomp PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}) diff --git a/Engine/lib/ljpeg/CMakeLists.txt b/Engine/lib/ljpeg/CMakeLists.txt index 78ce38d01..1cee53288 100644 --- a/Engine/lib/ljpeg/CMakeLists.txt +++ b/Engine/lib/ljpeg/CMakeLists.txt @@ -1,2 +1,2 @@ file(GLOB LJPEG_SOURCES "*.c") -add_library(ljpeg ${LJPEG_SOURCES}) +add_library(ljpeg STATIC ${LJPEG_SOURCES}) diff --git a/Engine/lib/opcode/CMakeLists.txt b/Engine/lib/opcode/CMakeLists.txt index c2a3cce35..483f7ca89 100644 --- a/Engine/lib/opcode/CMakeLists.txt +++ b/Engine/lib/opcode/CMakeLists.txt @@ -1,5 +1,5 @@ file(GLOB OPCODE_SOURCES "*.cpp" "Ice/*.cpp") -add_library(opcode ${OPCODE_SOURCES}) +add_library(opcode STATIC ${OPCODE_SOURCES}) target_compile_definitions(opcode PUBLIC ICE_NO_DLL TORQUE_OPCODE) target_include_directories(opcode PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}) diff --git a/Engine/lib/squish/CMakeLists.txt b/Engine/lib/squish/CMakeLists.txt index cf10fd822..918abe51f 100644 --- a/Engine/lib/squish/CMakeLists.txt +++ b/Engine/lib/squish/CMakeLists.txt @@ -1,4 +1,4 @@ file(GLOB SQUISH_SOURCES "*.cpp") -add_library(squish ${SQUISH_SOURCES}) +add_library(squish STATIC ${SQUISH_SOURCES}) target_include_directories(squish PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}) diff --git a/Engine/lib/tinyxml/CMakeLists.txt b/Engine/lib/tinyxml/CMakeLists.txt index 142b84b32..83ac40ea3 100644 --- a/Engine/lib/tinyxml/CMakeLists.txt +++ b/Engine/lib/tinyxml/CMakeLists.txt @@ -1,4 +1,4 @@ -add_library(tinyxml "tinyxml2.cpp") +add_library(tinyxml STATIC "tinyxml2.cpp") # NOTE: Some stuff include tinyxml by tinyxml/tinyxml2.h instead of just tinyxml2.h target_include_directories(tinyxml PUBLIC ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/../) diff --git a/Engine/source/CMakeLists.txt b/Engine/source/CMakeLists.txt index 2f4db6c21..a0735d9d5 100644 --- a/Engine/source/CMakeLists.txt +++ b/Engine/source/CMakeLists.txt @@ -1,83 +1,3 @@ -option(TORQUE_MULTITHREAD "Multi Threading" ON) -mark_as_advanced(TORQUE_MULTITHREAD) - -option(TORQUE_POSIX_PATH_CASE_INSENSITIVE "POSIX Pathing Case Insensitivity" ON) -mark_as_advanced(TORQUE_POSIX_PATH_CASE_INSENSITIVE) - -option(TORQUE_ZIP_PATH_CASE_INSENSITIVE "ZIP Pathing Case Insensitivity" ON) -mark_as_advanced(TORQUE_ZIP_PATH_CASE_INSENSITIVE) - -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_DISABLE_FIND_ROOT_WITHIN_ZIP "Disable reading root path from zip. Zips will be mounted in-place with file name as directory name." ON) -mark_as_advanced(TORQUE_DISABLE_FIND_ROOT_WITHIN_ZIP) - -option(TORQUE_ZIP_DISK_LAYOUT "All zips must be placed in the executable directory and contain full paths to the files." OFF) -mark_as_advanced(TORQUE_ZIP_DISK_LAYOUT) - -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(NOT TORQUE_SCRIPT_EXTENSION) - set(TORQUE_SCRIPT_EXTENSION "tscript" CACHE STRING "The default script extension to use for TorqueScript files") -endif() - -mark_as_advanced(TORQUE_SCRIPT_EXTENSION) - -option(TORQUE_USE_ZENITY "use the Zenity backend for NFD" OFF) -mark_as_advanced(TORQUE_USE_ZENITY) - -option(TORQUE_SHOW_LEGACY_FILE_FIELDS "If on, shows legacy direct file path fields in the inspector." OFF) -mark_as_advanced(TORQUE_SHOW_LEGACY_FILE_FIELDS) - -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() -setupVersionNumbers() - -# Generate torqueConfig.h in our temp directory -CONFIGURE_FILE("${CMAKE_SOURCE_DIR}/Tools/CMake/torqueConfig.h.in" "${CMAKE_BINARY_DIR}/temp/torqueConfig.h") - -# Perform engine build. We do this initially as a lib for easier unit testing. -file(GLOB TORQUE_MAIN_SOURCES "main/*.cpp") file(GLOB TORQUE_APP_SOURCES "app/*.cpp" "app/net/*.cpp") # Handle Platform @@ -94,7 +14,7 @@ file(GLOB TORQUE_T3D_SOURCES "T3D/fps/*.cpp" "T3D/fx/*.cpp" "T3D/vehicles/*.cpp" file(GLOB TORQUE_TS_SOURCES "ts/*.cpp" "ts/collada/*.cpp" "ts/assimp/*.cpp" "ts/loader/*.cpp" "ts/arch/*.cpp") # Handle SFX -file(GLOB TORQUE_SFX_SOURCES "sfx/*.cpp" "sfx/media/*.cpp" "sfx/null/*.cpp") +file(GLOB TORQUE_SFX_SOURCES "sfx/*.cpp" "sfx/media/*.cpp" "sfx/null/*.cpp" "sfx/openal/*.cpp" "sfx/openal/mac/*.cpp") # Handle GFX file(GLOB TORQUE_GFX_SOURCES "gfx/*.cpp" "gfx/Null/*.cpp" "gfx/test/*.cpp" "gfx/bitmap/*.cpp" "gfx/bitmap/loaders/*.cpp" @@ -199,27 +119,42 @@ set(TORQUE_COMPILE_DEFINITIONS ICE_NO_DLL PCRE_STATIC TORQUE_ADVANCED_LIGHTING T # Set common linkages set(TORQUE_LINK_LIBRARIES tinyxml collada ljpeg squish png_static opcode assimp - SDL2 glad pcre convexDecomp "-framework Cocoa" "-framework AppKit" - "-framework CoreData" "-framework Foundation") + SDL2 glad pcre convexDecomp OpenAL) +# Only link Apple frameworks when on an Apple platform +if (APPLE) + set(TORQUE_LINK_LIBRARIES ${TORQUE_LINK_LIBRARIES} "-framework Cocoa" "-framework AppKit" "-framework CoreData" "-framework Foundation") +endif (APPLE) -set(CPACK_BUNDLE_NAME "Game") -set(CPACK_BUNDLE_ICON "${CMAKE_SOURCE_DIR}/Tools/CMake/torque.icns") -set(CPACK_BUNDLE_PLIS "${CMAKE_SOURCE_DIR}/Tools/CMake/Info.plist.in") -set(CPACK_PACKAGE_EXECUTABLES "Game" "Game") +# Begin assembling source code payload +set (TORQUE_SOURCE_FILES "main/main.cpp" + ${TORQUE_APP_SOURCES} ${TORQUE_RENDERINSTANCE_SOURCES} + ${TORQUE_CINTERFACE_SOURCES} ${TORQUE_MATH_SOURCES} + ${TORQUE_PLATFORM_SOURCES} ${TORQUE_ASSETS_SOURCES} ${TORQUE_UTIL_SOURCES} + ${TORQUE_CORE_SOURCES} ${TORQUE_PERSISTENCE_SOURCES} ${TORQUE_MODULE_SOURCES} + ${TORQUE_PLATFORM_SDL_SOURCES} ${TORQUE_PLATFORM_MAC_SOURCES} ${TORQUE_PLATFORM_POSIX_SOURCES} + ${TORQUE_WINDOW_MANAGER_SOURCES} ${TORQUE_SCENE_SOURCES} ${TORQUE_COLLISION_SOURCES} + ${TORQUE_T3D_SOURCES} ${TORQUE_TS_SOURCES} ${TORQUE_SIM_SOURCES} ${TORQUE_MATERIALS_SOURCES} + ${TORQUE_SHADERGEN_SOURCES} ${TORQUE_LIGHTING_SOURCES} ${TORQUE_GUI_SOURCES} + ${TORQUE_ENVIRONMENT_SOURCES} ${TORQUE_TERRAIN_SOURCES} ${TORQUE_POSTFX_SOURCES} + ${TORQUE_I18N_SOURCES} ${TORQUE_CONSOLE_SOURCES} ${TORQUE_SFX_SOURCES} ${TORQUE_GFX_SOURCES}) + +# Search module directories +set(TORQUE_MODULE_PATHS "${CMAKE_SOURCE_DIR}/Tools/CMake/modules") +foreach (TORQUE_MODULE_PATH ${TORQUE_MODULE_PATHS}) + # First find simple cmake scripts + file(GLOB MODULE_SCRIPTS "${TORQUE_MODULE_PATH}/*.cmake") + + message("Found Module Scripts" ${MODULE_SCRIPTS}) + foreach (TORQUE_MODULE_SCRIPT ${MODULE_SCRIPTS}) + message("Including Module Script: ${TORQUE_MODULE_SCRIPT}") + include(${TORQUE_MODULE_SCRIPT}) + endforeach() +endforeach() # Final executable -add_executable(Game MACOSX_BUNDLE "main/main.cpp" - ${TORQUE_APP_SOURCES} ${TORQUE_RENDERINSTANCE_SOURCES} - ${TORQUE_CINTERFACE_SOURCES} ${TORQUE_MATH_SOURCES} - ${TORQUE_PLATFORM_SOURCES} ${TORQUE_ASSETS_SOURCES} ${TORQUE_UTIL_SOURCES} - ${TORQUE_CORE_SOURCES} ${TORQUE_PERSISTENCE_SOURCES} ${TORQUE_MODULE_SOURCES} - ${TORQUE_PLATFORM_SDL_SOURCES} ${TORQUE_PLATFORM_MAC_SOURCES} ${TORQUE_PLATFORM_POSIX_SOURCES} - ${TORQUE_WINDOW_MANAGER_SOURCES} ${TORQUE_SFX_SOURCES} ${TORQUE_SCENE_SOURCES} ${TORQUE_COLLISION_SOURCES} - ${TORQUE_T3D_SOURCES} ${TORQUE_TS_SOURCES} ${TORQUE_SIM_SOURCES} ${TORQUE_MATERIALS_SOURCES} - ${TORQUE_SHADERGEN_SOURCES} ${TORQUE_LIGHTING_SOURCES} ${TORQUE_GUI_SOURCES} - ${TORQUE_ENVIRONMENT_SOURCES} ${TORQUE_TERRAIN_SOURCES} ${TORQUE_POSTFX_SOURCES} - ${TORQUE_I18N_SOURCES} ${TORQUE_CONSOLE_SOURCES} ${TORQUE_GFX_SOURCES}) +add_executable(Game MACOSX_BUNDLE ${TORQUE_SOURCE_FILES}) + target_compile_definitions(Game PUBLIC ${TORQUE_COMPILE_DEFINITIONS}) target_link_libraries(Game ${TORQUE_LINK_LIBRARIES}) target_include_directories(Game PUBLIC ${CMAKE_CURRENT_SOURCE_DIR} "${CMAKE_BINARY_DIR}/temp") @@ -229,16 +164,16 @@ CONFIGURE_FILE("${CMAKE_SOURCE_DIR}/Tools/CMake/Info.plist.in" "${CMAKE_BINARY_D set_target_properties(Game PROPERTIES MACOSX_BUNDLE_INFO_PLIST "${CMAKE_BINARY_DIR}/temp/Info.plist") install(TARGETS Game - BUNDLE DESTINATION . COMPONENT Runtime + BUNDLE DESTINATION game COMPONENT Runtime RUNTIME DESTINATION bin COMPONENT Runtime ) # Note Mac specific extension .app -set(APPS "\${CMAKE_INSTALL_PREFIX}/Game.app") +set(APPS "\${CMAKE_INSTALL_PREFIX}/game/Game.app") # Directories to look for dependencies # FIXME: Auto detect? -set(DIRS ${CMAKE_BINARY_DIR}/temp/sdl2 ${CMAKE_BINARY_DIR}/temp/assimp/bin) +set(DIRS ${CMAKE_BINARY_DIR}/temp/sdl2 ${CMAKE_BINARY_DIR}/temp/openal-soft ${CMAKE_BINARY_DIR}/temp/assimp/bin) install(CODE "include(BundleUtilities) fixup_bundle(\"${APPS}\" \"\" \"${DIRS}\")") diff --git a/Engine/source/console/fileSystemFunctions.cpp b/Engine/source/console/fileSystemFunctions.cpp index 3f43e962d..68340e760 100644 --- a/Engine/source/console/fileSystemFunctions.cpp +++ b/Engine/source/console/fileSystemFunctions.cpp @@ -97,11 +97,11 @@ static S32 buildFileList(const char* pattern, bool recurse, bool multiMatch) Torque::FS::FileSystemRef fs = Torque::FS::GetFileSystem(givenPath); //Torque::Path path = fs->mapTo(givenPath); Torque::Path path = givenPath; - + // Make sure that we have a root so the correct file system can be determined when using zips if(givenPath.isRelative()) path = Torque::Path::Join(Torque::FS::GetCwd(), '/', givenPath); - + path.setFileName(String::EmptyString); path.setExtension(String::EmptyString); if(!Torque::FS::IsDirectory(path)) @@ -361,11 +361,11 @@ DefineEngineFunction(getFileCountMultiExpr, S32, ( const char* pattern, bool rec DefineEngineFunction(getFileCRC, S32, ( const char* fileName ),, "@brief Provides the CRC checksum of the given file.\n\n" - + "@param fileName The path to the file.\n" "@return The calculated CRC checksum of the file, or -1 if the file " "could not be found.\n" - + "@ingroup FileSystem") { String cleanfilename(Torque::Path::CleanSeparators(fileName)); @@ -385,10 +385,10 @@ DefineEngineFunction(getFileCRC, S32, ( const char* fileName ),, DefineEngineFunction(isFile, bool, ( const char* fileName ),, "@brief Determines if the specified file exists or not\n\n" - + "@param fileName The path to the file.\n" "@return Returns true if the file was found.\n" - + "@ingroup FileSystem") { String cleanfilename(Torque::Path::CleanSeparators(fileName)); @@ -556,13 +556,13 @@ DefineEngineFunction( fileModifiedTime, String, ( const char* fileName ),, Platform::getFileTimes( sgScriptFilenameBuffer, NULL, &ft ); Platform::LocalTime lt = {0}; - Platform::fileToLocalTime( ft, < ); - + Platform::fileToLocalTime( ft, < ); + String fileStr = Platform::localTimeToString( lt ); - + char *buffer = Con::getReturnBuffer( fileStr.size() ); dStrcpy( buffer, fileStr, fileStr.size() ); - + return buffer; } @@ -579,7 +579,7 @@ DefineEngineFunction( fileCreatedTime, String, ( const char* fileName ),, Platform::getFileTimes( sgScriptFilenameBuffer, &ft, NULL ); Platform::LocalTime lt = {0}; - Platform::fileToLocalTime( ft, < ); + Platform::fileToLocalTime( ft, < ); String fileStr = Platform::localTimeToString( lt ); @@ -841,7 +841,7 @@ DefineEngineFunction( pathCopy, bool, ( const char* fromFile, const char* toFile { char qualifiedFromFile[ 2048 ]; char qualifiedToFile[ 2048 ]; - + Platform::makeFullPathName( fromFile, qualifiedFromFile, sizeof( qualifiedFromFile ) ); Platform::makeFullPathName( toFile, qualifiedToFile, sizeof( qualifiedToFile ) ); diff --git a/Engine/source/main/main.cpp b/Engine/source/main/main.cpp index ad3556913..6ebd6e5dc 100644 --- a/Engine/source/main/main.cpp +++ b/Engine/source/main/main.cpp @@ -283,12 +283,12 @@ int main(int argc, const char **argv) #include "app/mainLoop.h" #include "T3D/gameFunctions.h" -#if defined(WIN32) || defined(_WIN32) +#if defined(WIN32) || defined(_WIN32) //tell switchable graphics supported systems that they need to use the beefier GPU #include extern "C" { __declspec(dllexport) DWORD NvOptimusEnablement = 0x00000001; } extern "C" { __declspec(dllexport) DWORD AmdPowerXpressRequestHighPerformance = 0x00000001; } -#else +#else extern "C" { int NvOptimusEnablement = 1; } extern "C" { int AmdPowerXpressRequestHighPerformance = 1; } #endif diff --git a/Tools/CMake/basics.cmake b/Tools/CMake/basics.cmake index 6719036db..9640bd743 100644 --- a/Tools/CMake/basics.cmake +++ b/Tools/CMake/basics.cmake @@ -20,493 +20,19 @@ # 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 $<$:${def}>) - endif() - else() - if("${config}" STREQUAL "") - list(APPEND ${PROJECT_NAME}_defs_ ${def}) - else() - list(APPEND ${PROJECT_NAME}_defs_ $<$:${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, -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++17 - target_compile_features(${PROJECT_NAME} PRIVATE cxx_std_17) - - 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) - - 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() + add_subdirectory("${CMAKE_SOURCE_DIR}/Templates/${templateName}") +endfunction() diff --git a/Tools/CMake/modules/module_afx.cmake b/Tools/CMake/modules/module_afx.cmake deleted file mode 100644 index 9775a3ae0..000000000 --- a/Tools/CMake/modules/module_afx.cmake +++ /dev/null @@ -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() \ No newline at end of file diff --git a/Tools/CMake/modules/module_bullet.cmake b/Tools/CMake/modules/module_bullet.cmake deleted file mode 100644 index 10391a171..000000000 --- a/Tools/CMake/modules/module_bullet.cmake +++ /dev/null @@ -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" ) \ No newline at end of file diff --git a/Tools/CMake/modules/module_hydra.cmake b/Tools/CMake/modules/module_hydra.cmake deleted file mode 100644 index 756af0d74..000000000 --- a/Tools/CMake/modules/module_hydra.cmake +++ /dev/null @@ -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() diff --git a/Tools/CMake/modules/module_navigation.cmake b/Tools/CMake/modules/module_navigation.cmake deleted file mode 100644 index 394268214..000000000 --- a/Tools/CMake/modules/module_navigation.cmake +++ /dev/null @@ -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) diff --git a/Tools/CMake/modules/module_oculusVR.cmake b/Tools/CMake/modules/module_oculusVR.cmake deleted file mode 100644 index 3c0bf9d0b..000000000 --- a/Tools/CMake/modules/module_oculusVR.cmake +++ /dev/null @@ -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() \ No newline at end of file diff --git a/Tools/CMake/modules/module_openvr.cmake b/Tools/CMake/modules/module_openvr.cmake deleted file mode 100644 index cc8e8c76e..000000000 --- a/Tools/CMake/modules/module_openvr.cmake +++ /dev/null @@ -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() diff --git a/Tools/CMake/modules/module_physx3.cmake b/Tools/CMake/modules/module_physx3.cmake deleted file mode 100644 index a53075441..000000000 --- a/Tools/CMake/modules/module_physx3.cmake +++ /dev/null @@ -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() diff --git a/Tools/CMake/modules/module_sqlite.cmake b/Tools/CMake/modules/module_sqlite.cmake deleted file mode 100644 index 325e34dce..000000000 --- a/Tools/CMake/modules/module_sqlite.cmake +++ /dev/null @@ -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() diff --git a/Tools/CMake/modules/module_testing.cmake b/Tools/CMake/modules/module_testing.cmake deleted file mode 100644 index 39d5a4ff1..000000000 --- a/Tools/CMake/modules/module_testing.cmake +++ /dev/null @@ -1,38 +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_TESTING "Enable unit test module" OFF) -mark_as_advanced(TORQUE_TESTING) - -if(TORQUE_TESTING) - - # Project defines - addDef( "TORQUE_TESTS_ENABLED" ) - addDef( "_VARIADIC_MAX" 10 ) - - # Add source files - addPathRec( "${srcDir}/testing" ) - - # Add include paths - addInclude( "${libDir}/gtest/fused-src/" ) - -endif() diff --git a/Tools/CMake/modules/module_verve.cmake b/Tools/CMake/modules/module_verve.cmake deleted file mode 100644 index e789f4a68..000000000 --- a/Tools/CMake/modules/module_verve.cmake +++ /dev/null @@ -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() \ No newline at end of file