aboutsummaryrefslogtreecommitdiff
path: root/sdk/compiler/cmake/modules
diff options
context:
space:
mode:
authorBryan Galdrikian <[email protected]>2017-02-24 09:32:20 -0800
committerBryan Galdrikian <[email protected]>2017-02-24 09:32:20 -0800
commite1bf674c16e3c8472b29574159c789cd3f0c64e0 (patch)
tree9f0cfce09c71a2c27ff19589fcad6cd83504477c /sdk/compiler/cmake/modules
parentfirst commit (diff)
downloadblast-e1bf674c16e3c8472b29574159c789cd3f0c64e0.tar.xz
blast-e1bf674c16e3c8472b29574159c789cd3f0c64e0.zip
Updating to [email protected] and [email protected] with a new directory structure.
NvBlast folder is gone, files have been moved to top level directory. README is changed to reflect this.
Diffstat (limited to 'sdk/compiler/cmake/modules')
-rw-r--r--sdk/compiler/cmake/modules/CapnProtoGenerate.cmake108
-rw-r--r--sdk/compiler/cmake/modules/FindApexSDK.cmake399
-rw-r--r--sdk/compiler/cmake/modules/FindCapnProtoSDK.cmake111
-rw-r--r--sdk/compiler/cmake/modules/FindFBXSDK.cmake71
-rw-r--r--sdk/compiler/cmake/modules/FindGoogleTestNV.cmake131
-rw-r--r--sdk/compiler/cmake/modules/FindPhysXSDK.cmake566
-rw-r--r--sdk/compiler/cmake/modules/FindPxSharedSDK.cmake293
-rw-r--r--sdk/compiler/cmake/modules/FindXDK.cmake257
8 files changed, 1936 insertions, 0 deletions
diff --git a/sdk/compiler/cmake/modules/CapnProtoGenerate.cmake b/sdk/compiler/cmake/modules/CapnProtoGenerate.cmake
new file mode 100644
index 0000000..3579784
--- /dev/null
+++ b/sdk/compiler/cmake/modules/CapnProtoGenerate.cmake
@@ -0,0 +1,108 @@
+# Configuration variables (optional):
+# CAPNPC_OUTPUT_DIR
+# Directory to place compiled schema sources (default: the same directory as the schema file).
+# CAPNPC_IMPORT_DIRS
+# List of additional include directories for the schema compiler.
+# (CMAKE_CURRENT_SOURCE_DIR and CAPNP_INCLUDE_DIRS are always included.)
+# CAPNPC_SRC_PREFIX
+# Schema file source prefix (default: CMAKE_CURRENT_SOURCE_DIR).
+# CAPNPC_FLAGS
+# Additional flags to pass to the schema compiler.
+# Example usage:
+#
+# capnp_generate_cpp(CAPNP_SRCS CAPNP_HDRS schema.capnp)
+# add_executable(a a.cc ${CAPNP_SRCS} ${CAPNP_HDRS})
+# target_link_library(a ${CAPNP_LIBRARIES})
+#
+# For out-of-source builds:
+#
+# set(CAPNPC_OUTPUT_DIR ${CMAKE_CURRENT_BINARY_DIR})
+# include_directories(${CAPNPC_OUTPUT_DIR})
+# capnp_generate_cpp(...)
+
+function(CAPNP_GENERATE_CPP SOURCES HEADERS)
+ if(NOT ARGN)
+ message(SEND_ERROR "CAPNP_GENERATE_CPP() called without any source files.")
+ endif()
+ if(NOT CAPNP_EXECUTABLE)
+ message(SEND_ERROR "Could not locate capnp executable (CAPNP_EXECUTABLE).")
+ endif()
+ if(NOT CAPNPC_CXX_EXECUTABLE)
+ message(SEND_ERROR "Could not locate capnpc-c++ executable (CAPNPC_CXX_EXECUTABLE).")
+ endif()
+ if(NOT CAPNP_INCLUDE_DIRS)
+ message(SEND_ERROR "Could not locate capnp header files (CAPNP_INCLUDE_DIRS).")
+ endif()
+
+ # Default compiler includes
+ set(include_path -I ${CMAKE_CURRENT_SOURCE_DIR} -I ${CAPNP_INCLUDE_DIRS})
+
+ if(DEFINED CAPNPC_IMPORT_DIRS)
+ # Append each directory as a series of '-I' flags in ${include_path}
+ foreach(directory ${CAPNPC_IMPORT_DIRS})
+ get_filename_component(absolute_path "${directory}" ABSOLUTE)
+ list(APPEND include_path -I ${absolute_path})
+ endforeach()
+ endif()
+
+ if(DEFINED CAPNPC_OUTPUT_DIR)
+ # Prepend a ':' to get the format for the '-o' flag right
+ set(output_dir ":${CAPNPC_OUTPUT_DIR}")
+ else()
+ set(output_dir ":.")
+ endif()
+
+ if(NOT DEFINED CAPNPC_SRC_PREFIX)
+ set(CAPNPC_SRC_PREFIX "${CMAKE_CURRENT_SOURCE_DIR}")
+ endif()
+ get_filename_component(CAPNPC_SRC_PREFIX "${CAPNPC_SRC_PREFIX}" ABSOLUTE)
+
+ set(${SOURCES})
+ set(${HEADERS})
+ foreach(schema_file ${ARGN})
+ get_filename_component(file_path "${schema_file}" ABSOLUTE)
+ get_filename_component(file_dir "${file_path}" PATH)
+
+ # Figure out where the output files will go
+ if (NOT DEFINED CAPNPC_OUTPUT_DIR)
+ set(output_base "${file_path}")
+ else()
+ # Output files are placed in CAPNPC_OUTPUT_DIR, at a location as if they were
+ # relative to CAPNPC_SRC_PREFIX.
+ string(LENGTH "${CAPNPC_SRC_PREFIX}" prefix_len)
+ string(SUBSTRING "${file_path}" 0 ${prefix_len} output_prefix)
+ if(NOT "${CAPNPC_SRC_PREFIX}" STREQUAL "${output_prefix}")
+ message(SEND_ERROR "Could not determine output path for '${schema_file}' ('${file_path}') with source prefix '${CAPNPC_SRC_PREFIX}' into '${CAPNPC_OUTPUT_DIR}'.")
+ endif()
+
+ string(SUBSTRING "${file_path}" ${prefix_len} -1 output_path)
+ set(output_base "${CAPNPC_OUTPUT_DIR}${output_path}")
+ endif()
+
+ MESSAGE("Output base: " ${output_base})
+ MESSAGE("Output path: " ${output_path})
+ MESSAGE("Output dir: " ${output_dir})
+ MESSAGE("Src prefix: " ${CAPNPC_SRC_PREFIX})
+
+ add_custom_command(
+ OUTPUT "${output_base}.c++" "${output_base}.h"
+ COMMAND "${CAPNP_EXECUTABLE}"
+ ARGS compile
+ -o ${CAPNPC_CXX_EXECUTABLE}${output_dir}
+ --verbose
+ --src-prefix ${CAPNPC_SRC_PREFIX}
+ ${include_path}
+ ${CAPNPC_FLAGS}
+ ${file_path}
+ DEPENDS "${schema_file}"
+ COMMENT "Compiling Cap'n Proto schema ${schema_file}"
+ VERBATIM
+ )
+ list(APPEND ${SOURCES} "${output_base}.c++")
+ list(APPEND ${HEADERS} "${output_base}.h")
+ endforeach()
+
+ set_source_files_properties(${${SOURCES}} ${${HEADERS}} PROPERTIES GENERATED TRUE)
+ set(${SOURCES} ${${SOURCES}} PARENT_SCOPE)
+ set(${HEADERS} ${${HEADERS}} PARENT_SCOPE)
+endfunction() \ No newline at end of file
diff --git a/sdk/compiler/cmake/modules/FindApexSDK.cmake b/sdk/compiler/cmake/modules/FindApexSDK.cmake
new file mode 100644
index 0000000..9910236
--- /dev/null
+++ b/sdk/compiler/cmake/modules/FindApexSDK.cmake
@@ -0,0 +1,399 @@
+# - Try to find Apex binary SDK
+# - Sets APEXSDK_LIBS_DEBUG and APEXSDK_LIBS_RELEASE - lists of the libraries found
+# - Sets APEXSDK_INCLUDE_DIRS
+# - Sets APEXSDK_DLLS - List of the DLLs to copy to the bin directory of projects that depend on this
+
+include(FindPackageHandleStandardArgs)
+
+# Find the includes
+
+# TODO: Do the version stuff properly!
+find_path(APEXSDK_PATH include/Apex.h
+ PATHS
+ ${GW_DEPS_ROOT}/$ENV{PM_Apex_NAME}/${ApexSDK_FIND_VERSION}
+ ${GW_DEPS_ROOT}/Apex/${ApexSDK_FIND_VERSION}
+)
+
+if (TARGET_BUILD_PLATFORM STREQUAL "Windows")
+ # If the project pulling in this dependency needs the static crt, then append that to the path.
+ if (STATIC_WINCRT)
+ SET(PXSHARED_CRT_SUFFIX "-staticcrt")
+ else()
+ SET(PXSHARED_CRT_SUFFIX "")
+ endif()
+
+ if (CMAKE_CL_64)
+ SET(APEX_ARCH_FOLDER "win64")
+ SET(APEX_ARCH_FILE "_x64")
+ else()
+ SET(APEX_ARCH_FOLDER "win32")
+ SET(APEX_ARCH_FILE "_x86")
+ endif()
+
+ # What compiler version do we want?
+
+ if (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 18.0.0.0 AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS 19.0.0.0)
+ SET(VS_STR "vc12")
+ elseif(CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 19.0.0.0)
+ SET(VS_STR "vc14")
+ else()
+ MESSAGE(FATAL_ERROR "Failed to find compatible PxSharedSDK - Only supporting VS2013 and VS2015")
+ endif()
+
+ SET(LIB_PATH ${APEXSDK_PATH}/lib/${VS_STR}${APEX_ARCH_FOLDER}-cmake${PHYSX_CRT_SUFFIX})
+ SET(CMAKE_FIND_LIBRARY_SUFFIXES ".lib" ".dll")
+
+elseif(TARGET_BUILD_PLATFORM STREQUAL "PS4")
+ SET(LIB_PATH ${APEXSDK_PATH}/lib/vc14ps4-cmake)
+ SET(CMAKE_FIND_LIBRARY_SUFFIXES ".a")
+ SET(CMAKE_FIND_LIBRARY_PREFIXES "lib")
+elseif(TARGET_BUILD_PLATFORM STREQUAL "XboxOne")
+ SET(LIB_PATH ${APEXSDK_PATH}/lib/vc14xboxone-cmake)
+ SET(CMAKE_FIND_LIBRARY_SUFFIXES ".a")
+ SET(CMAKE_FIND_LIBRARY_PREFIXES "lib")
+elseif(TARGET_BUILD_PLATFORM STREQUAL "linux")
+ SET(LIB_PATH ${APEXSDK_PATH}/lib/linux64-cmake)
+ SET(CMAKE_FIND_LIBRARY_SUFFIXES ".a")
+ SET(CMAKE_FIND_LIBRARY_PREFIXES "lib")
+endif()
+
+find_library(APEXCLOTHING_LIB
+ NAMES APEX_Clothing${APEX_ARCH_FILE}
+ PATHS ${LIB_PATH}
+)
+find_library(APEXDESTRUCTIBLE_LIB
+ NAMES APEX_Destructible${APEX_ARCH_FILE}
+ PATHS ${LIB_PATH}
+)
+find_library(APEXLEGACY_LIB
+ NAMES APEX_Legacy${APEX_ARCH_FILE}
+ PATHS ${LIB_PATH}
+)
+find_library(APEXLOADER_LIB
+ NAMES APEX_Loader${APEX_ARCH_FILE}
+ PATHS ${LIB_PATH}
+)
+find_library(APEXCOMMON_LIB
+ NAMES APEXCommon${APEX_ARCH_FILE}
+ PATHS ${LIB_PATH}
+)
+find_library(APEXFRAMEWORK_LIB
+ NAMES APEXFramework${APEX_ARCH_FILE}
+ PATHS ${LIB_PATH}
+)
+find_library(APEXSHARED_LIB
+ NAMES APEXShared${APEX_ARCH_FILE}
+ PATHS ${LIB_PATH}
+)
+
+find_library(APEXCLOTHING_LIB_DEBUG
+ NAMES APEX_ClothingDEBUG${APEX_ARCH_FILE}
+ PATHS ${LIB_PATH}
+)
+find_library(APEXDESTRUCTIBLE_LIB_DEBUG
+ NAMES APEX_DestructibleDEBUG${APEX_ARCH_FILE}
+ PATHS ${LIB_PATH}
+)
+find_library(APEXLEGACY_LIB_DEBUG
+ NAMES APEX_LegacyDEBUG${APEX_ARCH_FILE}
+ PATHS ${LIB_PATH}
+)
+find_library(APEXLOADER_LIB_DEBUG
+ NAMES APEX_LoaderDEBUG${APEX_ARCH_FILE}
+ PATHS ${LIB_PATH}
+)
+find_library(APEXCOMMON_LIB_DEBUG
+ NAMES APEXCommonDEBUG${APEX_ARCH_FILE}
+ PATHS ${LIB_PATH}
+)
+find_library(APEXFRAMEWORK_LIB_DEBUG
+ NAMES APEXFrameworkDEBUG${APEX_ARCH_FILE}
+ PATHS ${LIB_PATH}
+)
+find_library(APEXSHARED_LIB_DEBUG
+ NAMES APEXSharedDEBUG${APEX_ARCH_FILE}
+ PATHS ${LIB_PATH}
+)
+
+find_library(APEXCLOTHING_LIB_CHECKED
+ NAMES APEX_ClothingCHECKED${APEX_ARCH_FILE}
+ PATHS ${LIB_PATH}
+)
+find_library(APEXDESTRUCTIBLE_LIB_CHECKED
+ NAMES APEX_DestructibleCHECKED${APEX_ARCH_FILE}
+ PATHS ${LIB_PATH}
+)
+find_library(APEXLEGACY_LIB_CHECKED
+ NAMES APEX_LegacyCHECKED${APEX_ARCH_FILE}
+ PATHS ${LIB_PATH}
+)
+find_library(APEXLOADER_LIB_CHECKED
+ NAMES APEX_LoaderCHECKED${APEX_ARCH_FILE}
+ PATHS ${LIB_PATH}
+)
+find_library(APEXCOMMON_LIB_CHECKED
+ NAMES APEXCommonCHECKED${APEX_ARCH_FILE}
+ PATHS ${LIB_PATH}
+)
+find_library(APEXFRAMEWORK_LIB_CHECKED
+ NAMES APEXFrameworkCHECKED${APEX_ARCH_FILE}
+ PATHS ${LIB_PATH}
+)
+find_library(APEXSHARED_LIB_CHECKED
+ NAMES APEXSharedCHECKED${APEX_ARCH_FILE}
+ PATHS ${LIB_PATH}
+)
+
+find_library(APEXCLOTHING_LIB_PROFILE
+ NAMES APEX_ClothingPROFILE${APEX_ARCH_FILE}
+ PATHS ${LIB_PATH}
+)
+find_library(APEXDESTRUCTIBLE_LIB_PROFILE
+ NAMES APEX_DestructiblePROFILE${APEX_ARCH_FILE}
+ PATHS ${LIB_PATH}
+)
+find_library(APEXLEGACY_LIB_PROFILE
+ NAMES APEX_LegacyPROFILE${APEX_ARCH_FILE}
+ PATHS ${LIB_PATH}
+)
+find_library(APEXLOADER_LIB_PROFILE
+ NAMES APEX_LoaderPROFILE${APEX_ARCH_FILE}
+ PATHS ${LIB_PATH}
+)
+find_library(APEXCOMMON_LIB_PROFILE
+ NAMES APEXCommonPROFILE${APEX_ARCH_FILE}
+ PATHS ${LIB_PATH}
+)
+find_library(APEXFRAMEWORK_LIB_PROFILE
+ NAMES APEXFrameworkPROFILE${APEX_ARCH_FILE}
+ PATHS ${LIB_PATH}
+)
+find_library(APEXSHARED_LIB_PROFILE
+ NAMES APEXSharedPROFILE${APEX_ARCH_FILE}
+ PATHS ${LIB_PATH}
+)
+
+
+if (TARGET_BUILD_PLATFORM STREQUAL "Windows")
+
+ SET(DLL_PATH ${APEXSDK_PATH}/bin/${VS_STR}${APEX_ARCH_FOLDER}-cmake${APEX_CRT_SUFFIX})
+
+ find_library(APEXCLOTHING_DLL
+ NAMES APEX_Clothing${APEX_ARCH_FILE}
+ PATHS ${DLL_PATH}
+ )
+ find_library(APEXDESTRUCTIBLE_DLL
+ NAMES APEX_Destructible${APEX_ARCH_FILE}
+ PATHS ${DLL_PATH}
+ )
+ find_library(APEXLEGACY_DLL
+ NAMES APEX_Legacy${APEX_ARCH_FILE}
+ PATHS ${DLL_PATH}
+ )
+ find_library(APEXLOADER_DLL
+ NAMES APEX_Loader${APEX_ARCH_FILE}
+ PATHS ${DLL_PATH}
+ )
+ find_library(APEXFRAMEWORK_DLL
+ NAMES APEXFramework${APEX_ARCH_FILE}
+ PATHS ${DLL_PATH}
+ )
+
+ find_library(APEXCLOTHING_DLL_DEBUG
+ NAMES APEX_ClothingDEBUG${APEX_ARCH_FILE}
+ PATHS ${DLL_PATH}
+ )
+ find_library(APEXDESTRUCTIBLE_DLL_DEBUG
+ NAMES APEX_DestructibleDEBUG${APEX_ARCH_FILE}
+ PATHS ${DLL_PATH}
+ )
+ find_library(APEXLEGACY_DLL_DEBUG
+ NAMES APEX_LegacyDEBUG${APEX_ARCH_FILE}
+ PATHS ${DLL_PATH}
+ )
+ find_library(APEXLOADER_DLL_DEBUG
+ NAMES APEX_LoaderDEBUG${APEX_ARCH_FILE}
+ PATHS ${DLL_PATH}
+ )
+ find_library(APEXFRAMEWORK_DLL_DEBUG
+ NAMES APEXFrameworkDEBUG${APEX_ARCH_FILE}
+ PATHS ${DLL_PATH}
+ )
+
+ find_library(APEXCLOTHING_DLL_CHECKED
+ NAMES APEX_ClothingCHECKED${APEX_ARCH_FILE}
+ PATHS ${DLL_PATH}
+ )
+ find_library(APEXDESTRUCTIBLE_DLL_CHECKED
+ NAMES APEX_DestructibleCHECKED${APEX_ARCH_FILE}
+ PATHS ${DLL_PATH}
+ )
+ find_library(APEXLEGACY_DLL_CHECKED
+ NAMES APEX_LegacyCHECKED${APEX_ARCH_FILE}
+ PATHS ${DLL_PATH}
+ )
+ find_library(APEXLOADER_DLL_CHECKED
+ NAMES APEX_LoaderCHECKED${APEX_ARCH_FILE}
+ PATHS ${DLL_PATH}
+ )
+ find_library(APEXFRAMEWORK_DLL_CHECKED
+ NAMES APEXFrameworkCHECKED${APEX_ARCH_FILE}
+ PATHS ${DLL_PATH}
+ )
+
+ find_library(APEXCLOTHING_DLL_PROFILE
+ NAMES APEX_ClothingPROFILE${APEX_ARCH_FILE}
+ PATHS ${DLL_PATH}
+ )
+ find_library(APEXDESTRUCTIBLE_DLL_PROFILE
+ NAMES APEX_DestructiblePROFILE${APEX_ARCH_FILE}
+ PATHS ${DLL_PATH}
+ )
+ find_library(APEXLEGACY_DLL_PROFILE
+ NAMES APEX_LegacyPROFILE${APEX_ARCH_FILE}
+ PATHS ${DLL_PATH}
+ )
+ find_library(APEXLOADER_DLL_PROFILE
+ NAMES APEX_LoaderPROFILE${APEX_ARCH_FILE}
+ PATHS ${DLL_PATH}
+ )
+ find_library(APEXFRAMEWORK_DLL_PROFILE
+ NAMES APEXFrameworkPROFILE${APEX_ARCH_FILE}
+ PATHS ${DLL_PATH}
+ )
+
+
+ SET(DLL_VAR_LIST
+ APEXCLOTHING_DLL
+ APEXDESTRUCTIBLE_DLL
+ APEXLEGACY_DLL
+ APEXLOADER_DLL
+ APEXFRAMEWORK_DLL
+
+ APEXCLOTHING_DLL_DEBUG
+ APEXDESTRUCTIBLE_DLL_DEBUG
+ APEXLEGACY_DLL_DEBUG
+ APEXLOADER_DLL_DEBUG
+ APEXFRAMEWORK_DLL_DEBUG
+
+ APEXCLOTHING_DLL_CHECKED
+ APEXDESTRUCTIBLE_DLL_CHECKED
+ APEXLEGACY_DLL_CHECKED
+ APEXLOADER_DLL_CHECKED
+ APEXFRAMEWORK_DLL_CHECKED
+
+ APEXCLOTHING_DLL_PROFILE
+ APEXDESTRUCTIBLE_DLL_PROFILE
+ APEXLEGACY_DLL_PROFILE
+ APEXLOADER_DLL_PROFILE
+ APEXFRAMEWORK_DLL_PROFILE
+
+ )
+endif()
+
+FIND_PACKAGE_HANDLE_STANDARD_ARGS(APEXSDK
+ DEFAULT_MSG
+ APEXSDK_PATH
+
+ APEXCLOTHING_LIB
+ APEXDESTRUCTIBLE_LIB
+ APEXLEGACY_LIB
+ APEXLOADER_LIB
+ APEXCOMMON_LIB
+ APEXFRAMEWORK_LIB
+ APEXSHARED_LIB
+
+ APEXCLOTHING_LIB_DEBUG
+ APEXDESTRUCTIBLE_LIB_DEBUG
+ APEXLEGACY_LIB_DEBUG
+ APEXLOADER_LIB_DEBUG
+ APEXCOMMON_LIB_DEBUG
+ APEXFRAMEWORK_LIB_DEBUG
+ APEXSHARED_LIB_DEBUG
+
+ APEXCLOTHING_LIB_CHECKED
+ APEXDESTRUCTIBLE_LIB_CHECKED
+ APEXLEGACY_LIB_CHECKED
+ APEXLOADER_LIB_CHECKED
+ APEXCOMMON_LIB_CHECKED
+ APEXFRAMEWORK_LIB_CHECKED
+ APEXSHARED_LIB_CHECKED
+
+ APEXCLOTHING_LIB_PROFILE
+ APEXDESTRUCTIBLE_LIB_PROFILE
+ APEXLEGACY_LIB_PROFILE
+ APEXLOADER_LIB_PROFILE
+ APEXCOMMON_LIB_PROFILE
+ APEXFRAMEWORK_LIB_PROFILE
+ APEXSHARED_LIB_PROFILE
+
+ ${DLL_VAR_LIST}
+)
+
+if (APEXSDK_FOUND)
+ # NOTE: This include list is way too long and reaches into too many internals.
+ # Also may not be good enough for all users.
+ SET(APEXSDK_INCLUDE_DIRS
+ ${APEXSDK_PATH}/public
+ ${APEXSDK_PATH}/include
+ ${APEXSDK_PATH}/common/include
+ ${APEXSDK_PATH}/common/include/autogen
+ ${APEXSDK_PATH}/NvParameterized/include
+ ${APEXSDK_PATH}/include/destructible
+ ${APEXSDK_PATH}/include/PhysX3
+ ${APEXSDK_PATH}/shared/external/include
+ ${APEXSDK_PATH}/shared/internal/include
+ ${APEXSDK_PATH}/shared/general/shared
+ ${APEXSDK_PATH}/shared/general/RenderDebug/public
+ )
+
+ SET(APEXSDK_LIBS_RELEASE ${APEXCLOTHING_LIB} ${APEXDESTRUCTIBLE_LIB} ${APEXLEGACY_LIB} ${APEXLOADER_LIB} ${APEXCOMMON_LIB} ${APEXFRAMEWORK_LIB} ${APEXSHARED_LIB}
+ CACHE STRING ""
+ )
+ SET(APEXSDK_LIBS_DEBUG ${APEXCLOTHING_LIB_DEBUG} ${APEXDESTRUCTIBLE_LIB_DEBUG} ${APEXLEGACY_LIB_DEBUG} ${APEXLOADER_LIB_DEBUG} ${APEXCOMMON_LIB_DEBUG} ${APEXFRAMEWORK_LIB_DEBUG} ${APEXSHARED_LIB_DEBUG}
+ CACHE STRING ""
+ )
+ SET(APEXSDK_LIBS_CHECKED ${APEXCLOTHING_LIB_CHECKED} ${APEXDESTRUCTIBLE_LIB_CHECKED} ${APEXLEGACY_LIB_CHECKED} ${APEXLOADER_LIB_CHECKED} ${APEXCOMMON_LIB_CHECKED} ${APEXFRAMEWORK_LIB_CHECKED} ${APEXSHARED_LIB_CHECKED}
+ CACHE STRING ""
+ )
+ SET(APEXSDK_LIBS_PROFILE ${APEXCLOTHING_LIB_PROFILE} ${APEXDESTRUCTIBLE_LIB_PROFILE} ${APEXLEGACY_LIB_PROFILE} ${APEXLOADER_LIB_PROFILE} ${APEXCOMMON_LIB_PROFILE} ${APEXFRAMEWORK_LIB_PROFILE} ${APEXSHARED_LIB_PROFILE}
+ CACHE STRING ""
+ )
+
+
+ SET(APEXSDK_DLLS
+ ${APEXCLOTHING_DLL}
+ ${APEXDESTRUCTIBLE_DLL}
+ ${APEXLEGACY_DLL}
+ ${APEXLOADER_DLL}
+ ${APEXFRAMEWORK_DLL}
+
+ ${APEXCLOTHING_DLL_DEBUG}
+ ${APEXDESTRUCTIBLE_DLL_DEBUG}
+ ${APEXLEGACY_DLL_DEBUG}
+ ${APEXLOADER_DLL_DEBUG}
+ ${APEXFRAMEWORK_DLL_DEBUG}
+
+ ${APEXCLOTHING_DLL_CHECKED}
+ ${APEXDESTRUCTIBLE_DLL_CHECKED}
+ ${APEXLEGACY_DLL_CHECKED}
+ ${APEXLOADER_DLL_CHECKED}
+ ${APEXFRAMEWORK_DLL_CHECKED}
+
+ ${APEXCLOTHING_DLL_PROFILE}
+ ${APEXDESTRUCTIBLE_DLL_PROFILE}
+ ${APEXLEGACY_DLL_PROFILE}
+ ${APEXLOADER_DLL_PROFILE}
+ ${APEXFRAMEWORK_DLL_PROFILE}
+ )
+
+ SET(APEXSDK_LIBRARIES "" CACHE STRING "")
+
+ foreach(x ${APEXSDK_LIBS_RELEASE})
+ list(APPEND APEXSDK_LIBRARIES optimized ${x})
+ endforeach()
+
+ foreach(x ${APEXSDK_LIBS_DEBUG})
+ list(APPEND APEXSDK_LIBRARIES debug ${x})
+ endforeach()
+endif()
diff --git a/sdk/compiler/cmake/modules/FindCapnProtoSDK.cmake b/sdk/compiler/cmake/modules/FindCapnProtoSDK.cmake
new file mode 100644
index 0000000..dcf5190
--- /dev/null
+++ b/sdk/compiler/cmake/modules/FindCapnProtoSDK.cmake
@@ -0,0 +1,111 @@
+# - Try to find CapnProto SDK
+# - Sets CAPNPROTOSDK_LIBRARIES - list of the libraries found
+# - Sets CAPNPROTOSDK_INCLUDE_DIRS
+
+include(FindPackageHandleStandardArgs)
+
+# Find the includes
+
+# TODO: Do the version stuff properly!
+find_path(CAPNPROTOSDK_PATH src/capnp/message.h
+ PATHS ${GW_DEPS_ROOT}/$ENV{PM_CapnProto_NAME}/${CapnProtoSDK_FIND_VERSION}
+)
+
+if (TARGET_BUILD_PLATFORM STREQUAL "Windows")
+
+ if (STATIC_WINCRT)
+ SET(CAPNPROTOSDK_CRT_SUFFIX "-mt")
+ else()
+ SET(CAPNPROTOSDK_CRT_SUFFIX "-md")
+ endif()
+
+
+ # If the project pulling in this dependency needs the static crt, then append that to the path.
+ if (CMAKE_CL_64)
+ SET(CAPNPROTOSDK_ARCH_FOLDER "win64")
+ else()
+ SET(CAPNPROTOSDK_ARCH_FOLDER "win32")
+ endif()
+
+ SET(LIB_PATH ${CAPNPROTOSDK_PATH}/bin/${CAPNPROTOSDK_ARCH_FOLDER})
+ SET(EXE_PATH ${CAPNPROTOSDK_PATH}/tools/win32)
+
+
+elseif(TARGET_BUILD_PLATFORM STREQUAL "PS4")
+ SET(LIB_PATH ${CAPNPROTOSDK_PATH}/bin/ps4)
+ SET(EXE_PATH ${CAPNPROTOSDK_PATH}/tools/win32)
+ SET(CMAKE_FIND_LIBRARY_SUFFIXES ".a")
+ SET(CMAKE_FIND_LIBRARY_PREFIXES "lib")
+elseif(TARGET_BUILD_PLATFORM STREQUAL "XboxOne")
+ SET(LIB_PATH ${CAPNPROTOSDK_PATH}/bin/xboxone)
+ SET(EXE_PATH ${CAPNPROTOSDK_PATH}/tools/win32)
+ SET(CMAKE_FIND_LIBRARY_SUFFIXES ".a")
+ SET(CMAKE_FIND_LIBRARY_PREFIXES "lib")
+elseif(TARGET_BUILD_PLATFORM STREQUAL "linux")
+ SET(LIB_PATH ${CAPNPROTOSDK_PATH}/bin/ubuntu64)
+ SET(EXE_PATH ${CAPNPROTOSDK_PATH}/tools/ubuntu64)
+ SET(CMAKE_FIND_LIBRARY_SUFFIXES ".a")
+ SET(CMAKE_FIND_LIBRARY_PREFIXES "lib")
+endif()
+
+find_library(CAPNPROTO_LIB
+ NAMES capnp${CAPNPROTOSDK_CRT_SUFFIX}
+ PATHS ${LIB_PATH}/Release
+)
+find_library(CAPNPROTO_LIB_DEBUG
+ NAMES capnp${CAPNPROTOSDK_CRT_SUFFIX}
+ PATHS ${LIB_PATH}/Debug
+)
+
+find_library(KJ_LIB
+ NAMES kj${CAPNPROTOSDK_CRT_SUFFIX}
+ PATHS ${LIB_PATH}/Release
+)
+find_library(KJ_LIB_DEBUG
+ NAMES kj${CAPNPROTOSDK_CRT_SUFFIX}
+ PATHS ${LIB_PATH}/Debug
+)
+
+find_program(CAPNP_EXECUTABLE
+ NAMES capnp
+ DOC "Cap'n Proto Command-line Tool"
+ PATHS ${EXE_PATH}
+)
+
+find_program(CAPNPC_CXX_EXECUTABLE
+ NAMES capnpc-c++
+ DOC "Capn'n Proto C++ Compiler"
+ PATHS ${EXE_PATH}
+)
+
+FIND_PACKAGE_HANDLE_STANDARD_ARGS(CAPNPROTOSDK
+ DEFAULT_MSG
+ CAPNPROTOSDK_PATH
+
+ CAPNP_EXECUTABLE
+ CAPNPC_CXX_EXECUTABLE
+
+ CAPNPROTO_LIB
+ KJ_LIB
+
+ CAPNPROTO_LIB_DEBUG
+ KJ_LIB_DEBUG
+)
+
+if (CAPNPROTOSDK_FOUND)
+
+ SET(CAPNPROTOSDK_INCLUDE_DIRS
+ ${CAPNPROTOSDK_PATH}/src/
+ )
+
+ SET(CAPNP_INCLUDE_DIRS
+ ${CAPNPROTOSDK_INCLUDE_DIRS}
+ )
+
+ SET(CAPNPROTOSDK_LIBRARIES "" CACHE STRING "")
+
+ LIST(APPEND CAPNPROTOSDK_LIBRARIES
+ optimized ${CAPNPROTO_LIB} debug ${CAPNPROTO_LIB_DEBUG}
+ optimized ${KJ_LIB} debug ${KJ_LIB_DEBUG}
+ )
+endif()
diff --git a/sdk/compiler/cmake/modules/FindFBXSDK.cmake b/sdk/compiler/cmake/modules/FindFBXSDK.cmake
new file mode 100644
index 0000000..7e1bfb4
--- /dev/null
+++ b/sdk/compiler/cmake/modules/FindFBXSDK.cmake
@@ -0,0 +1,71 @@
+# - Try to find FBX SDK
+# - Sets FBXSDK_LIBRARIES - list of the libraries found
+# - Sets FBXSDK_INCLUDE_DIRS
+# - Sets FBXSDK_DLLS - List of the DLLs to copy to the bin directory of projects that depend on this
+
+
+include(FindPackageHandleStandardArgs)
+
+# Find the includes
+
+# TODO: Do the version stuff properly!
+find_path(FBXSDK_PATH include/fbxsdk.h
+ PATHS ${GW_DEPS_ROOT}/FBXSDK/${FBXSDK_FIND_VERSION}
+)
+
+if (STATIC_WINCRT)
+ SET(FBXSDK_CRT_SUFFIX "mt")
+else()
+ SET(FBXSDK_CRT_SUFFIX "md")
+endif()
+
+
+# If the project pulling in this dependency needs the static crt, then append that to the path.
+if (CMAKE_CL_64)
+ SET(FBXSDK_ARCH_FOLDER "x64")
+else()
+ SET(FBXSDK_ARCH_FOLDER "x86")
+endif()
+
+# What compiler version do we want?
+
+if (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 18.0.0.0 AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS 19.0.0.0)
+ SET(VS_STR "vs2013")
+elseif(CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 19.0.0.0)
+ SET(VS_STR "vs2015")
+else()
+ MESSAGE(FATAL_ERROR "Failed to find compatible FBXSDK - Only supporting VS2013 and VS2015")
+endif()
+
+# Now find all of the PhysX libs in the lib directory
+
+SET(LIB_PATH ${FBXSDK_PATH}/lib/${VS_STR}/${FBXSDK_ARCH_FOLDER})
+
+find_library(FBX_LIB
+ NAMES libfbxsdk-${FBXSDK_CRT_SUFFIX}
+ PATHS ${LIB_PATH}/release
+)
+find_library(FBX_LIB_DEBUG
+ NAMES libfbxsdk-${FBXSDK_CRT_SUFFIX}
+ PATHS ${LIB_PATH}/debug
+)
+
+FIND_PACKAGE_HANDLE_STANDARD_ARGS(FBXSDK
+ DEFAULT_MSG
+ FBXSDK_PATH
+ FBX_LIB
+
+ FBX_LIB_DEBUG
+)
+
+if (FBXSDK_FOUND)
+
+ SET(FBXSDK_INCLUDE_DIRS
+ ${FBXSDK_PATH}/include
+ ${FBXSDK_PATH}/include/fbxsdk
+ )
+
+ SET(FBXSDK_LIBRARIES "" CACHE STRING "")
+
+ LIST(APPEND FBXSDK_LIBRARIES optimized ${FBX_LIB} debug ${FBX_LIB_DEBUG})
+endif()
diff --git a/sdk/compiler/cmake/modules/FindGoogleTestNV.cmake b/sdk/compiler/cmake/modules/FindGoogleTestNV.cmake
new file mode 100644
index 0000000..50e7edd
--- /dev/null
+++ b/sdk/compiler/cmake/modules/FindGoogleTestNV.cmake
@@ -0,0 +1,131 @@
+# - Try to find GoogleTest SDK
+# - Sets GOOGLETEST_LIBRARIES - lists of the libraries found
+# - Sets GOOGLETEST_INCLUDE_DIRS
+
+include(FindPackageHandleStandardArgs)
+
+# Find the includes
+
+# TODO: Do the version stuff properly!
+find_path(GOOGLETEST_PATH include/gtest/gtest.h
+ PATHS ${GW_DEPS_ROOT}/$ENV{PM_googletest_NAME}/${GoogleTestNV_FIND_VERSION}
+)
+
+if (TARGET_BUILD_PLATFORM STREQUAL "Windows")
+ # If the project pulling in this dependency needs the static crt, then append that to the path.
+
+ if (STATIC_WINCRT)
+ SET(GOOGLETEST_CRT_SUFFIX "-staticcrt")
+ else()
+ SET(GOOGLETEST_CRT_SUFFIX "")
+ endif()
+
+ if (CMAKE_CL_64)
+ SET(GOOGLETEST_ARCH_FOLDER "win64")
+ else()
+ SET(GOOGLETEST_ARCH_FOLDER "win32")
+ endif()
+
+ if (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 18.0.0.0 AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS 19.0.0.0)
+ SET(VS_STR "vc12")
+ elseif(CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 19.0.0.0)
+ SET(VS_STR "vc14")
+ else()
+ MESSAGE(FATAL_ERROR "Failed to find compatible FBXSDK - Only supporting VS2013 and VS2015")
+ endif()
+
+
+ # Now find all of the PhysX libs in the lib directory
+
+ SET(LIB_PATH ${GOOGLETEST_PATH}/lib/${VS_STR}${GOOGLETEST_ARCH_FOLDER}-cmake${GOOGLETEST_CRT_SUFFIX})
+
+elseif(TARGET_BUILD_PLATFORM STREQUAL "PS4")
+ SET(LIB_PATH ${GOOGLETEST_PATH}/lib/PS4)
+ SET(CMAKE_FIND_LIBRARY_SUFFIXES ".a")
+ SET(CMAKE_FIND_LIBRARY_PREFIXES "lib")
+elseif(TARGET_BUILD_PLATFORM STREQUAL "XboxOne")
+ SET(LIB_PATH ${GOOGLETEST_PATH}/lib/xboxone-${XDK_VERSION})
+ SET(CMAKE_FIND_LIBRARY_SUFFIXES ".a")
+ SET(CMAKE_FIND_LIBRARY_PREFIXES "lib")
+elseif(TARGET_BUILD_PLATFORM STREQUAL "linux")
+ if(CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 5.0)
+ SET(LIB_PATH ${GOOGLETEST_PATH}/lib/gcc-5.4)
+ else()
+ SET(LIB_PATH ${GOOGLETEST_PATH}/lib/gcc-4.8)
+ endif()
+ SET(CMAKE_FIND_LIBRARY_SUFFIXES ".a")
+ SET(CMAKE_FIND_LIBRARY_PREFIXES "lib")
+endif()
+
+MESSAGE("GTEst libpath:" ${LIB_PATH})
+
+if(TARGET_BUILD_PLATFORM STREQUAL "linux")
+ find_library(GTEST_LIB
+ NAMES gtest
+ PATHS ${LIB_PATH}
+ )
+
+ find_library(GTEST_MAIN_LIB
+ NAMES gtest_main
+ PATHS ${LIB_PATH}
+ )
+
+ SET(GTEST_LIB_DEBUG ${GTEST_LIB})
+ SET(GTEST_MAIN_LIB_DEBUG ${GTEST_MAIN_LIB})
+else()
+ find_library(GTEST_LIB
+ NAMES gtest
+ PATHS ${LIB_PATH}/Release
+ )
+
+ find_library(GTEST_LIB_DEBUG
+ NAMES gtest
+ PATHS ${LIB_PATH}/Debug
+ )
+
+ find_library(GTEST_MAIN_LIB
+ NAMES gtest_main
+ PATHS ${LIB_PATH}/Release
+ )
+
+ find_library(GTEST_MAIN_LIB_DEBUG
+ NAMES gtest_main
+ PATHS ${LIB_PATH}/Debug
+ )
+endif()
+
+FIND_PACKAGE_HANDLE_STANDARD_ARGS(GOOGLETEST
+ DEFAULT_MSG
+ GOOGLETEST_PATH
+
+ GTEST_LIB
+ GTEST_MAIN_LIB
+ GTEST_LIB_DEBUG
+ GTEST_MAIN_LIB_DEBUG
+)
+
+if (GOOGLETEST_FOUND)
+ # NOTE: This include list is way too long and reaches into too many internals.
+ # Also may not be good enough for all users.
+ SET(GOOGLETEST_INCLUDE_DIRS
+ ${GOOGLETEST_PATH}/include
+ ${GOOGLETEST_PATH}/include/gtest
+ )
+
+ SET(GOOGLETEST_LIBS_RELEASE ${GTEST_LIB} ${GTEST_MAIN_LIB}
+ CACHE STRING ""
+ )
+ SET(GOOGLETEST_LIBS_DEBUG ${GTEST_LIB_DEBUG} ${GTEST_MAIN_LIB_DEBUG}
+ CACHE STRING ""
+ )
+
+ SET(GOOGLETEST_LIBRARIES "" CACHE STRING "")
+
+ foreach(x ${GOOGLETEST_LIBS_RELEASE})
+ list(APPEND GOOGLETEST_LIBRARIES optimized ${x})
+ endforeach()
+
+ foreach(x ${GOOGLETEST_LIBS_DEBUG})
+ list(APPEND GOOGLETEST_LIBRARIES debug ${x})
+ endforeach()
+endif()
diff --git a/sdk/compiler/cmake/modules/FindPhysXSDK.cmake b/sdk/compiler/cmake/modules/FindPhysXSDK.cmake
new file mode 100644
index 0000000..830e6c5
--- /dev/null
+++ b/sdk/compiler/cmake/modules/FindPhysXSDK.cmake
@@ -0,0 +1,566 @@
+# - Try to find PhysX binary SDK
+# - Sets PHYSXSDK_LIBS_DEBUG, PHYSXSDK_LIBS_RELEASE, PHYSXSDK_LIBS_CHECKED, PHYSXSDK_LIBS_PROFILE - lists of the libraries found
+# - Sets PHYSXSDK_INCLUDE_DIRS
+# - Sets PHYSXSDK_DLLS - List of the DLLs to copy to the bin directory of projects that depend on this
+
+include(FindPackageHandleStandardArgs)
+
+MESSAGE("Looking for PhysXSDK ${PhysXSDK_FIND_VERSION} Cached path: ${PHYSXSDK_PATH}")
+# TODO: Do the version stuff properly!
+find_path(PHYSXSDK_PATH Include/PxActor.h
+ PATHS
+ ${GW_DEPS_ROOT}/$ENV{PM_PhysX_NAME}/${PhysXSDK_FIND_VERSION}
+ ${GW_DEPS_ROOT}/PhysX/${PhysXSDK_FIND_VERSION}
+)
+
+if (TARGET_BUILD_PLATFORM STREQUAL "Windows")
+ # If the project pulling in this dependency needs the static crt, then append that to the path.
+ if (STATIC_WINCRT)
+ SET(PXSHARED_CRT_SUFFIX "-staticcrt")
+ else()
+ SET(PXSHARED_CRT_SUFFIX "")
+ endif()
+
+ if (CMAKE_CL_64)
+ SET(PHYSX_ARCH_FOLDER "win64")
+ SET(PHYSX_ARCH_FILE "_x64")
+ else()
+ SET(PHYSX_ARCH_FOLDER "win32")
+ SET(PHYSX_ARCH_FILE "_x86")
+ endif()
+
+ # What compiler version do we want?
+
+ if (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 18.0.0.0 AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS 19.0.0.0)
+ SET(VS_STR "vc12")
+ elseif(CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 19.0.0.0)
+ SET(VS_STR "vc14")
+ else()
+ MESSAGE(FATAL_ERROR "Failed to find compatible PxSharedSDK - Only supporting VS2013 and VS2015")
+ endif()
+
+ SET(LIB_PATH ${PHYSXSDK_PATH}/lib/${VS_STR}${PHYSX_ARCH_FOLDER}-cmake${PHYSX_CRT_SUFFIX})
+ SET(CMAKE_FIND_LIBRARY_SUFFIXES ".lib" ".dll")
+
+elseif(TARGET_BUILD_PLATFORM STREQUAL "PS4")
+ SET(LIB_PATH ${PHYSXSDK_PATH}/lib/vc14ps4-cmake)
+ SET(CMAKE_FIND_LIBRARY_SUFFIXES ".a")
+ SET(CMAKE_FIND_LIBRARY_PREFIXES "lib")
+elseif(TARGET_BUILD_PLATFORM STREQUAL "XboxOne")
+ SET(LIB_PATH ${PHYSXSDK_PATH}/lib/vc14xboxone-cmake)
+ SET(CMAKE_FIND_LIBRARY_SUFFIXES ".a")
+ SET(CMAKE_FIND_LIBRARY_PREFIXES "lib")
+elseif(TARGET_BUILD_PLATFORM STREQUAL "linux")
+ SET(LIB_PATH ${PHYSXSDK_PATH}/lib/linux64-cmake)
+ SET(CMAKE_FIND_LIBRARY_SUFFIXES ".a")
+ SET(CMAKE_FIND_LIBRARY_PREFIXES "lib")
+ SET(PHYSX_ARCH_FILE "_x64")
+endif()
+
+# Now find all of the PhysX libs in the lib directory
+
+find_library(PHYSX3_LIB
+ NAMES PhysX3${PHYSX_ARCH_FILE}
+ PATHS ${LIB_PATH}
+)
+find_library(PHYSX3EXTENSIONS_LIB
+ NAMES PhysX3Extensions${PHYSX_ARCH_FILE}
+ PATHS ${LIB_PATH}
+)
+find_library(PHYSX3CHARACTERKINEMATIC_LIB
+ NAMES PhysX3CharacterKinematic${PHYSX_ARCH_FILE}
+ PATHS ${LIB_PATH}
+)
+find_library(PHYSX3COMMON_LIB
+ NAMES PhysX3Common${PHYSX_ARCH_FILE}
+ PATHS ${LIB_PATH}
+)
+find_library(PHYSX3COOKING_LIB
+ NAMES PhysX3Cooking${PHYSX_ARCH_FILE}
+ PATHS ${LIB_PATH}
+)
+find_library(LOWLEVEL_LIB
+ NAMES LowLevel${PHYSX_ARCH_FILE}
+ PATHS ${LIB_PATH}
+)
+find_library(LOWLEVELAABB_LIB
+ NAMES LowLevelAABB${PHYSX_ARCH_FILE}
+ PATHS ${LIB_PATH}
+)
+find_library(LOWLEVELCLOTH_LIB
+ NAMES LowLevelCloth${PHYSX_ARCH_FILE}
+ PATHS ${LIB_PATH}
+)
+find_library(LOWLEVELDYNAMICS_LIB
+ NAMES LowLevelDynamics${PHYSX_ARCH_FILE}
+ PATHS ${LIB_PATH}
+)
+find_library(LOWLEVELPARTICLES_LIB
+ NAMES LowLevelParticles${PHYSX_ARCH_FILE}
+ PATHS ${LIB_PATH}
+)
+find_library(SCENEQUERY_LIB
+ NAMES SceneQuery${PHYSX_ARCH_FILE}
+ PATHS ${LIB_PATH}
+)
+find_library(SIMULATIONCONTROLLER_LIB
+ NAMES SimulationController${PHYSX_ARCH_FILE}
+ PATHS ${LIB_PATH}
+)
+
+
+find_library(PHYSX3_LIB_DEBUG
+ NAMES PhysX3DEBUG${PHYSX_ARCH_FILE}
+ PATHS ${LIB_PATH}
+)
+find_library(PHYSX3EXTENSIONS_LIB_DEBUG
+ NAMES PhysX3ExtensionsDEBUG${PHYSX_ARCH_FILE}
+ PATHS ${LIB_PATH}
+)
+find_library(PHYSX3CHARACTERKINEMATIC_LIB_DEBUG
+ NAMES PhysX3CharacterKinematicDEBUG${PHYSX_ARCH_FILE}
+ PATHS ${LIB_PATH}
+)
+find_library(PHYSX3COMMON_LIB_DEBUG
+ NAMES PhysX3CommonDEBUG${PHYSX_ARCH_FILE}
+ PATHS ${LIB_PATH}
+)
+find_library(PHYSX3COOKING_LIB_DEBUG
+ NAMES PhysX3CookingDEBUG${PHYSX_ARCH_FILE}
+ PATHS ${LIB_PATH}
+)
+find_library(LOWLEVEL_LIB_DEBUG
+ NAMES LowLevelDEBUG${PHYSX_ARCH_FILE}
+ PATHS ${LIB_PATH}
+)
+find_library(LOWLEVELAABB_LIB_DEBUG
+ NAMES LowLevelAABBDEBUG${PHYSX_ARCH_FILE}
+ PATHS ${LIB_PATH}
+)
+find_library(LOWLEVELCLOTH_LIB_DEBUG
+ NAMES LowLevelClothDEBUG${PHYSX_ARCH_FILE}
+ PATHS ${LIB_PATH}
+)
+find_library(LOWLEVELDYNAMICS_LIB_DEBUG
+ NAMES LowLevelDynamicsDEBUG${PHYSX_ARCH_FILE}
+ PATHS ${LIB_PATH}
+)
+find_library(LOWLEVELPARTICLES_LIB_DEBUG
+ NAMES LowLevelParticlesDEBUG${PHYSX_ARCH_FILE}
+ PATHS ${LIB_PATH}
+)
+find_library(SCENEQUERY_LIB_DEBUG
+ NAMES SceneQueryDEBUG${PHYSX_ARCH_FILE}
+ PATHS ${LIB_PATH}
+)
+find_library(SIMULATIONCONTROLLER_LIB_DEBUG
+ NAMES SimulationControllerDEBUG${PHYSX_ARCH_FILE}
+ PATHS ${LIB_PATH}
+)
+
+find_library(PHYSX3_LIB_CHECKED
+ NAMES PhysX3CHECKED${PHYSX_ARCH_FILE}
+ PATHS ${LIB_PATH}
+)
+find_library(PHYSX3EXTENSIONS_LIB_CHECKED
+ NAMES PhysX3ExtensionsCHECKED${PHYSX_ARCH_FILE}
+ PATHS ${LIB_PATH}
+)
+find_library(PHYSX3CHARACTERKINEMATIC_LIB_CHECKED
+ NAMES PhysX3CharacterKinematicCHECKED${PHYSX_ARCH_FILE}
+ PATHS ${LIB_PATH}
+)
+find_library(PHYSX3COMMON_LIB_CHECKED
+ NAMES PhysX3CommonCHECKED${PHYSX_ARCH_FILE}
+ PATHS ${LIB_PATH}
+)
+find_library(PHYSX3COOKING_LIB_CHECKED
+ NAMES PhysX3CookingCHECKED${PHYSX_ARCH_FILE}
+ PATHS ${LIB_PATH}
+)
+find_library(LOWLEVEL_LIB_CHECKED
+ NAMES LowLevelCHECKED${PHYSX_ARCH_FILE}
+ PATHS ${LIB_PATH}
+)
+find_library(LOWLEVELAABB_LIB_CHECKED
+ NAMES LowLevelAABBCHECKED${PHYSX_ARCH_FILE}
+ PATHS ${LIB_PATH}
+)
+find_library(LOWLEVELCLOTH_LIB_CHECKED
+ NAMES LowLevelClothCHECKED${PHYSX_ARCH_FILE}
+ PATHS ${LIB_PATH}
+)
+find_library(LOWLEVELDYNAMICS_LIB_CHECKED
+ NAMES LowLevelDynamicsCHECKED${PHYSX_ARCH_FILE}
+ PATHS ${LIB_PATH}
+)
+find_library(LOWLEVELPARTICLES_LIB_CHECKED
+ NAMES LowLevelParticlesCHECKED${PHYSX_ARCH_FILE}
+ PATHS ${LIB_PATH}
+)
+find_library(SCENEQUERY_LIB_CHECKED
+ NAMES SceneQueryCHECKED${PHYSX_ARCH_FILE}
+ PATHS ${LIB_PATH}
+)
+find_library(SIMULATIONCONTROLLER_LIB_CHECKED
+ NAMES SimulationControllerCHECKED${PHYSX_ARCH_FILE}
+ PATHS ${LIB_PATH}
+)
+
+find_library(PHYSX3_LIB_PROFILE
+ NAMES PhysX3PROFILE${PHYSX_ARCH_FILE}
+ PATHS ${LIB_PATH}
+)
+find_library(PHYSX3EXTENSIONS_LIB_PROFILE
+ NAMES PhysX3ExtensionsPROFILE${PHYSX_ARCH_FILE}
+ PATHS ${LIB_PATH}
+)
+find_library(PHYSX3CHARACTERKINEMATIC_LIB_PROFILE
+ NAMES PhysX3CharacterKinematicPROFILE${PHYSX_ARCH_FILE}
+ PATHS ${LIB_PATH}
+)
+find_library(PHYSX3COMMON_LIB_PROFILE
+ NAMES PhysX3CommonPROFILE${PHYSX_ARCH_FILE}
+ PATHS ${LIB_PATH}
+)
+find_library(PHYSX3COOKING_LIB_PROFILE
+ NAMES PhysX3CookingPROFILE${PHYSX_ARCH_FILE}
+ PATHS ${LIB_PATH}
+)
+find_library(LOWLEVEL_LIB_PROFILE
+ NAMES LowLevelPROFILE${PHYSX_ARCH_FILE}
+ PATHS ${LIB_PATH}
+)
+find_library(LOWLEVELAABB_LIB_PROFILE
+ NAMES LowLevelAABBPROFILE${PHYSX_ARCH_FILE}
+ PATHS ${LIB_PATH}
+)
+find_library(LOWLEVELCLOTH_LIB_PROFILE
+ NAMES LowLevelClothPROFILE${PHYSX_ARCH_FILE}
+ PATHS ${LIB_PATH}
+)
+find_library(LOWLEVELDYNAMICS_LIB_PROFILE
+ NAMES LowLevelDynamicsPROFILE${PHYSX_ARCH_FILE}
+ PATHS ${LIB_PATH}
+)
+find_library(LOWLEVELPARTICLES_LIB_PROFILE
+ NAMES LowLevelParticlesPROFILE${PHYSX_ARCH_FILE}
+ PATHS ${LIB_PATH}
+)
+find_library(SCENEQUERY_LIB_PROFILE
+ NAMES SceneQueryPROFILE${PHYSX_ARCH_FILE}
+ PATHS ${LIB_PATH}
+)
+find_library(SIMULATIONCONTROLLER_LIB_PROFILE
+ NAMES SimulationControllerPROFILE${PHYSX_ARCH_FILE}
+ PATHS ${LIB_PATH}
+)
+
+if (TARGET_BUILD_PLATFORM STREQUAL "Windows")
+
+ find_library(PHYSX3GPU_LIB
+ NAMES PhysX3Gpu${PHYSX_ARCH_FILE}
+ PATHS ${LIB_PATH}
+ )
+ find_library(PHYSX3GPU_LIB_DEBUG
+ NAMES PhysX3GpuDEBUG${PHYSX_ARCH_FILE}
+ PATHS ${LIB_PATH}
+ )
+
+
+ SET(DLL_PATH ${PHYSXSDK_PATH}/bin/${VS_STR}${PHYSX_ARCH_FOLDER}-cmake${PHYSX_CRT_SUFFIX})
+
+ find_library(PHYSX3_DLL
+ NAMES PhysX3${PHYSX_ARCH_FILE}
+ PATHS ${DLL_PATH}
+ )
+ find_library(PHYSX3CHARACTERKINEMATIC_DLL
+ NAMES PhysX3CharacterKinematic${PHYSX_ARCH_FILE}
+ PATHS ${DLL_PATH}
+ )
+ find_library(PHYSX3COMMON_DLL
+ NAMES PhysX3Common${PHYSX_ARCH_FILE}
+ PATHS ${DLL_PATH}
+ )
+ find_library(PHYSX3COOKING_DLL
+ NAMES PhysX3Cooking${PHYSX_ARCH_FILE}
+ PATHS ${DLL_PATH}
+ )
+ find_library(PHYSX3GPU_DLL
+ NAMES PhysX3Gpu${PHYSX_ARCH_FILE}
+ PATHS ${DLL_PATH}
+ )
+
+
+ find_library(PHYSX3_DLL_DEBUG
+ NAMES PhysX3DEBUG${PHYSX_ARCH_FILE}
+ PATHS ${DLL_PATH}
+ )
+ find_library(PHYSX3CHARACTERKINEMATIC_DLL_DEBUG
+ NAMES PhysX3CharacterKinematicDEBUG${PHYSX_ARCH_FILE}
+ PATHS ${DLL_PATH}
+ )
+ find_library(PHYSX3COMMON_DLL_DEBUG
+ NAMES PhysX3CommonDEBUG${PHYSX_ARCH_FILE}
+ PATHS ${DLL_PATH}
+ )
+ find_library(PHYSX3COOKING_DLL_DEBUG
+ NAMES PhysX3CookingDEBUG${PHYSX_ARCH_FILE}
+ PATHS ${DLL_PATH}
+ )
+ # NOTE - GPU dlls not included in required dlls or libs as they're optional.
+ find_library(PHYSX3GPU_DLL_DEBUG
+ NAMES PhysX3GpuDEBUG${PHYSX_ARCH_FILE}
+ PATHS ${DLL_PATH}
+ )
+
+ find_library(PHYSX3_DLL_PROFILE
+ NAMES PhysX3PROFILE${PHYSX_ARCH_FILE}
+ PATHS ${DLL_PATH}
+ )
+ find_library(PHYSX3CHARACTERKINEMATIC_DLL_PROFILE
+ NAMES PhysX3CharacterKinematicPROFILE${PHYSX_ARCH_FILE}
+ PATHS ${DLL_PATH}
+ )
+ find_library(PHYSX3COMMON_DLL_PROFILE
+ NAMES PhysX3CommonPROFILE${PHYSX_ARCH_FILE}
+ PATHS ${DLL_PATH}
+ )
+ find_library(PHYSX3COOKING_DLL_PROFILE
+ NAMES PhysX3CookingPROFILE${PHYSX_ARCH_FILE}
+ PATHS ${DLL_PATH}
+ )
+ # NOTE - GPU dlls not included in required dlls or libs as they're optional.
+ find_library(PHYSX3GPU_DLL_PROFILE
+ NAMES PhysX3GpuPROFILE${PHYSX_ARCH_FILE}
+ PATHS ${DLL_PATH}
+ )
+
+ find_library(PHYSX3_DLL_CHECKED
+ NAMES PhysX3CHECKED${PHYSX_ARCH_FILE}
+ PATHS ${DLL_PATH}
+ )
+ find_library(PHYSX3CHARACTERKINEMATIC_DLL_CHECKED
+ NAMES PhysX3CharacterKinematicCHECKED${PHYSX_ARCH_FILE}
+ PATHS ${DLL_PATH}
+ )
+ find_library(PHYSX3COMMON_DLL_CHECKED
+ NAMES PhysX3CommonCHECKED${PHYSX_ARCH_FILE}
+ PATHS ${DLL_PATH}
+ )
+ find_library(PHYSX3COOKING_DLL_CHECKED
+ NAMES PhysX3CookingCHECKED${PHYSX_ARCH_FILE}
+ PATHS ${DLL_PATH}
+ )
+ # NOTE - GPU dlls not included in required dlls or libs as they're optional.
+ find_library(PHYSX3GPU_DLL_CHECKED
+ NAMES PhysX3GpuCHECKED${PHYSX_ARCH_FILE}
+ PATHS ${DLL_PATH}
+ )
+
+ # Create this list to check for found dlls below
+ SET(DLL_VAR_LIST
+ PHYSX3_DLL
+ PHYSX3CHARACTERKINEMATIC_DLL
+ PHYSX3COMMON_DLL
+ PHYSX3COOKING_DLL
+
+ PHYSX3_DLL_DEBUG
+ PHYSX3CHARACTERKINEMATIC_DLL_DEBUG
+ PHYSX3COMMON_DLL_DEBUG
+ PHYSX3COOKING_DLL_DEBUG
+
+ PHYSX3_DLL_PROFILE
+ PHYSX3CHARACTERKINEMATIC_DLL_PROFILE
+ PHYSX3COMMON_DLL_PROFILE
+ PHYSX3COOKING_DLL_PROFILE
+
+ PHYSX3_DLL_CHECKED
+ PHYSX3CHARACTERKINEMATIC_DLL_CHECKED
+ PHYSX3COMMON_DLL_CHECKED
+ PHYSX3COOKING_DLL_CHECKED
+
+ )
+endif()
+
+if (TARGET_BUILD_PLATFORM STREQUAL "linux")
+ SET(BIN_PATH ${PHYSXSDK_PATH}/bin/linux64-cmake)
+ SET(CMAKE_FIND_LIBRARY_SUFFIXES ".so")
+
+ find_library(PHYSX3_LIB
+ NAMES PhysX3${PHYSX_ARCH_FILE}
+ PATHS ${BIN_PATH}
+ )
+ find_library(PHYSX3COOKING_LIB
+ NAMES PhysX3Cooking${PHYSX_ARCH_FILE}
+ PATHS ${BIN_PATH}
+ )
+ find_library(PHYSX3CHARACTERKINEMATIC_LIB
+ NAMES PhysX3CharacterKinematic${PHYSX_ARCH_FILE}
+ PATHS ${BIN_PATH}
+ )
+ find_library(PHYSX3COMMON_LIB
+ NAMES PhysX3Common${PHYSX_ARCH_FILE}
+ PATHS ${BIN_PATH}
+ )
+
+ find_library(PHYSX3_LIB_DEBUG
+ NAMES PhysX3DEBUG${PHYSX_ARCH_FILE}
+ PATHS ${BIN_PATH}
+ )
+ find_library(PHYSX3COOKING_LIB_DEBUG
+ NAMES PhysX3CookingDEBUG${PHYSX_ARCH_FILE}
+ PATHS ${BIN_PATH}
+ )
+ find_library(PHYSX3CHARACTERKINEMATIC_LIB_DEBUG
+ NAMES PhysX3CharacterKinematicDEBUG${PHYSX_ARCH_FILE}
+ PATHS ${BIN_PATH}
+ )
+ find_library(PHYSX3COMMON_LIB_DEBUG
+ NAMES PhysX3CommonDEBUG${PHYSX_ARCH_FILE}
+ PATHS ${BIN_PATH}
+ )
+
+ find_library(PHYSX3_LIB_CHECKED
+ NAMES PhysX3CHECKED${PHYSX_ARCH_FILE}
+ PATHS ${BIN_PATH}
+ )
+ find_library(PHYSX3COOKING_LIB_CHECKED
+ NAMES PhysX3CookingCHECKED${PHYSX_ARCH_FILE}
+ PATHS ${BIN_PATH}
+ )
+ find_library(PHYSX3CHARACTERKINEMATIC_LIB_CHECKED
+ NAMES PhysX3CharacterKinematicCHECKED${PHYSX_ARCH_FILE}
+ PATHS ${BIN_PATH}
+ )
+ find_library(PHYSX3COMMON_LIB_CHECKED
+ NAMES PhysX3CommonCHECKED${PHYSX_ARCH_FILE}
+ PATHS ${BIN_PATH}
+ )
+
+ find_library(PHYSX3_LIB_PROFILE
+ NAMES PhysX3PROFILE${PHYSX_ARCH_FILE}
+ PATHS ${BIN_PATH}
+ )
+ find_library(PHYSX3COOKING_LIB_PROFILE
+ NAMES PhysX3CookingPROFILE${PHYSX_ARCH_FILE}
+ PATHS ${BIN_PATH}
+ )
+ find_library(PHYSX3CHARACTERKINEMATIC_LIB_PROFILE
+ NAMES PhysX3CharacterKinematicPROFILE${PHYSX_ARCH_FILE}
+ PATHS ${BIN_PATH}
+ )
+ find_library(PHYSX3COMMON_LIB_PROFILE
+ NAMES PhysX3CommonPROFILE${PHYSX_ARCH_FILE}
+ PATHS ${BIN_PATH}
+ )
+
+endif()
+
+
+FIND_PACKAGE_HANDLE_STANDARD_ARGS(PHYSXSDK
+ DEFAULT_MSG
+ PHYSXSDK_PATH
+
+ PHYSX3_LIB
+ PHYSX3EXTENSIONS_LIB
+ PHYSX3CHARACTERKINEMATIC_LIB
+ PHYSX3COMMON_LIB
+ PHYSX3COOKING_LIB
+ LOWLEVEL_LIB
+ LOWLEVELAABB_LIB
+ LOWLEVELCLOTH_LIB
+ LOWLEVELDYNAMICS_LIB
+ LOWLEVELPARTICLES_LIB
+ SCENEQUERY_LIB
+ SIMULATIONCONTROLLER_LIB
+
+ PHYSX3_LIB_DEBUG
+ PHYSX3EXTENSIONS_LIB_DEBUG
+ PHYSX3CHARACTERKINEMATIC_LIB_DEBUG
+ PHYSX3COMMON_LIB_DEBUG
+ PHYSX3COOKING_LIB_DEBUG
+ LOWLEVEL_LIB_DEBUG
+ LOWLEVELAABB_LIB_DEBUG
+ LOWLEVELCLOTH_LIB_DEBUG
+ LOWLEVELDYNAMICS_LIB_DEBUG
+ LOWLEVELPARTICLES_LIB_DEBUG
+ SCENEQUERY_LIB_DEBUG
+ SIMULATIONCONTROLLER_LIB_DEBUG
+
+# PHYSX3_LIB_CHECKED
+# PHYSX3EXTENSIONS_LIB_CHECKED
+# PHYSX3CHARACTERKINEMATIC_LIB_CHECKED
+# PHYSX3COMMON_LIB_CHECKED
+# PHYSX3COOKING_LIB_CHECKED
+# LOWLEVEL_LIB_CHECKED
+# LOWLEVELAABB_LIB_CHECKED
+# LOWLEVELCLOTH_LIB_CHECKED
+# LOWLEVELDYNAMICS_LIB_CHECKED
+# LOWLEVELPARTICLES_LIB_CHECKED
+# SCENEQUERY_LIB_CHECKED
+# SIMULATIONCONTROLLER_LIB_CHECKED
+#
+# PHYSX3_LIB_PROFILE
+# PHYSX3EXTENSIONS_LIB_PROFILE
+# PHYSX3CHARACTERKINEMATIC_LIB_PROFILE
+# PHYSX3COMMON_LIB_PROFILE
+# PHYSX3COOKING_LIB_PROFILE
+# LOWLEVEL_LIB_PROFILE
+# LOWLEVELAABB_LIB_PROFILE
+# LOWLEVELCLOTH_LIB_PROFILE
+# LOWLEVELDYNAMICS_LIB_PROFILE
+# LOWLEVELPARTICLES_LIB_PROFILE
+# SCENEQUERY_LIB_PROFILE
+# SIMULATIONCONTROLLER_LIB_PROFILE
+
+ ${DLL_VAR_LIST}
+)
+
+if (PHYSXSDK_FOUND)
+
+ SET(PHYSXSDK_INCLUDE_DIRS
+ ${PHYSXSDK_PATH}/Include
+ ${PHYSXSDK_PATH}/Include/common
+ ${PHYSXSDK_PATH}/Include/cooking
+ ${PHYSXSDK_PATH}/Include/extensions
+ ${PHYSXSDK_PATH}/Include/geometry
+ ${PHYSXSDK_PATH}/Include/gpu
+ ${PHYSXSDK_PATH}/Include/deformable
+ ${PHYSXSDK_PATH}/Include/particles
+ ${PHYSXSDK_PATH}/Include/characterkinematic
+ ${PHYSXSDK_PATH}/Include/characterdynamic
+ ${PHYSXSDK_PATH}/Include/vehicle
+ )
+
+ SET(PHYSXSDK_LIBS_RELEASE ${PHYSX3_LIB} ${PHYSX3EXTENSIONS_LIB} ${PHYSX3CHARACTERKINEMATIC_LIB} ${PHYSX3COMMON_LIB} ${PHYSX3COOKING_LIB} ${PHYSX3GPU_LIB} ${LOWLEVEL_LIB} ${LOWLEVELAABB_LIB} ${LOWLEVELCLOTH_LIB} ${LOWLEVELDYNAMICS_LIB} ${LOWLEVELPARTICLES_LIB} ${SCENEQUERY_LIB} ${SIMULATIONCONTROLLER_LIB}
+ CACHE STRING ""
+ )
+ SET(PHYSXSDK_LIBS_DEBUG ${PHYSX3_LIB_DEBUG} ${PHYSX3EXTENSIONS_LIB_DEBUG} ${PHYSX3CHARACTERKINEMATIC_LIB_DEBUG} ${PHYSX3COMMON_LIB_DEBUG} ${PHYSX3COOKING_LIB_DEBUG} ${PHYSX3GPU_LIB_DEBUG} ${LOWLEVEL_LIB_DEBUG} ${LOWLEVELAABB_LIB_DEBUG} ${LOWLEVELCLOTH_LIB_DEBUG} ${LOWLEVELDYNAMICS_LIB_DEBUG} ${LOWLEVELPARTICLES_LIB_DEBUG} ${SCENEQUERY_LIB_DEBUG} ${SIMULATIONCONTROLLER_LIB_DEBUG}
+ CACHE STRING ""
+ )
+ SET(PHYSXSDK_LIBS_CHECKED ${PHYSX3_LIB_CHECKED} ${PHYSX3EXTENSIONS_LIB_CHECKED} ${PHYSX3CHARACTERKINEMATIC_LIB_CHECKED} ${PHYSX3COMMON_LIB_CHECKED} ${PHYSX3COOKING_LIB_CHECKED} ${PHYSX3GPU_LIB_CHECKED} ${LOWLEVEL_LIB_CHECKED} ${LOWLEVELAABB_LIB_CHECKED} ${LOWLEVELCLOTH_LIB_CHECKED} ${LOWLEVELDYNAMICS_LIB_CHECKED} ${LOWLEVELPARTICLES_LIB_CHECKED} ${SCENEQUERY_LIB_CHECKED} ${SIMULATIONCONTROLLER_LIB_CHECKED}
+ CACHE STRING ""
+ )
+ SET(PHYSXSDK_LIBS_PROFILE ${PHYSX3_LIB_PROFILE} ${PHYSX3EXTENSIONS_LIB_PROFILE} ${PHYSX3CHARACTERKINEMATIC_LIB_PROFILE} ${PHYSX3COMMON_LIB_PROFILE} ${PHYSX3COOKING_LIB_PROFILE} ${PHYSX3GPU_LIB_PROFILE} ${LOWLEVEL_LIB_PROFILE} ${LOWLEVELAABB_LIB_PROFILE} ${LOWLEVELCLOTH_LIB_PROFILE} ${LOWLEVELDYNAMICS_LIB_PROFILE} ${LOWLEVELPARTICLES_LIB_PROFILE} ${SCENEQUERY_LIB_PROFILE} ${SIMULATIONCONTROLLER_LIB_PROFILE}
+ CACHE STRING ""
+ )
+
+ #NOTE: This is all dll configs, might need to be split.
+ SET(PHYSXSDK_DLLS
+ ${PHYSX3_DLL} ${PHYSX3CHARACTERKINEMATIC_DLL} ${PHYSX3COMMON_DLL} ${PHYSX3COOKING_DLL} ${PHYSX3GPU_DLL}
+ ${PHYSX3_DLL_DEBUG} ${PHYSX3CHARACTERKINEMATIC_DLL_DEBUG} ${PHYSX3COMMON_DLL_DEBUG} ${PHYSX3COOKING_DLL_DEBUG} ${PHYSX3GPU_DLL_DEBUG}
+ ${PHYSX3_DLL_PROFILE} ${PHYSX3CHARACTERKINEMATIC_DLL_PROFILE} ${PHYSX3COMMON_DLL_PROFILE} ${PHYSX3COOKING_DLL_PROFILE} ${PHYSX3GPU_DLL_PROFILE}
+ ${PHYSX3_DLL_CHECKED} ${PHYSX3CHARACTERKINEMATIC_DLL_CHECKED} ${PHYSX3COMMON_DLL_CHECKED} ${PHYSX3COOKING_DLL_CHECKED} ${PHYSX3GPU_DLL_CHECKED}
+ )
+
+ SET(PHYSXSDK_LIBRARIES "" CACHE STRING "")
+
+ foreach(x ${PHYSXSDK_LIBS_RELEASE})
+ list(APPEND PHYSXSDK_LIBRARIES optimized ${x})
+ endforeach()
+
+ foreach(x ${PHYSXSDK_LIBS_DEBUG})
+ list(APPEND PHYSXSDK_LIBRARIES debug ${x})
+ endforeach()
+endif()
diff --git a/sdk/compiler/cmake/modules/FindPxSharedSDK.cmake b/sdk/compiler/cmake/modules/FindPxSharedSDK.cmake
new file mode 100644
index 0000000..0f67f5c
--- /dev/null
+++ b/sdk/compiler/cmake/modules/FindPxSharedSDK.cmake
@@ -0,0 +1,293 @@
+# - Try to find PxShared binary SDK
+# - Sets PXSHAREDSDK_LIBS_DEBUG and PXSHAREDSDK_LIBS_RELEASE - lists of the libraries found
+# - Sets PXSHAREDSDK_INCLUDE_DIRS
+# - Sets PXSHAREDSDK_DLLS - List of the DLLs to copy to the bin directory of projects that depend on this
+
+include(FindPackageHandleStandardArgs)
+
+# Find the includes
+
+# TODO: Do the version stuff properly!
+find_path(PXSHAREDSDK_PATH include/foundation/Px.h
+ PATHS
+ ${GW_DEPS_ROOT}/$ENV{PM_PxShared_NAME}/${PxSharedSDK_FIND_VERSION}
+ ${GW_DEPS_ROOT}/PxShared/${PxSharedSDK_FIND_VERSION}
+)
+
+if (TARGET_BUILD_PLATFORM STREQUAL "Windows")
+ # If the project pulling in this dependency needs the static crt, then append that to the path.
+ if (STATIC_WINCRT)
+ SET(PXSHARED_CRT_SUFFIX "-staticcrt")
+ else()
+ SET(PXSHARED_CRT_SUFFIX "")
+ endif()
+
+ if (CMAKE_CL_64)
+ SET(PXSHARED_ARCH_FOLDER "win64")
+ SET(PXSHARED_ARCH_FILE "_x64")
+ else()
+ SET(PXSHARED_ARCH_FOLDER "win32")
+ SET(PXSHARED_ARCH_FILE "_x86")
+ endif()
+
+ # What compiler version do we want?
+
+ if (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 18.0.0.0 AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS 19.0.0.0)
+ SET(VS_STR "vc12")
+ elseif(CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 19.0.0.0)
+ SET(VS_STR "vc14")
+ else()
+ MESSAGE(FATAL_ERROR "Failed to find compatible PxSharedSDK - Only supporting VS2013 and VS2015")
+ endif()
+
+ SET(LIB_PATH ${PXSHAREDSDK_PATH}/lib/${VS_STR}${PXSHARED_ARCH_FOLDER}-cmake${PXSHARED_CRT_SUFFIX})
+ SET(CMAKE_FIND_LIBRARY_SUFFIXES ".lib" ".dll")
+
+elseif(TARGET_BUILD_PLATFORM STREQUAL "PS4")
+ SET(LIB_PATH ${PXSHAREDSDK_PATH}/lib/vc14ps4-cmake)
+ SET(CMAKE_FIND_LIBRARY_SUFFIXES ".a")
+ SET(CMAKE_FIND_LIBRARY_PREFIXES "lib")
+elseif(TARGET_BUILD_PLATFORM STREQUAL "XboxOne")
+ SET(LIB_PATH ${PXSHAREDSDK_PATH}/lib/vc14xboxone-cmake)
+ SET(CMAKE_FIND_LIBRARY_SUFFIXES ".a")
+ SET(CMAKE_FIND_LIBRARY_PREFIXES "lib")
+elseif(TARGET_BUILD_PLATFORM STREQUAL "linux")
+ SET(LIB_PATH ${PXSHAREDSDK_PATH}/lib/linux64-cmake)
+ SET(CMAKE_FIND_LIBRARY_SUFFIXES ".a")
+ SET(CMAKE_FIND_LIBRARY_PREFIXES "lib")
+ SET(PXSHARED_ARCH_FILE "_x64")
+endif()
+
+
+# Now find all of the PhysX libs in the lib directory
+
+
+find_library(PSFASTXML_LIB
+ NAMES PsFastXml${PXSHARED_ARCH_FILE}
+ PATHS ${LIB_PATH}
+)
+find_library(PXFOUNDATION_LIB
+ NAMES PxFoundation${PXSHARED_ARCH_FILE}
+ PATHS ${LIB_PATH}
+)
+find_library(PXPVDSDK_LIB
+ NAMES PxPvdSDK${PXSHARED_ARCH_FILE}
+ PATHS ${LIB_PATH}
+)
+find_library(PXTASK_LIB
+ NAMES PxTask${PXSHARED_ARCH_FILE}
+ PATHS ${LIB_PATH}
+)
+
+find_library(PSFASTXML_LIB_DEBUG
+ NAMES PsFastXmlDEBUG${PXSHARED_ARCH_FILE}
+ PATHS ${LIB_PATH}
+)
+find_library(PXFOUNDATION_LIB_DEBUG
+ NAMES PxFoundationDEBUG${PXSHARED_ARCH_FILE}
+ PATHS ${LIB_PATH}
+)
+find_library(PXPVDSDK_LIB_DEBUG
+ NAMES PxPvdSDKDEBUG${PXSHARED_ARCH_FILE}
+ PATHS ${LIB_PATH}
+)
+find_library(PXTASK_LIB_DEBUG
+ NAMES PxTaskDEBUG${PXSHARED_ARCH_FILE}
+ PATHS ${LIB_PATH}
+)
+
+find_library(PSFASTXML_LIB_CHECKED
+ NAMES PsFastXmlCHECKED${PXSHARED_ARCH_FILE}
+ PATHS ${LIB_PATH}
+)
+find_library(PXFOUNDATION_LIB_CHECKED
+ NAMES PxFoundationCHECKED${PXSHARED_ARCH_FILE}
+ PATHS ${LIB_PATH}
+)
+find_library(PXPVDSDK_LIB_CHECKED
+ NAMES PxPvdSDKCHECKED${PXSHARED_ARCH_FILE}
+ PATHS ${LIB_PATH}
+)
+find_library(PXTASK_LIB_CHECKED
+ NAMES PxTaskCHECKED${PXSHARED_ARCH_FILE}
+ PATHS ${LIB_PATH}
+)
+
+find_library(PSFASTXML_LIB_PROFILE
+ NAMES PsFastXmlPROFILE${PXSHARED_ARCH_FILE}
+ PATHS ${LIB_PATH}
+)
+find_library(PXFOUNDATION_LIB_PROFILE
+ NAMES PxFoundationPROFILE${PXSHARED_ARCH_FILE}
+ PATHS ${LIB_PATH}
+)
+find_library(PXPVDSDK_LIB_PROFILE
+ NAMES PxPvdSDKPROFILE${PXSHARED_ARCH_FILE}
+ PATHS ${LIB_PATH}
+)
+find_library(PXTASK_LIB_PROFILE
+ NAMES PxTaskPROFILE${PXSHARED_ARCH_FILE}
+ PATHS ${LIB_PATH}
+)
+
+if (TARGET_BUILD_PLATFORM STREQUAL "Windows")
+ SET(DLL_PATH ${PXSHAREDSDK_PATH}/bin/${VS_STR}${PXSHARED_ARCH_FOLDER}-cmake${PXSHARED_CRT_SUFFIX})
+
+ find_library(PXFOUNDATION_DLL
+ NAMES PxFoundation${PXSHARED_ARCH_FILE}
+ PATHS ${DLL_PATH}
+ )
+ find_library(PXPVDSDK_DLL
+ NAMES PxPvdSDK${PXSHARED_ARCH_FILE}
+ PATHS ${DLL_PATH}
+ )
+
+ find_library(PXFOUNDATION_DLL_DEBUG
+ NAMES PxFoundationDEBUG${PXSHARED_ARCH_FILE}
+ PATHS ${DLL_PATH}
+ )
+ find_library(PXPVDSDK_DLL_DEBUG
+ NAMES PxPvdSDKDEBUG${PXSHARED_ARCH_FILE}
+ PATHS ${DLL_PATH}
+ )
+
+ find_library(PXFOUNDATION_DLL_CHECKED
+ NAMES PxFoundationCHECKED${PXSHARED_ARCH_FILE}
+ PATHS ${DLL_PATH}
+ )
+ find_library(PXPVDSDK_DLL_CHECKED
+ NAMES PxPvdSDKCHECKED${PXSHARED_ARCH_FILE}
+ PATHS ${DLL_PATH}
+ )
+
+ find_library(PXFOUNDATION_DLL_PROFILE
+ NAMES PxFoundationPROFILE${PXSHARED_ARCH_FILE}
+ PATHS ${DLL_PATH}
+ )
+ find_library(PXPVDSDK_DLL_PROFILE
+ NAMES PxPvdSDKPROFILE${PXSHARED_ARCH_FILE}
+ PATHS ${DLL_PATH}
+ )
+
+ #Put the found dll variables in a list if we actually looked for them (windows)
+ SET(DLL_VAR_LIST
+ PXFOUNDATION_DLL
+ PXPVDSDK_DLL
+
+ PXFOUNDATION_DLL_DEBUG
+ PXPVDSDK_DLL_DEBUG
+
+ PXFOUNDATION_DLL_CHECKED
+ PXPVDSDK_DLL_CHECKED
+
+ PXFOUNDATION_DLL_PROFILE
+ PXPVDSDK_DLL_PROFILE
+
+ )
+endif()
+
+if (TARGET_BUILD_PLATFORM STREQUAL "linux")
+ SET(BIN_PATH ${PXSHAREDSDK_PATH}/bin/linux64-cmake)
+ SET(CMAKE_FIND_LIBRARY_SUFFIXES ".so")
+
+ find_library(PXFOUNDATION_LIB
+ NAMES PxFoundation${PXSHARED_ARCH_FILE}
+ PATHS ${BIN_PATH}
+ )
+ find_library(PXPVDSDK_LIB
+ NAMES PxPvdSDK${PXSHARED_ARCH_FILE}
+ PATHS ${BIN_PATH}
+ )
+
+ find_library(PXFOUNDATION_LIB_DEBUG
+ NAMES PxFoundationDEBUG${PXSHARED_ARCH_FILE}
+ PATHS ${BIN_PATH}
+ )
+ find_library(PXPVDSDK_LIB_DEBUG
+ NAMES PxPvdSDKDEBUG${PXSHARED_ARCH_FILE}
+ PATHS ${BIN_PATH}
+ )
+endif()
+
+FIND_PACKAGE_HANDLE_STANDARD_ARGS(PXSHAREDSDK
+ DEFAULT_MSG
+ PXSHAREDSDK_PATH
+
+ PSFASTXML_LIB
+ PXFOUNDATION_LIB
+ PXPVDSDK_LIB
+ PXTASK_LIB
+
+ PSFASTXML_LIB_DEBUG
+ PXFOUNDATION_LIB_DEBUG
+ PXPVDSDK_LIB_DEBUG
+ PXTASK_LIB_DEBUG
+
+# PSFASTXML_LIB_CHECKED
+# PXFOUNDATION_LIB_CHECKED
+# PXPVDSDK_LIB_CHECKED
+# PXTASK_LIB_CHECKED
+#
+# PSFASTXML_LIB_PROFILE
+# PXFOUNDATION_LIB_PROFILE
+# PXPVDSDK_LIB_PROFILE
+# PXTASK_LIB_PROFILE
+
+
+ ${DLL_VAR_LIST}
+)
+
+if (PXSHAREDSDK_FOUND)
+
+ # NOTE: This include list is way too long and reaches into too many internals.
+ # Also may not be good enough for all users.
+ SET(PXSHAREDSDK_INCLUDE_DIRS
+ ${PXSHAREDSDK_PATH}/include
+ ${PXSHAREDSDK_PATH}/include/pvd
+ ${PXSHAREDSDK_PATH}/include/task
+ ${PXSHAREDSDK_PATH}/include/filebuf
+ ${PXSHAREDSDK_PATH}/include/foundation
+ ${PXSHAREDSDK_PATH}/src/foundation/include
+ ${PXSHAREDSDK_PATH}/src/filebuf/include
+ ${PXSHAREDSDK_PATH}/src/fastxml/include
+ )
+
+ SET(PXSHAREDSDK_LIBS_RELEASE ${PSFASTXML_LIB} ${PXFOUNDATION_LIB} ${PXPVDSDK_LIB} ${PXTASK_LIB}
+ CACHE STRING ""
+ )
+ SET(PXSHAREDSDK_LIBS_DEBUG ${PSFASTXML_LIB_DEBUG} ${PXFOUNDATION_LIB_DEBUG} ${PXPVDSDK_LIB_DEBUG} ${PXTASK_LIB_DEBUG}
+ CACHE STRING ""
+ )
+
+ SET(PXSHAREDSDK_LIBS_CHECKED ${PSFASTXML_LIB_CHECKED} ${PXFOUNDATION_LIB_CHECKED} ${PXPVDSDK_LIB_CHECKED} ${PXTASK_LIB_CHECKED}
+ CACHE STRING ""
+ )
+
+ SET(PXSHAREDSDK_LIBS_PROFILE ${PSFASTXML_LIB_PROFILE} ${PXFOUNDATION_LIB_PROFILE} ${PXPVDSDK_LIB_PROFILE} ${PXTASK_LIB_PROFILE}
+ CACHE STRING ""
+ )
+
+ SET(PXSHAREDSDK_DLLS
+ ${PXFOUNDATION_DLL}
+ ${PXPVDSDK_DLL}
+
+ ${PXFOUNDATION_DLL_DEBUG}
+ ${PXPVDSDK_DLL_DEBUG}
+
+ ${PXFOUNDATION_DLL_CHECKED}
+ ${PXPVDSDK_DLL_CHECKED}
+
+ ${PXFOUNDATION_DLL_PROFILE}
+ ${PXPVDSDK_DLL_PROFILE}
+ )
+
+ SET(PXSHAREDSDK_LIBRARIES "" CACHE STRING "")
+
+ foreach(x ${PXSHAREDSDK_LIBS_RELEASE})
+ list(APPEND PXSHAREDSDK_LIBRARIES optimized ${x})
+ endforeach()
+
+ foreach(x ${PXSHAREDSDK_LIBS_DEBUG})
+ list(APPEND PXSHAREDSDK_LIBRARIES debug ${x})
+ endforeach()
+endif()
diff --git a/sdk/compiler/cmake/modules/FindXDK.cmake b/sdk/compiler/cmake/modules/FindXDK.cmake
new file mode 100644
index 0000000..601dd8f
--- /dev/null
+++ b/sdk/compiler/cmake/modules/FindXDK.cmake
@@ -0,0 +1,257 @@
+# - Try to find XDLK
+# - Sets XDK_LIBRARIES - list of the libraries found
+# - Sets XDK_INCLUDE_DIRS
+
+include(FindPackageHandleStandardArgs)
+
+# Find the includes
+
+# TODO: Do the version stuff properly!
+# TODO: Handle a binary dep version of the XDK
+find_path(XDK_PATH include/winrt/Windows.Xbox.UI.h
+ PATHS
+ $ENV{XboxOneXDKLatest}/xdk
+)
+
+SET(LIB_PATH ${XDK_PATH}/Lib/amd64/)
+SET(CMAKE_FIND_LIBRARY_PREFIXES "")
+SET(CMAKE_FIND_LIBRARY_SUFFIXES ".lib")
+
+MESSAGE("XDK LIB PATH: ${LIB_PATH}")
+
+find_library(ACPHAL_LIB
+ NAMES acphal
+ PATHS ${LIB_PATH}
+)
+
+find_library(APPMODEL_LIB
+ NAMES appmodel
+ PATHS ${LIB_PATH}
+)
+
+find_library(BCRYPT_LIB
+ NAMES bcrypt
+ PATHS ${LIB_PATH}
+)
+
+find_library(COMBASE_LIB
+ NAMES combase
+ PATHS ${LIB_PATH}
+)
+
+find_library(CONSOLEID_LIB
+ NAMES consoleid
+ PATHS ${LIB_PATH}
+)
+
+find_library(D3D11_X_LIB
+ NAMES d3d11_x
+ PATHS ${LIB_PATH}
+)
+
+find_library(D3D12_X_LIB
+ NAMES d3d12_x
+ PATHS ${LIB_PATH}
+)
+
+find_library(D3DCOMPILER_LIB
+ NAMES d3dcompiler
+ PATHS ${LIB_PATH}
+)
+
+find_library(DXGUID_LIB
+ NAMES dxguid
+ PATHS ${LIB_PATH}
+)
+
+find_library(ETWPLUS_LIB
+ NAMES etwplus
+ PATHS ${LIB_PATH}
+)
+
+find_library(IXMLHTTPREQUEST2_LIB
+ NAMES ixmlhttprequest2
+ PATHS ${LIB_PATH}
+)
+
+find_library(KERNELX_LIB
+ NAMES kernelx
+ PATHS ${LIB_PATH}
+)
+
+find_library(KSTUDIOCLIENT_LIB
+ NAMES kstudioclient
+ PATHS ${LIB_PATH}
+)
+
+find_library(MFPLAT_LIB
+ NAMES mfplat
+ PATHS ${LIB_PATH}
+)
+
+find_library(MFREADWRITE_LIB
+ NAMES mfreadwrite
+ PATHS ${LIB_PATH}
+)
+
+find_library(MFUUID_LIB
+ NAMES mfuuid
+ PATHS ${LIB_PATH}
+)
+
+find_library(MMDEVAPI_LIB
+ NAMES mmdevapi
+ PATHS ${LIB_PATH}
+)
+
+find_library(PIXEVT_LIB
+ NAMES PIXEvt
+ PATHS ${LIB_PATH}
+)
+
+find_library(RPCRT4_LIB
+ NAMES rpcrt4
+ PATHS ${LIB_PATH}
+)
+
+find_library(SMARTGLASSINTEROP_LIB
+ NAMES smartglassinterop
+ PATHS ${LIB_PATH}
+)
+
+find_library(STRMIIDS_LIB
+ NAMES strmiids
+ PATHS ${LIB_PATH}
+)
+
+find_library(TOOLHELPX_LIB
+ NAMES toolhelpx
+ PATHS ${LIB_PATH}
+)
+
+find_library(UUID_LIB
+ NAMES uuid
+ PATHS ${LIB_PATH}
+)
+
+find_library(WINDOWSCODECS_LIB
+ NAMES windowscodecs
+ PATHS ${LIB_PATH}
+)
+
+find_library(WMCODECDSPUUID_LIB
+ NAMES wmcodecdspuuid
+ PATHS ${LIB_PATH}
+)
+
+find_library(WS2_32_LIB
+ NAMES ws2_32
+ PATHS ${LIB_PATH}
+)
+
+find_library(XAPOBASE_LIB
+ NAMES xapobase
+ PATHS ${LIB_PATH}
+)
+
+find_library(XAUDIO2_LIB
+ NAMES xaudio2
+ PATHS ${LIB_PATH}
+)
+
+find_library(XG_X_LIB
+ NAMES xg_x
+ PATHS ${LIB_PATH}
+)
+
+find_library(XI_LIB
+ NAMES xi
+ PATHS ${LIB_PATH}
+)
+
+find_library(XSTUDIOCLIENT_LIB
+ NAMES xstudioclient
+ PATHS ${LIB_PATH}
+)
+
+
+
+FIND_PACKAGE_HANDLE_STANDARD_ARGS(XDK
+ DEFAULT_MSG
+ XDK_PATH
+
+ ACPHAL_LIB
+ APPMODEL_LIB
+ BCRYPT_LIB
+ COMBASE_LIB
+ CONSOLEID_LIB
+ D3D11_X_LIB
+ D3D12_X_LIB
+ D3DCOMPILER_LIB
+ DXGUID_LIB
+ ETWPLUS_LIB
+ IXMLHTTPREQUEST2_LIB
+ KERNELX_LIB
+ KSTUDIOCLIENT_LIB
+ MFPLAT_LIB
+ MFREADWRITE_LIB
+ MFUUID_LIB
+ MMDEVAPI_LIB
+ PIXEVT_LIB
+ RPCRT4_LIB
+ SMARTGLASSINTEROP_LIB
+ STRMIIDS_LIB
+ TOOLHELPX_LIB
+ UUID_LIB
+ WINDOWSCODECS_LIB
+ WMCODECDSPUUID_LIB
+ WS2_32_LIB
+ XAPOBASE_LIB
+ XAUDIO2_LIB
+ XG_X_LIB
+ XI_LIB
+ XSTUDIOCLIENT_LIB
+)
+
+if (XDK_FOUND)
+ SET(XDK_INCLUDE_DIRS
+ ${XDK_PATH}/Include
+ ${XDK_PATH}/Include/shared
+ ${XDK_PATH}/Include/um
+ ${XDK_PATH}/Include/winrt
+ )
+
+ SET(XDK_LIBRARIES
+ ${ACPHAL_LIB}
+ ${APPMODEL_LIB}
+ ${BCRYPT_LIB}
+ ${COMBASE_LIB}
+ ${CONSOLEID_LIB}
+ ${D3D11_X_LIB}
+ ${D3D12_X_LIB}
+ ${D3DCOMPILER_LIB}
+ ${DXGUID_LIB}
+ ${ETWPLUS_LIB}
+ ${IXMLHTTPREQUEST2_LIB}
+ ${KERNELX_LIB}
+ ${KSTUDIOCLIENT_LIB}
+ ${MFPLAT_LIB}
+ ${MFREADWRITE_LIB}
+ ${MFUUID_LIB}
+ ${MMDEVAPI_LIB}
+ ${PIXEVT_LIB}
+ ${RPCRT4_LIB}
+ ${SMARTGLASSINTEROP_LIB}
+ ${STRMIIDS_LIB}
+ ${TOOLHELPX_LIB}
+ ${UUID_LIB}
+ ${WINDOWSCODECS_LIB}
+ ${WMCODECDSPUUID_LIB}
+ ${WS2_32_LIB}
+ ${XAPOBASE_LIB}
+ ${XAUDIO2_LIB}
+ ${XG_X_LIB}
+ ${XI_LIB}
+ ${XSTUDIOCLIENT_LIB}
+ )
+endif()