aboutsummaryrefslogtreecommitdiff
path: root/PxShared/src/compiler
diff options
context:
space:
mode:
authormtamis <[email protected]>2017-02-15 16:06:25 +0100
committermtamis <[email protected]>2017-02-15 16:06:25 +0100
commit85305930aeeb1d513e23522bd91f29ba81aa6d14 (patch)
tree45f1bb20a45a300d1fef107e436cac95602a0e57 /PxShared/src/compiler
downloadnvcloth-85305930aeeb1d513e23522bd91f29ba81aa6d14.tar.xz
nvcloth-85305930aeeb1d513e23522bd91f29ba81aa6d14.zip
NvCloth library v1.0.0
Diffstat (limited to 'PxShared/src/compiler')
-rw-r--r--PxShared/src/compiler/cmake/Android/CMakeLists.txt43
-rw-r--r--PxShared/src/compiler/cmake/Android/PsFastXml.cmake40
-rw-r--r--PxShared/src/compiler/cmake/Android/PxFoundation.cmake62
-rw-r--r--PxShared/src/compiler/cmake/Android/PxPvdSDK.cmake44
-rw-r--r--PxShared/src/compiler/cmake/Android/PxTask.cmake39
-rw-r--r--PxShared/src/compiler/cmake/IOS/CMakeLists.txt73
-rw-r--r--PxShared/src/compiler/cmake/IOS/PsFastXml.cmake22
-rw-r--r--PxShared/src/compiler/cmake/IOS/PxFoundation.cmake40
-rw-r--r--PxShared/src/compiler/cmake/IOS/PxPvdSDK.cmake24
-rw-r--r--PxShared/src/compiler/cmake/IOS/PxTask.cmake18
-rw-r--r--PxShared/src/compiler/cmake/Linux/CMakeLists.txt87
-rw-r--r--PxShared/src/compiler/cmake/Linux/PsFastXml.cmake40
-rw-r--r--PxShared/src/compiler/cmake/Linux/PxCudaContextManager.cmake29
-rw-r--r--PxShared/src/compiler/cmake/Linux/PxFoundation.cmake67
-rw-r--r--PxShared/src/compiler/cmake/Linux/PxPvdSDK.cmake53
-rw-r--r--PxShared/src/compiler/cmake/Linux/PxTask.cmake43
-rw-r--r--PxShared/src/compiler/cmake/Mac/CMakeLists.txt48
-rw-r--r--PxShared/src/compiler/cmake/Mac/PsFastXml.cmake22
-rw-r--r--PxShared/src/compiler/cmake/Mac/PxFoundation.cmake40
-rw-r--r--PxShared/src/compiler/cmake/Mac/PxPvdSDK.cmake28
-rw-r--r--PxShared/src/compiler/cmake/Mac/PxTask.cmake18
-rw-r--r--PxShared/src/compiler/cmake/Modules/FindPxShared.cmake18
-rw-r--r--PxShared/src/compiler/cmake/Modules/FindnvToolsExt.cmake38
-rw-r--r--PxShared/src/compiler/cmake/RegenProjects.bat4
-rw-r--r--PxShared/src/compiler/cmake/common/CMakeLists.txt84
-rw-r--r--PxShared/src/compiler/cmake/common/PsFastXml.cmake37
-rw-r--r--PxShared/src/compiler/cmake/common/PxCudaContextManager.cmake77
-rw-r--r--PxShared/src/compiler/cmake/common/PxFoundation.cmake118
-rw-r--r--PxShared/src/compiler/cmake/common/PxPvdSDK.cmake123
-rw-r--r--PxShared/src/compiler/cmake/common/PxTask.cmake44
-rw-r--r--PxShared/src/compiler/cmake/findfileswithspec.py23
-rw-r--r--PxShared/src/compiler/cmake/html5/CMakeLists.txt36
-rw-r--r--PxShared/src/compiler/cmake/html5/PsFastXml.cmake26
-rw-r--r--PxShared/src/compiler/cmake/html5/PxFoundation.cmake41
-rw-r--r--PxShared/src/compiler/cmake/html5/PxPvdSDK.cmake31
-rw-r--r--PxShared/src/compiler/cmake/html5/PxTask.cmake22
-rw-r--r--PxShared/src/compiler/cmake/windows/CMakeLists.txt90
-rw-r--r--PxShared/src/compiler/cmake/windows/PsFastXml.cmake21
-rw-r--r--PxShared/src/compiler/cmake/windows/PxCudaContextManager.cmake32
-rw-r--r--PxShared/src/compiler/cmake/windows/PxFoundation.cmake70
-rw-r--r--PxShared/src/compiler/cmake/windows/PxPvdSDK.cmake55
-rw-r--r--PxShared/src/compiler/cmake/windows/PxTask.cmake19
-rw-r--r--PxShared/src/compiler/resource_x64/PxFoundation.rcbin0 -> 4622 bytes
-rw-r--r--PxShared/src/compiler/resource_x64/PxPvdSDK.rcbin0 -> 4590 bytes
-rw-r--r--PxShared/src/compiler/resource_x64/resource.h44
-rw-r--r--PxShared/src/compiler/resource_x86/PxFoundation.rcbin0 -> 4622 bytes
-rw-r--r--PxShared/src/compiler/resource_x86/PxPvdSDK.rcbin0 -> 4590 bytes
-rw-r--r--PxShared/src/compiler/resource_x86/resource.h44
48 files changed, 1977 insertions, 0 deletions
diff --git a/PxShared/src/compiler/cmake/Android/CMakeLists.txt b/PxShared/src/compiler/cmake/Android/CMakeLists.txt
new file mode 100644
index 0000000..0499c29
--- /dev/null
+++ b/PxShared/src/compiler/cmake/Android/CMakeLists.txt
@@ -0,0 +1,43 @@
+cmake_minimum_required(VERSION 3.3)
+include(../common/CMakeLists.txt)
+
+STRING(TOLOWER "${CMAKE_BUILD_TYPE}" CMAKE_BUILD_TYPE_LOWERCASE)
+
+IF(NOT DEFINED TARGET_BUILD_PLATFORM) # Not defined, default to Android
+ SET(TARGET_BUILD_PLATFORM "Android")
+ENDIF()
+
+SET(PLATFORM_LIST Android)
+
+IF (NOT ${TARGET_BUILD_PLATFORM} IN_LIST PLATFORM_LIST)
+ MESSAGE(FATAL_ERROR "Invalid platform:" ${TARGET_BUILD_PLATFORM})
+ENDIF()
+
+if(${ANDROID_ABI} STREQUAL "armeabi-v7a")
+ SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -fno-rtti -fno-exceptions -ffast-math -ffunction-sections -fdata-sections -D__STDC_LIMIT_MACROS -Wno-invalid-offsetof ")
+elseif(${ANDROID_ABI} STREQUAL "arm64-v8a")
+ SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -fno-rtti -fno-exceptions -ffast-math -ffunction-sections -fdata-sections -D__STDC_LIMIT_MACROS -Wno-invalid-offsetof ")
+elseif(${ANDROID_ABI} STREQUAL "x86")
+ SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -fno-rtti -fno-exceptions -ffast-math -ffunction-sections -fdata-sections -D__STDC_LIMIT_MACROS -Wno-invalid-offsetof -fpack-struct=8 -malign-double ")
+elseif(${ANDROID_ABI} STREQUAL "x86_64")
+ SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -fno-rtti -fno-exceptions -ffast-math -ffunction-sections -fdata-sections -D__STDC_LIMIT_MACROS -Wno-invalid-offsetof -mstackrealign -msse3 ")
+endif()
+
+SET(CMAKE_CXX_FLAGS_DEBUG "-O0 -g")
+SET(CMAKE_CXX_FLAGS_CHECKED "-O2")
+SET(CMAKE_CXX_FLAGS_PROFILE "-O2")
+SET(CMAKE_CXX_FLAGS_RELEASE "-O2")
+
+SET(PXSHARED_ANDROID_COMPILE_DEFS _LIB;)
+SET(PXSHARED_ANDROID_DEBUG_COMPILE_DEFS _DEBUG;PX_DEBUG=1;PX_CHECKED=1)
+SET(PXSHARED_ANDROID_CHECKED_COMPILE_DEFS NDEBUG;PX_CHECKED=1)
+SET(PXSHARED_ANDROID_PROFILE_COMPILE_DEFS NDEBUG;PX_PROFILE=1)
+SET(PXSHARED_ANDROID_RELEASE_COMPILE_DEFS NDEBUG)
+
+# NOTE: PxCudaContextManager excluded on this platform
+
+# Include project cmake files here
+INCLUDE(PxFoundation.cmake)
+INCLUDE(PsFastXml.cmake)
+INCLUDE(PxPvdSDK.cmake)
+INCLUDE(PxTask.cmake)
diff --git a/PxShared/src/compiler/cmake/Android/PsFastXml.cmake b/PxShared/src/compiler/cmake/Android/PsFastXml.cmake
new file mode 100644
index 0000000..81d356e
--- /dev/null
+++ b/PxShared/src/compiler/cmake/Android/PsFastXml.cmake
@@ -0,0 +1,40 @@
+#
+# Build PsFastXml
+#
+
+SET(PXSHARED_SOURCE_DIR ${PROJECT_SOURCE_DIR}/../../../../src)
+
+SET(LL_SOURCE_DIR ${PXSHARED_SOURCE_DIR}/fastxml)
+
+# Use generator expressions to set config specific preprocessor definitions
+SET(PSFASTXML_COMPILE_DEFS
+ # Common to all configurations
+ ${PXSHARED_ANDROID_COMPILE_DEFS};PX_FOUNDATION_DLL=0;PxShared_STATIC_LIB;
+)
+
+if(${CMAKE_BUILD_TYPE_LOWERCASE} STREQUAL "debug")
+ LIST(APPEND PSFASTXML_COMPILE_DEFS
+ ${PXSHARED_ANDROID_DEBUG_COMPILE_DEFS}
+ )
+elseif(${CMAKE_BUILD_TYPE_LOWERCASE} STREQUAL "checked")
+ LIST(APPEND PSFASTXML_COMPILE_DEFS
+ ${PXSHARED_ANDROID_CHECKED_COMPILE_DEFS}
+ )
+elseif(${CMAKE_BUILD_TYPE_LOWERCASE} STREQUAL "profile")
+ LIST(APPEND PSFASTXML_COMPILE_DEFS
+ ${PXSHARED_ANDROID_PROFILE_COMPILE_DEFS}
+ )
+elseif(${CMAKE_BUILD_TYPE_LOWERCASE} STREQUAL release)
+ LIST(APPEND PSFASTXML_COMPILE_DEFS
+ ${PXSHARED_ANDROID_RELEASE_COMPILE_DEFS}
+ )
+else(${CMAKE_BUILD_TYPE_LOWERCASE} STREQUAL "debug")
+ MESSAGE(FATAL_ERROR "Unknown configuration ${CMAKE_BUILD_TYPE}")
+endif(${CMAKE_BUILD_TYPE_LOWERCASE} STREQUAL "debug")
+
+
+# include PsFastXml common
+INCLUDE(../common/PsFastXml.cmake)
+
+# enable -fPIC so we can link static libs with the editor
+SET_TARGET_PROPERTIES(PsFastXml PROPERTIES POSITION_INDEPENDENT_CODE TRUE)
diff --git a/PxShared/src/compiler/cmake/Android/PxFoundation.cmake b/PxShared/src/compiler/cmake/Android/PxFoundation.cmake
new file mode 100644
index 0000000..c23a327
--- /dev/null
+++ b/PxShared/src/compiler/cmake/Android/PxFoundation.cmake
@@ -0,0 +1,62 @@
+#
+# Build PxFoundation
+#
+
+SET(PXSHARED_SOURCE_DIR ${PROJECT_SOURCE_DIR}/../../../../src)
+
+SET(LL_SOURCE_DIR ${PXSHARED_SOURCE_DIR}/foundation)
+
+SET(PXFOUNDATION_LIBTYPE STATIC)
+
+SET(PXFOUNDATION_PLATFORM_FILES
+ ${LL_SOURCE_DIR}/src/unix/PsUnixAtomic.cpp
+ ${LL_SOURCE_DIR}/src/unix/PsUnixCpu.cpp
+ ${LL_SOURCE_DIR}/src/unix/PsUnixFPU.cpp
+ ${LL_SOURCE_DIR}/src/unix/PsUnixMutex.cpp
+ ${LL_SOURCE_DIR}/src/unix/PsUnixPrintString.cpp
+ ${LL_SOURCE_DIR}/src/unix/PsUnixSList.cpp
+ ${LL_SOURCE_DIR}/src/unix/PsUnixSocket.cpp
+ ${LL_SOURCE_DIR}/src/unix/PsUnixSync.cpp
+ ${LL_SOURCE_DIR}/src/unix/PsUnixThread.cpp
+ ${LL_SOURCE_DIR}/src/unix/PsUnixTime.cpp
+ ${ANDROID_NDK}/sources/android/cpufeatures/cpu-features.c
+)
+
+SET(PXFOUNDATION_PLATFORM_INCLUDES
+ ${LL_SOURCE_DIR}/include/linux
+ ${ANDROID_NDK}/sources/android/cpufeatures
+)
+
+SET(PXFOUNDATION_COMPILE_DEFS
+ # Common to all configurations
+ ${PXSHARED_ANDROID_COMPILE_DEFS};PxShared_STATIC_LIB;
+)
+
+if(${CMAKE_BUILD_TYPE_LOWERCASE} STREQUAL "debug")
+ LIST(APPEND PXFOUNDATION_COMPILE_DEFS
+ ${PXSHARED_ANDROID_DEBUG_COMPILE_DEFS}
+ )
+elseif(${CMAKE_BUILD_TYPE_LOWERCASE} STREQUAL "checked")
+ LIST(APPEND PXFOUNDATION_COMPILE_DEFS
+ ${PXSHARED_ANDROID_CHECKED_COMPILE_DEFS}
+ )
+elseif(${CMAKE_BUILD_TYPE_LOWERCASE} STREQUAL "profile")
+ LIST(APPEND PXFOUNDATION_COMPILE_DEFS
+ ${PXSHARED_ANDROID_PROFILE_COMPILE_DEFS}
+ )
+elseif(${CMAKE_BUILD_TYPE_LOWERCASE} STREQUAL release)
+ LIST(APPEND PXFOUNDATION_COMPILE_DEFS
+ ${PXSHARED_ANDROID_RELEASE_COMPILE_DEFS}
+ )
+else(${CMAKE_BUILD_TYPE_LOWERCASE} STREQUAL "debug")
+ MESSAGE(FATAL_ERROR "Unknown configuration ${CMAKE_BUILD_TYPE}")
+endif(${CMAKE_BUILD_TYPE_LOWERCASE} STREQUAL "debug")
+
+
+# include PxFoundation common
+INCLUDE(../common/PxFoundation.cmake)
+
+TARGET_LINK_LIBRARIES(PxFoundation PUBLIC log)
+
+# enable -fPIC so we can link static libs with the editor
+SET_TARGET_PROPERTIES(PxFoundation PROPERTIES POSITION_INDEPENDENT_CODE TRUE)
diff --git a/PxShared/src/compiler/cmake/Android/PxPvdSDK.cmake b/PxShared/src/compiler/cmake/Android/PxPvdSDK.cmake
new file mode 100644
index 0000000..f517efc
--- /dev/null
+++ b/PxShared/src/compiler/cmake/Android/PxPvdSDK.cmake
@@ -0,0 +1,44 @@
+#
+# Build PxPvdSDK
+#
+
+SET(PXSHARED_SOURCE_DIR ${PROJECT_SOURCE_DIR}/../../../../src)
+
+SET(LL_SOURCE_DIR ${PXSHARED_SOURCE_DIR}/pvd)
+
+SET(PXPVDSDK_LIBTYPE STATIC)
+
+# Use generator expressions to set config specific preprocessor definitions
+SET(PXPVDSDK_COMPILE_DEFS
+ # Common to all configurations
+ ${PXSHARED_ANDROID_COMPILE_DEFS};PxShared_STATIC_LIB;
+)
+
+if(${CMAKE_BUILD_TYPE_LOWERCASE} STREQUAL "debug")
+ LIST(APPEND PXPVDSDK_COMPILE_DEFS
+ ${PXSHARED_ANDROID_DEBUG_COMPILE_DEFS}
+ )
+elseif(${CMAKE_BUILD_TYPE_LOWERCASE} STREQUAL "checked")
+ LIST(APPEND PXPVDSDK_COMPILE_DEFS
+ ${PXSHARED_ANDROID_CHECKED_COMPILE_DEFS}
+ )
+elseif(${CMAKE_BUILD_TYPE_LOWERCASE} STREQUAL "profile")
+ LIST(APPEND PXPVDSDK_COMPILE_DEFS
+ ${PXSHARED_ANDROID_PROFILE_COMPILE_DEFS}
+ )
+elseif(${CMAKE_BUILD_TYPE_LOWERCASE} STREQUAL release)
+ LIST(APPEND PXPVDSDK_COMPILE_DEFS
+ ${PXSHARED_ANDROID_RELEASE_COMPILE_DEFS}
+ )
+else(${CMAKE_BUILD_TYPE_LOWERCASE} STREQUAL "debug")
+ MESSAGE(FATAL_ERROR "Unknown configuration ${CMAKE_BUILD_TYPE}")
+endif(${CMAKE_BUILD_TYPE_LOWERCASE} STREQUAL "debug")
+
+# include PxPvdSDK common
+INCLUDE(../common/PxPvdSDK.cmake)
+
+# Add linked libraries
+TARGET_LINK_LIBRARIES(PxPvdSDK PRIVATE PxFoundation)
+
+# enable -fPIC so we can link static libs with the editor
+SET_TARGET_PROPERTIES(PxPvdSDK PROPERTIES POSITION_INDEPENDENT_CODE TRUE)
diff --git a/PxShared/src/compiler/cmake/Android/PxTask.cmake b/PxShared/src/compiler/cmake/Android/PxTask.cmake
new file mode 100644
index 0000000..e02aefd
--- /dev/null
+++ b/PxShared/src/compiler/cmake/Android/PxTask.cmake
@@ -0,0 +1,39 @@
+#
+# Build PxTask
+#
+
+SET(PXSHARED_SOURCE_DIR ${PROJECT_SOURCE_DIR}/../../../../src)
+
+SET(LL_SOURCE_DIR ${PXSHARED_SOURCE_DIR}/task)
+
+SET(PXTASK_COMPILE_DEFS
+ ${PXSHARED_ANDROID_COMPILE_DEFS};PxShared_STATIC_LIB;
+)
+
+if(${CMAKE_BUILD_TYPE_LOWERCASE} STREQUAL "debug")
+ LIST(APPEND PXTASK_COMPILE_DEFS
+ ${PXSHARED_ANDROID_DEBUG_COMPILE_DEFS}
+ )
+elseif(${CMAKE_BUILD_TYPE_LOWERCASE} STREQUAL "checked")
+ LIST(APPEND PXTASK_COMPILE_DEFS
+ ${PXSHARED_ANDROID_CHECKED_COMPILE_DEFS}
+ )
+elseif(${CMAKE_BUILD_TYPE_LOWERCASE} STREQUAL "profile")
+ LIST(APPEND PXTASK_COMPILE_DEFS
+ ${PXSHARED_ANDROID_PROFILE_COMPILE_DEFS}
+ )
+elseif(${CMAKE_BUILD_TYPE_LOWERCASE} STREQUAL release)
+ LIST(APPEND PXTASK_COMPILE_DEFS
+ ${PXSHARED_ANDROID_RELEASE_COMPILE_DEFS}
+ )
+else(${CMAKE_BUILD_TYPE_LOWERCASE} STREQUAL "debug")
+ MESSAGE(FATAL_ERROR "Unknown configuration ${CMAKE_BUILD_TYPE}")
+endif(${CMAKE_BUILD_TYPE_LOWERCASE} STREQUAL "debug")
+
+SET(PXTASK_LIBTYPE OBJECT)
+
+# include PxTask common
+INCLUDE(../common/PxTask.cmake)
+
+# enable -fPIC so we can link static libs with the editor
+SET_TARGET_PROPERTIES(PxTask PROPERTIES POSITION_INDEPENDENT_CODE TRUE)
diff --git a/PxShared/src/compiler/cmake/IOS/CMakeLists.txt b/PxShared/src/compiler/cmake/IOS/CMakeLists.txt
new file mode 100644
index 0000000..d281e32
--- /dev/null
+++ b/PxShared/src/compiler/cmake/IOS/CMakeLists.txt
@@ -0,0 +1,73 @@
+cmake_minimum_required(VERSION 3.3)
+include(../common/CMakeLists.txt)
+
+
+IF(NOT DEFINED TARGET_BUILD_PLATFORM) # Not defined, default to IOS
+ SET(TARGET_BUILD_PLATFORM "IOS")
+ENDIF()
+
+SET(PLATFORM_LIST IOS)
+
+IF (NOT ${TARGET_BUILD_PLATFORM} IN_LIST PLATFORM_LIST)
+ MESSAGE(FATAL_ERROR "Invalid platform:" ${TARGET_BUILD_PLATFORM})
+ENDIF()
+
+SET(CMAKE_CXX_FLAGS "-std=c++11 -fno-rtti -fno-exceptions -ffast-math -ffunction-sections -fdata-sections -Werror -ferror-limit=0 -Wall -Wextra -fstrict-aliasing -Wstrict-aliasing=2 -Weverything -Wno-documentation-deprecated-sync -Wno-documentation-unknown-command -Wno-float-equal -Wno-padded -Wno-weak-vtables -Wno-cast-align -Wno-conversion -Wno-missing-noreturn -Wno-missing-variable-declarations -Wno-shift-sign-overflow -Wno-covered-switch-default -Wno-exit-time-destructors -Wno-global-constructors -Wno-missing-prototypes -Wno-unreachable-code -Wno-unused-macros -Wno-unused-member-function -Wno-used-but-marked-unused -Wno-weak-template-vtables -Wno-deprecated -Wno-non-virtual-dtor -Wno-invalid-noreturn -Wno-return-type-c-linkage -Wno-reserved-id-macro -Wno-c++98-compat-pedantic -Wno-unused-local-typedef -Wno-old-style-cast -Wno-newline-eof -Wno-unused-private-field -Wno-undefined-reinterpret-cast -Wno-invalid-offsetof -gdwarf-2")
+
+SET(CMAKE_SHARED_LINKER_FLAGS "")
+
+SET(CMAKE_CXX_FLAGS_DEBUG "-O0 -g")
+SET(CMAKE_CXX_FLAGS_CHECKED "-O3 -g")
+SET(CMAKE_CXX_FLAGS_PROFILE "-O3 -g")
+SET(CMAKE_CXX_FLAGS_RELEASE "-O3 -g")
+
+SET(CMAKE_OSX_DEPLOYMENT_TARGET "")
+
+SET(CMAKE_OSX_ARCHITECTURES "armv7 armv7s arm64")
+
+SET(IOS_PLATFORM_LOCATION "iPhoneOS.platform")
+
+# Setup iOS developer location unless specified manually with CMAKE_IOS_DEVELOPER_ROOT
+EXEC_PROGRAM(/usr/bin/xcode-select ARGS -print-path OUTPUT_VARIABLE CMAKE_XCODE_DEVELOPER_DIR)
+SET(XCODE_ROOT "${CMAKE_XCODE_DEVELOPER_DIR}/Platforms/${IOS_PLATFORM_LOCATION}/Developer")
+IF(NOT DEFINED CMAKE_IOS_DEVELOPER_ROOT)
+ IF(EXISTS ${XCODE_ROOT})
+ SET(CMAKE_IOS_DEVELOPER_ROOT ${XCODE_ROOT})
+ ENDIF(EXISTS ${XCODE_ROOT})
+ENDIF(NOT DEFINED CMAKE_IOS_DEVELOPER_ROOT)
+SET(CMAKE_IOS_DEVELOPER_ROOT ${CMAKE_IOS_DEVELOPER_ROOT} CACHE PATH "Location of iOS Platform")
+
+# Find and use the most recent iOS sdk unless specified manually with CMAKE_IOS_SDK_ROOT
+IF(NOT DEFINED CMAKE_IOS_SDK_ROOT)
+ FILE(GLOB _CMAKE_IOS_SDKS "${CMAKE_IOS_DEVELOPER_ROOT}/SDKs/*")
+ IF(_CMAKE_IOS_SDKS)
+ LIST(SORT _CMAKE_IOS_SDKS)
+ LIST(REVERSE _CMAKE_IOS_SDKS)
+ LIST(GET _CMAKE_IOS_SDKS 0 CMAKE_IOS_SDK_ROOT)
+ ELSE(_CMAKE_IOS_SDKS)
+ MESSAGE(FATAL_ERROR "No iOS SDK's found in default search path ${CMAKE_IOS_DEVELOPER_ROOT}. Manually set CMAKE_IOS_SDK_ROOT or install the iOS SDK.")
+ ENDIF(_CMAKE_IOS_SDKS)
+ MESSAGE(STATUS "Toolchain using default iOS SDK: ${CMAKE_IOS_SDK_ROOT}")
+ENDIF(NOT DEFINED CMAKE_IOS_SDK_ROOT)
+SET(CMAKE_IOS_SDK_ROOT ${CMAKE_IOS_SDK_ROOT} CACHE PATH "Location of the selected iOS SDK")
+
+# Set the sysroot default to the most recent SDK
+SET(CMAKE_OSX_SYSROOT ${CMAKE_IOS_SDK_ROOT} CACHE PATH "Sysroot used for iOS support")
+
+SET(CMAKE_XCODE_ATTRIBUTE_SUPPORTED_PLATFORMS "iphoneos")
+SET(CMAKE_XCODE_ATTRIBUTE_SDKROOT ${CMAKE_IOS_SDK_ROOT})
+SET(CMAKE_XCODE_ATTRIBUTE_IPHONEOS_DEPLOYMENT_TARGET "7.0")
+
+SET(PXSHARED_IOS_COMPILE_DEFS _LIB;DISABLE_CUDA_PHYSX;DISABLE_COMPUTE_PHYSX)
+SET(PXSHARED_IOS_DEBUG_COMPILE_DEFS _DEBUG;PX_DEBUG=1;PX_CHECKED=1)
+SET(PXSHARED_IOS_CHECKED_COMPILE_DEFS NDEBUG;PX_CHECKED=1)
+SET(PXSHARED_IOS_PROFILE_COMPILE_DEFS NDEBUG;PX_PROFILE=1)
+SET(PXSHARED_IOS_RELEASE_COMPILE_DEFS NDEBUG)
+
+# NOTE: PxCudaContextManager excluded on this platform
+
+# Include project cmake files here
+INCLUDE(PxFoundation.cmake)
+INCLUDE(PsFastXml.cmake)
+INCLUDE(PxPvdSDK.cmake)
+INCLUDE(PxTask.cmake)
diff --git a/PxShared/src/compiler/cmake/IOS/PsFastXml.cmake b/PxShared/src/compiler/cmake/IOS/PsFastXml.cmake
new file mode 100644
index 0000000..28b2a1b
--- /dev/null
+++ b/PxShared/src/compiler/cmake/IOS/PsFastXml.cmake
@@ -0,0 +1,22 @@
+#
+# Build PsFastXml
+#
+
+SET(PXSHARED_SOURCE_DIR ${PROJECT_SOURCE_DIR}/../../../../src)
+
+SET(LL_SOURCE_DIR ${PXSHARED_SOURCE_DIR}/fastxml)
+
+# Use generator expressions to set config specific preprocessor definitions
+SET(PSFASTXML_COMPILE_DEFS
+
+ # Common to all configurations
+ ${PXSHARED_IOS_COMPILE_DEFS};PX_FOUNDATION_DLL=0;
+
+ $<$<CONFIG:debug>:${PXSHARED_IOS_DEBUG_COMPILE_DEFS};>
+ $<$<CONFIG:checked>:${PXSHARED_IOS_CHECKED_COMPILE_DEFS};>
+ $<$<CONFIG:profile>:${PXSHARED_IOS_PROFILE_COMPILE_DEFS};>
+ $<$<CONFIG:release>:${PXSHARED_IOS_RELEASE_COMPILE_DEFS};>
+)
+
+# include PsFastXml common
+INCLUDE(../common/PsFastXml.cmake) \ No newline at end of file
diff --git a/PxShared/src/compiler/cmake/IOS/PxFoundation.cmake b/PxShared/src/compiler/cmake/IOS/PxFoundation.cmake
new file mode 100644
index 0000000..7d022cf
--- /dev/null
+++ b/PxShared/src/compiler/cmake/IOS/PxFoundation.cmake
@@ -0,0 +1,40 @@
+#
+# Build PxFoundation
+#
+
+SET(PXSHARED_SOURCE_DIR ${PROJECT_SOURCE_DIR}/../../../../src)
+
+SET(LL_SOURCE_DIR ${PXSHARED_SOURCE_DIR}/foundation)
+
+SET(PXFOUNDATION_LIBTYPE STATIC)
+
+SET(PXFOUNDATION_PLATFORM_FILES
+ ${LL_SOURCE_DIR}/src/unix/PsUnixAtomic.cpp
+ ${LL_SOURCE_DIR}/src/unix/PsUnixCpu.cpp
+ ${LL_SOURCE_DIR}/src/unix/PsUnixFPU.cpp
+ ${LL_SOURCE_DIR}/src/unix/PsUnixMutex.cpp
+ ${LL_SOURCE_DIR}/src/unix/PsUnixPrintString.cpp
+ ${LL_SOURCE_DIR}/src/unix/PsUnixSList.cpp
+ ${LL_SOURCE_DIR}/src/unix/PsUnixSocket.cpp
+ ${LL_SOURCE_DIR}/src/unix/PsUnixSync.cpp
+ ${LL_SOURCE_DIR}/src/unix/PsUnixThread.cpp
+ ${LL_SOURCE_DIR}/src/unix/PsUnixTime.cpp
+)
+
+SET(PXFOUNDATION_PLATFORM_INCLUDES
+ ${LL_SOURCE_DIR}/include/ios
+)
+
+SET(PXFOUNDATION_COMPILE_DEFS
+
+ # Common to all configurations
+ ${PXSHARED_IOS_COMPILE_DEFS}
+
+ $<$<CONFIG:debug>:${PXSHARED_IOS_DEBUG_COMPILE_DEFS}>
+ $<$<CONFIG:checked>:${PXSHARED_IOS_CHECKED_COMPILE_DEFS}>
+ $<$<CONFIG:profile>:${PXSHARED_IOS_PROFILE_COMPILE_DEFS}>
+ $<$<CONFIG:release>:${PXSHARED_IOS_RELEASE_COMPILE_DEFS}>
+)
+
+# include PxFoundation common
+INCLUDE(../common/PxFoundation.cmake) \ No newline at end of file
diff --git a/PxShared/src/compiler/cmake/IOS/PxPvdSDK.cmake b/PxShared/src/compiler/cmake/IOS/PxPvdSDK.cmake
new file mode 100644
index 0000000..85e7e1f
--- /dev/null
+++ b/PxShared/src/compiler/cmake/IOS/PxPvdSDK.cmake
@@ -0,0 +1,24 @@
+#
+# Build PxPvdSDK
+#
+
+SET(PXSHARED_SOURCE_DIR ${PROJECT_SOURCE_DIR}/../../../../src)
+
+SET(LL_SOURCE_DIR ${PXSHARED_SOURCE_DIR}/pvd)
+
+SET(PXPVDSDK_LIBTYPE STATIC)
+
+# Use generator expressions to set config specific preprocessor definitions
+SET(PXPVDSDK_COMPILE_DEFS
+
+ # Common to all configurations
+ ${PXSHARED_IOS_COMPILE_DEFS}
+
+ $<$<CONFIG:debug>:${PXSHARED_IOS_DEBUG_COMPILE_DEFS}>
+ $<$<CONFIG:checked>:${PXSHARED_IOS_CHECKED_COMPILE_DEFS}>
+ $<$<CONFIG:profile>:${PXSHARED_IOS_PROFILE_COMPILE_DEFS}>
+ $<$<CONFIG:release>:${PXSHARED_IOS_RELEASE_COMPILE_DEFS}>
+)
+
+# include PxPvdSDK common
+INCLUDE(../common/PxPvdSDK.cmake)
diff --git a/PxShared/src/compiler/cmake/IOS/PxTask.cmake b/PxShared/src/compiler/cmake/IOS/PxTask.cmake
new file mode 100644
index 0000000..197e241
--- /dev/null
+++ b/PxShared/src/compiler/cmake/IOS/PxTask.cmake
@@ -0,0 +1,18 @@
+#
+# Build PxTask
+#
+
+SET(PXSHARED_SOURCE_DIR ${PROJECT_SOURCE_DIR}/../../../../src)
+
+SET(LL_SOURCE_DIR ${PXSHARED_SOURCE_DIR}/task)
+
+SET(PXTASK_COMPILE_DEFS
+ ${PXSHARED_IOS_COMPILE_DEFS};PX_FOUNDATION_DLL=0;
+ $<$<CONFIG:debug>:${PXSHARED_IOS_DEBUG_COMPILE_DEFS};>
+ $<$<CONFIG:checked>:${PXSHARED_IOS_CHECKED_COMPILE_DEFS};>
+ $<$<CONFIG:profile>:${PXSHARED_IOS_PROFILE_COMPILE_DEFS};>
+ $<$<CONFIG:release>:${PXSHARED_IOS_RELEASE_COMPILE_DEFS};>
+)
+
+# include PxTask common
+INCLUDE(../common/PxTask.cmake) \ No newline at end of file
diff --git a/PxShared/src/compiler/cmake/Linux/CMakeLists.txt b/PxShared/src/compiler/cmake/Linux/CMakeLists.txt
new file mode 100644
index 0000000..2fa592e
--- /dev/null
+++ b/PxShared/src/compiler/cmake/Linux/CMakeLists.txt
@@ -0,0 +1,87 @@
+cmake_minimum_required(VERSION 3.3)
+include(../common/CMakeLists.txt)
+
+STRING(TOLOWER "${CMAKE_BUILD_TYPE}" CMAKE_BUILD_TYPE_LOWERCASE)
+
+IF(NOT DEFINED TARGET_BUILD_PLATFORM) # Not defined, default to Linux
+ SET(TARGET_BUILD_PLATFORM "Linux")
+ENDIF()
+
+SET(PLATFORM_LIST Linux)
+
+IF (NOT ${TARGET_BUILD_PLATFORM} IN_LIST PLATFORM_LIST)
+ MESSAGE(FATAL_ERROR "Invalid platform:" ${TARGET_BUILD_PLATFORM})
+ENDIF()
+
+IF (${CMAKE_LIBRARY_ARCHITECTURE} STREQUAL "x86_64-unknown-linux-gnu" OR ${CMAKE_LIBRARY_ARCHITECTURE} STREQUAL "x86_64-linux-gnu")
+ IF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
+ # using Clang
+ SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -fno-rtti -fno-exceptions -ffast-math -ffunction-sections -fdata-sections -Werror -ferror-limit=0 -Wall -Wextra -fstrict-aliasing -Wstrict-aliasing=2 -Weverything -Wno-documentation-deprecated-sync -Wno-documentation-unknown-command -Wno-float-equal -Wno-padded -Wno-weak-vtables -Wno-cast-align -Wno-conversion -Wno-missing-noreturn -Wno-missing-variable-declarations -Wno-shift-sign-overflow -Wno-covered-switch-default -Wno-exit-time-destructors -Wno-global-constructors -Wno-missing-prototypes -Wno-unreachable-code -Wno-unused-macros -Wno-unused-member-function -Wno-used-but-marked-unused -Wno-weak-template-vtables -Wno-deprecated -Wno-non-virtual-dtor -Wno-invalid-noreturn -Wno-return-type-c-linkage -Wno-reserved-id-macro -Wno-c++98-compat-pedantic -Wno-unused-local-typedef -Wno-old-style-cast -Wno-newline-eof -Wno-unused-private-field -Wno-undefined-func-template -Wno-format-nonliteral -Wno-implicit-fallthrough -Wno-undefined-reinterpret-cast")
+ ELSEIF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")
+ # using GCC
+ SET(LIBPATH_SUFFIX "x64")
+ SET(CMAKE_CXX_FLAGS "-Werror -m64 -fPIC -msse2 -mfpmath=sse -ffast-math -fno-exceptions -fno-rtti -fvisibility=hidden -fvisibility-inlines-hidden -Wall -Wextra -fno-strict-aliasing -fdiagnostics-show-option -Wno-invalid-offsetof -Wno-uninitialized -Wno-missing-field-initializers")
+ ENDIF("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
+ELSEIF(${CMAKE_LIBRARY_ARCHITECTURE} STREQUAL "arm-unknown-linux-gnueabihf")
+ SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -mfpu=neon -fno-rtti -fno-exceptions -ffast-math -ffunction-sections -fdata-sections -Werror -ferror-limit=0 -Wall -Wextra -fstrict-aliasing -Wstrict-aliasing=2 -Weverything -Wno-documentation-deprecated-sync -Wno-documentation-unknown-command -Wno-float-equal -Wno-padded -Wno-weak-vtables -Wno-cast-align -Wno-conversion -Wno-missing-noreturn -Wno-missing-variable-declarations -Wno-shift-sign-overflow -Wno-covered-switch-default -Wno-exit-time-destructors -Wno-global-constructors -Wno-missing-prototypes -Wno-unreachable-code -Wno-unused-macros -Wno-unused-member-function -Wno-used-but-marked-unused -Wno-weak-template-vtables -Wno-deprecated -Wno-non-virtual-dtor -Wno-old-style-cast -Wno-return-type-c-linkage -Wno-format-nonliteral -Wno-implicit-fallthrough")
+ELSEIF(${CMAKE_LIBRARY_ARCHITECTURE} STREQUAL "aarch64-unknown-linux-gnueabi")
+ SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -fno-rtti -fno-exceptions -ffast-math -ffunction-sections -fdata-sections -Werror -ferror-limit=0 -Wall -Wextra -fstrict-aliasing -Wstrict-aliasing=2 -Weverything -Wno-documentation-deprecated-sync -Wno-documentation-unknown-command -Wno-float-equal -Wno-padded -Wno-weak-vtables -Wno-cast-align -Wno-conversion -Wno-missing-noreturn -Wno-missing-variable-declarations -Wno-shift-sign-overflow -Wno-covered-switch-default -Wno-exit-time-destructors -Wno-global-constructors -Wno-missing-prototypes -Wno-unreachable-code -Wno-unused-macros -Wno-unused-member-function -Wno-used-but-marked-unused -Wno-weak-template-vtables -Wno-deprecated -Wno-non-virtual-dtor -Wno-old-style-cast -Wno-return-type-c-linkage -Wno-format-nonliteral -Wno-unused-local-typedef -Wno-implicit-fallthrough")
+ELSE(${CMAKE_LIBRARY_ARCHITECTURE} STREQUAL "x86_64-unknown-linux-gnu" OR ${CMAKE_LIBRARY_ARCHITECTURE} STREQUAL "x86_64-linux-gnu")
+ MESSAGE(FATAL_ERROR "Unknown CMAKE_LIBRARY_ARCHITECTURE ${CMAKE_LIBRARY_ARCHITECTURE}")
+ENDIF(${CMAKE_LIBRARY_ARCHITECTURE} STREQUAL "x86_64-unknown-linux-gnu" OR ${CMAKE_LIBRARY_ARCHITECTURE} STREQUAL "x86_64-linux-gnu")
+
+
+SET(CMAKE_CXX_FLAGS_DEBUG "-O0 -g -gdwarf-3")
+SET(CMAKE_CXX_FLAGS_CHECKED "-O3 -g -gdwarf-3")
+SET(CMAKE_CXX_FLAGS_PROFILE "-O3 -g -gdwarf-3")
+SET(CMAKE_CXX_FLAGS_RELEASE "-O3 -g -gdwarf-3")
+
+IF(DEFINED PX_GENERATE_GPU_PROJECTS)
+SET(PXSHARED_LINUX_COMPILE_DEFS _LIB)
+ELSE()
+# Disable cuda and dx for all projects on windows
+SET(PXSHARED_LINUX_COMPILE_DEFS _LIB;DISABLE_CUDA_PHYSX;)
+ENDIF()
+SET(PXSHARED_LINUX_DEBUG_COMPILE_DEFS _DEBUG;PX_DEBUG=1;PX_CHECKED=1)
+SET(PXSHARED_LINUX_CHECKED_COMPILE_DEFS NDEBUG;PX_CHECKED=1)
+SET(PXSHARED_LINUX_PROFILE_COMPILE_DEFS NDEBUG;PX_PROFILE=1)
+SET(PXSHARED_LINUX_RELEASE_COMPILE_DEFS NDEBUG)
+
+IF(DEFINED LIBPATH_SUFFIX)
+ SET(CMAKE_DEBUG_POSTFIX "${CMAKE_DEBUG_POSTFIX}_${LIBPATH_SUFFIX}")
+ SET(CMAKE_PROFILE_POSTFIX "${CMAKE_PROFILE_POSTFIX}_${LIBPATH_SUFFIX}")
+ SET(CMAKE_CHECKED_POSTFIX "${CMAKE_CHECKED_POSTFIX}_${LIBPATH_SUFFIX}")
+ SET(CMAKE_RELEASE_POSTFIX "${CMAKE_RELEASE_POSTFIX}_${LIBPATH_SUFFIX}")
+ENDIF()
+
+# NOTE: PxCudaContextManager excluded on this platform
+
+# Include project cmake files here
+IF(DEFINED PX_SELECT_COMPONENTS)
+ if ("PxFoundation" IN_LIST PX_SELECT_COMPONENTS)
+ INCLUDE(PxFoundation.cmake)
+ endif()
+ if ("PsFastXml" IN_LIST PX_SELECT_COMPONENTS)
+ INCLUDE(PsFastXml.cmake)
+ endif()
+ if ("PxPvdSDK" IN_LIST PX_SELECT_COMPONENTS)
+ INCLUDE(PxPvdSDK.cmake)
+ endif()
+ if ("PxTask" IN_LIST PX_SELECT_COMPONENTS)
+ INCLUDE(PxTask.cmake)
+ endif()
+ if ("PxCudaContextManager" IN_LIST PX_SELECT_COMPONENTS)
+ IF(DEFINED PX_GENERATE_GPU_PROJECTS)
+ INCLUDE(PxCudaContextManager.cmake)
+ ENDIF()
+ endif()
+ELSE()
+INCLUDE(PxFoundation.cmake)
+INCLUDE(PsFastXml.cmake)
+INCLUDE(PxPvdSDK.cmake)
+INCLUDE(PxTask.cmake)
+IF(DEFINED PX_GENERATE_GPU_PROJECTS)
+ INCLUDE(PxCudaContextManager.cmake)
+ENDIF()
+ENDIF()
+
diff --git a/PxShared/src/compiler/cmake/Linux/PsFastXml.cmake b/PxShared/src/compiler/cmake/Linux/PsFastXml.cmake
new file mode 100644
index 0000000..3c90c49
--- /dev/null
+++ b/PxShared/src/compiler/cmake/Linux/PsFastXml.cmake
@@ -0,0 +1,40 @@
+#
+# Build PsFastXml
+#
+
+SET(PXSHARED_SOURCE_DIR ${PROJECT_SOURCE_DIR}/../../../../src)
+
+SET(LL_SOURCE_DIR ${PXSHARED_SOURCE_DIR}/fastxml)
+
+# Use generator expressions to set config specific preprocessor definitions
+SET(PSFASTXML_COMPILE_DEFS
+ # Common to all configurations
+ ${PXSHARED_LINUX_COMPILE_DEFS};PX_FOUNDATION_DLL=0;
+)
+
+if(${CMAKE_BUILD_TYPE_LOWERCASE} STREQUAL "debug")
+ LIST(APPEND PSFASTXML_COMPILE_DEFS
+ ${PXSHARED_LINUX_DEBUG_COMPILE_DEFS}
+ )
+elseif(${CMAKE_BUILD_TYPE_LOWERCASE} STREQUAL "checked")
+ LIST(APPEND PSFASTXML_COMPILE_DEFS
+ ${PXSHARED_LINUX_CHECKED_COMPILE_DEFS}
+ )
+elseif(${CMAKE_BUILD_TYPE_LOWERCASE} STREQUAL "profile")
+ LIST(APPEND PSFASTXML_COMPILE_DEFS
+ ${PXSHARED_LINUX_PROFILE_COMPILE_DEFS}
+ )
+elseif(${CMAKE_BUILD_TYPE_LOWERCASE} STREQUAL release)
+ LIST(APPEND PSFASTXML_COMPILE_DEFS
+ ${PXSHARED_LINUX_RELEASE_COMPILE_DEFS}
+ )
+else(${CMAKE_BUILD_TYPE_LOWERCASE} STREQUAL "debug")
+ MESSAGE(FATAL_ERROR "Unknown configuration ${CMAKE_BUILD_TYPE}")
+endif(${CMAKE_BUILD_TYPE_LOWERCASE} STREQUAL "debug")
+
+
+# include PsFastXml common
+INCLUDE(../common/PsFastXml.cmake)
+
+# enable -fPIC so we can link static libs with the editor
+SET_TARGET_PROPERTIES(PsFastXml PROPERTIES POSITION_INDEPENDENT_CODE TRUE)
diff --git a/PxShared/src/compiler/cmake/Linux/PxCudaContextManager.cmake b/PxShared/src/compiler/cmake/Linux/PxCudaContextManager.cmake
new file mode 100644
index 0000000..3454323
--- /dev/null
+++ b/PxShared/src/compiler/cmake/Linux/PxCudaContextManager.cmake
@@ -0,0 +1,29 @@
+#
+# Build PxCudaContextManager
+#
+
+FIND_PACKAGE(CUDA REQUIRED)
+
+SET(PXSHARED_SOURCE_DIR ${PROJECT_SOURCE_DIR}/../../../../src)
+
+SET(LL_SOURCE_DIR ${PXSHARED_SOURCE_DIR}/cudamanager)
+
+SET(CUDA_COMPILER_OPTION_DEBUG "--compiler-options=-Wall,-O3,-fPIC,-msse2,-mfpmath=sse,-malign-double,-m64,-fvisibility=hidden")
+SET(CUDA_COMPILER_OPTION_CHECKED "--compiler-options=-Wall,-O3,-fPIC,-msse2,-mfpmath=sse,-malign-double,-m64,-fvisibility=hidden")
+SET(CUDA_COMPILER_OPTION_PROFILE "--compiler-options=-Wall,-O3,-fPIC,-msse2,-mfpmath=sse,-malign-double,-m64,-fvisibility=hidden")
+SET(CUDA_COMPILER_OPTION_RELEASE "--compiler-options=-Wall,-O3,-fPIC,-msse2,-mfpmath=sse,-malign-double,-m64,-fvisibility=hidden")
+
+# include PxCudaContextManager common
+INCLUDE(../common/PxCudaContextManager.cmake)
+
+# Use generator expressions to set config specific preprocessor definitions
+TARGET_COMPILE_DEFINITIONS(PxCudaContextManager
+
+ # Common to all configurations
+ PRIVATE ${PXSHARED_LINUX_COMPILE_DEFS};
+
+ PRIVATE $<$<CONFIG:debug>:${PXSHARED_LINUX_DEBUG_COMPILE_DEFS};>
+ PRIVATE $<$<CONFIG:checked>:${PXSHARED_LINUX_CHECKED_COMPILE_DEFS};>
+ PRIVATE $<$<CONFIG:profile>:${PXSHARED_LINUX_PROFILE_COMPILE_DEFS};>
+ PRIVATE $<$<CONFIG:release>:${PXSHARED_LINUX_RELEASE_COMPILE_DEFS};>
+)
diff --git a/PxShared/src/compiler/cmake/Linux/PxFoundation.cmake b/PxShared/src/compiler/cmake/Linux/PxFoundation.cmake
new file mode 100644
index 0000000..f074805
--- /dev/null
+++ b/PxShared/src/compiler/cmake/Linux/PxFoundation.cmake
@@ -0,0 +1,67 @@
+#
+# Build PxFoundation
+#
+
+SET(PXSHARED_SOURCE_DIR ${PROJECT_SOURCE_DIR}/../../../../src)
+
+SET(LL_SOURCE_DIR ${PXSHARED_SOURCE_DIR}/foundation)
+
+IF(DEFINED PX_STATIC_LIBRARIES)
+ SET(PXFOUNDATION_LIBTYPE STATIC)
+ELSE()
+ SET(PXFOUNDATION_LIBTYPE SHARED)
+ SET(PXFOUNDATION_SHARED_LIBRARY_DEFS PX_PVDSDK_DLL=1;PX_FOUNDATION_DLL=1;)
+ENDIF()
+
+SET(PXFOUNDATION_PLATFORM_FILES
+ ${LL_SOURCE_DIR}/src/unix/PsUnixAtomic.cpp
+ ${LL_SOURCE_DIR}/src/unix/PsUnixCpu.cpp
+ ${LL_SOURCE_DIR}/src/unix/PsUnixFPU.cpp
+ ${LL_SOURCE_DIR}/src/unix/PsUnixMutex.cpp
+ ${LL_SOURCE_DIR}/src/unix/PsUnixPrintString.cpp
+ ${LL_SOURCE_DIR}/src/unix/PsUnixSList.cpp
+ ${LL_SOURCE_DIR}/src/unix/PsUnixSocket.cpp
+ ${LL_SOURCE_DIR}/src/unix/PsUnixSync.cpp
+ ${LL_SOURCE_DIR}/src/unix/PsUnixThread.cpp
+ ${LL_SOURCE_DIR}/src/unix/PsUnixTime.cpp
+)
+
+SET(PXFOUNDATION_PLATFORM_INCLUDES
+ ${LL_SOURCE_DIR}/include/linux
+)
+
+SET(PXFOUNDATION_COMPILE_DEFS
+ # Common to all configurations
+ ${PXSHARED_LINUX_COMPILE_DEFS}
+)
+
+if(${CMAKE_BUILD_TYPE_LOWERCASE} STREQUAL "debug")
+ LIST(APPEND PXFOUNDATION_COMPILE_DEFS
+ ${PXSHARED_LINUX_DEBUG_COMPILE_DEFS};${PXFOUNDATION_SHARED_LIBRARY_DEFS};
+ )
+elseif(${CMAKE_BUILD_TYPE_LOWERCASE} STREQUAL "checked")
+ LIST(APPEND PXFOUNDATION_COMPILE_DEFS
+ ${PXSHARED_LINUX_CHECKED_COMPILE_DEFS};${PXFOUNDATION_SHARED_LIBRARY_DEFS};
+ )
+elseif(${CMAKE_BUILD_TYPE_LOWERCASE} STREQUAL "profile")
+ LIST(APPEND PXFOUNDATION_COMPILE_DEFS
+ ${PXSHARED_LINUX_PROFILE_COMPILE_DEFS};${PXFOUNDATION_SHARED_LIBRARY_DEFS};
+ )
+elseif(${CMAKE_BUILD_TYPE_LOWERCASE} STREQUAL release)
+ LIST(APPEND PXFOUNDATION_COMPILE_DEFS
+ ${PXSHARED_LINUX_RELEASE_COMPILE_DEFS};${PXFOUNDATION_SHARED_LIBRARY_DEFS};
+ )
+else(${CMAKE_BUILD_TYPE_LOWERCASE} STREQUAL "debug")
+ MESSAGE(FATAL_ERROR "Unknown configuration ${CMAKE_BUILD_TYPE}")
+endif(${CMAKE_BUILD_TYPE_LOWERCASE} STREQUAL "debug")
+
+
+# include PxFoundation common
+INCLUDE(../common/PxFoundation.cmake)
+
+IF(NOT DEFINED PX_STATIC_LIBRARIES)
+TARGET_LINK_LIBRARIES(PxFoundation PUBLIC rt)
+ENDIF()
+
+# enable -fPIC so we can link static libs with the editor
+SET_TARGET_PROPERTIES(PxFoundation PROPERTIES POSITION_INDEPENDENT_CODE TRUE)
diff --git a/PxShared/src/compiler/cmake/Linux/PxPvdSDK.cmake b/PxShared/src/compiler/cmake/Linux/PxPvdSDK.cmake
new file mode 100644
index 0000000..81692a0
--- /dev/null
+++ b/PxShared/src/compiler/cmake/Linux/PxPvdSDK.cmake
@@ -0,0 +1,53 @@
+#
+# Build PxPvdSDK
+#
+
+SET(PXSHARED_SOURCE_DIR ${PROJECT_SOURCE_DIR}/../../../../src)
+
+SET(LL_SOURCE_DIR ${PXSHARED_SOURCE_DIR}/pvd)
+
+IF(DEFINED PX_STATIC_LIBRARIES)
+ SET(PXPVDSDK_LIBTYPE STATIC)
+ELSE()
+ SET(PXPVDSDK_LIBTYPE SHARED)
+ SET(PXPVDSDK_SHARED_LIBRARY_DEFS PX_PVDSDK_DLL=1;PX_FOUNDATION_DLL=1;)
+ENDIF()
+
+# Use generator expressions to set config specific preprocessor definitions
+SET(PXPVDSDK_COMPILE_DEFS
+ # Common to all configurations
+ ${PXSHARED_LINUX_COMPILE_DEFS}
+)
+
+if(${CMAKE_BUILD_TYPE_LOWERCASE} STREQUAL "debug")
+ LIST(APPEND PXPVDSDK_COMPILE_DEFS
+ ${PXSHARED_LINUX_DEBUG_COMPILE_DEFS};${PXPVDSDK_SHARED_LIBRARY_DEFS}
+ )
+elseif(${CMAKE_BUILD_TYPE_LOWERCASE} STREQUAL "checked")
+ LIST(APPEND PXPVDSDK_COMPILE_DEFS
+ ${PXSHARED_LINUX_CHECKED_COMPILE_DEFS};${PXPVDSDK_SHARED_LIBRARY_DEFS}
+ )
+elseif(${CMAKE_BUILD_TYPE_LOWERCASE} STREQUAL "profile")
+ LIST(APPEND PXPVDSDK_COMPILE_DEFS
+ ${PXSHARED_LINUX_PROFILE_COMPILE_DEFS};${PXPVDSDK_SHARED_LIBRARY_DEFS}
+ )
+elseif(${CMAKE_BUILD_TYPE_LOWERCASE} STREQUAL release)
+ LIST(APPEND PXPVDSDK_COMPILE_DEFS
+ ${PXSHARED_LINUX_RELEASE_COMPILE_DEFS};${PXPVDSDK_SHARED_LIBRARY_DEFS}
+ )
+else(${CMAKE_BUILD_TYPE_LOWERCASE} STREQUAL "debug")
+ MESSAGE(FATAL_ERROR "Unknown configuration ${CMAKE_BUILD_TYPE}")
+endif(${CMAKE_BUILD_TYPE_LOWERCASE} STREQUAL "debug")
+
+# include PxPvdSDK common
+INCLUDE(../common/PxPvdSDK.cmake)
+
+# Add linked libraries
+IF(DEFINED PX_STATIC_LIBRARIES)
+TARGET_LINK_LIBRARIES(PxPvdSDK PRIVATE PxFoundation )
+ELSE()
+TARGET_LINK_LIBRARIES(PxPvdSDK PRIVATE PxFoundation rt)
+ENDIF()
+
+# enable -fPIC so we can link static libs with the editor
+SET_TARGET_PROPERTIES(PxPvdSDK PROPERTIES POSITION_INDEPENDENT_CODE TRUE)
diff --git a/PxShared/src/compiler/cmake/Linux/PxTask.cmake b/PxShared/src/compiler/cmake/Linux/PxTask.cmake
new file mode 100644
index 0000000..86689c4
--- /dev/null
+++ b/PxShared/src/compiler/cmake/Linux/PxTask.cmake
@@ -0,0 +1,43 @@
+#
+# Build PxTask
+#
+
+SET(PXSHARED_SOURCE_DIR ${PROJECT_SOURCE_DIR}/../../../../src)
+
+SET(LL_SOURCE_DIR ${PXSHARED_SOURCE_DIR}/task)
+
+SET(PXTASK_COMPILE_DEFS
+ ${PXSHARED_LINUX_COMPILE_DEFS};
+)
+
+if(${CMAKE_BUILD_TYPE_LOWERCASE} STREQUAL "debug")
+ LIST(APPEND PXTASK_COMPILE_DEFS
+ ${PXSHARED_LINUX_DEBUG_COMPILE_DEFS}
+ )
+elseif(${CMAKE_BUILD_TYPE_LOWERCASE} STREQUAL "checked")
+ LIST(APPEND PXTASK_COMPILE_DEFS
+ ${PXSHARED_LINUX_CHECKED_COMPILE_DEFS}
+ )
+elseif(${CMAKE_BUILD_TYPE_LOWERCASE} STREQUAL "profile")
+ LIST(APPEND PXTASK_COMPILE_DEFS
+ ${PXSHARED_LINUX_PROFILE_COMPILE_DEFS}
+ )
+elseif(${CMAKE_BUILD_TYPE_LOWERCASE} STREQUAL release)
+ LIST(APPEND PXTASK_COMPILE_DEFS
+ ${PXSHARED_LINUX_RELEASE_COMPILE_DEFS}
+ )
+else(${CMAKE_BUILD_TYPE_LOWERCASE} STREQUAL "debug")
+ MESSAGE(FATAL_ERROR "Unknown configuration ${CMAKE_BUILD_TYPE}")
+endif(${CMAKE_BUILD_TYPE_LOWERCASE} STREQUAL "debug")
+
+IF(DEFINED PX_STATIC_LIBRARIES)
+ SET(PXTASK_LIBTYPE OBJECT)
+ELSE()
+ SET(PXTASK_LIBTYPE STATIC)
+ENDIF()
+
+# include PxTask common
+INCLUDE(../common/PxTask.cmake)
+
+# enable -fPIC so we can link static libs with the editor
+SET_TARGET_PROPERTIES(PxTask PROPERTIES POSITION_INDEPENDENT_CODE TRUE)
diff --git a/PxShared/src/compiler/cmake/Mac/CMakeLists.txt b/PxShared/src/compiler/cmake/Mac/CMakeLists.txt
new file mode 100644
index 0000000..beb06bc
--- /dev/null
+++ b/PxShared/src/compiler/cmake/Mac/CMakeLists.txt
@@ -0,0 +1,48 @@
+cmake_minimum_required(VERSION 3.3)
+include(../common/CMakeLists.txt)
+
+
+IF(NOT DEFINED TARGET_BUILD_PLATFORM) # Not defined, default to Mac
+ SET(TARGET_BUILD_PLATFORM "Mac")
+ENDIF()
+
+SET(PLATFORM_LIST Mac)
+
+IF (NOT ${TARGET_BUILD_PLATFORM} IN_LIST PLATFORM_LIST)
+ MESSAGE(FATAL_ERROR "Invalid platform:" ${TARGET_BUILD_PLATFORM})
+ENDIF()
+
+SET(CMAKE_CXX_FLAGS "-msse2 -std=c++11 -fno-rtti -fno-exceptions -ffast-math -ffunction-sections -fdata-sections -Werror -ferror-limit=0 -Wall -Wextra -fstrict-aliasing -Wstrict-aliasing=2 -Weverything -Wno-documentation-deprecated-sync -Wno-documentation-unknown-command -Wno-float-equal -Wno-padded -Wno-weak-vtables -Wno-cast-align -Wno-conversion -Wno-missing-noreturn -Wno-missing-variable-declarations -Wno-shift-sign-overflow -Wno-covered-switch-default -Wno-exit-time-destructors -Wno-global-constructors -Wno-missing-prototypes -Wno-unreachable-code -Wno-unused-macros -Wno-unused-member-function -Wno-used-but-marked-unused -Wno-weak-template-vtables -Wno-deprecated -Wno-non-virtual-dtor -Wno-invalid-noreturn -Wno-return-type-c-linkage -Wno-reserved-id-macro -Wno-c++98-compat-pedantic -Wno-unused-local-typedef -Wno-old-style-cast -Wno-newline-eof -Wno-unused-private-field -Wno-undefined-reinterpret-cast -Wno-invalid-offsetof -gdwarf-2")
+
+IF (DEFINED PX_32BIT)
+SET(CMAKE_CXX_FLAGS "-arch i386 ${CMAKE_CXX_FLAGS}")
+ENDIF()
+IF (DEFINED PX_64BIT)
+SET(CMAKE_CXX_FLAGS "-arch x86_64 ${CMAKE_CXX_FLAGS}")
+ENDIF()
+
+SET(CMAKE_SHARED_LINKER_FLAGS "")
+
+SET(CMAKE_CXX_FLAGS_DEBUG "-O0 -g")
+SET(CMAKE_CXX_FLAGS_CHECKED "-O3 -g")
+SET(CMAKE_CXX_FLAGS_PROFILE "-O3 -g")
+SET(CMAKE_CXX_FLAGS_RELEASE "-O3 -g")
+
+# Build libs compatible with OS X 10.9
+SET(CMAKE_OSX_DEPLOYMENT_TARGET "10.9")
+
+#set(CMAKE_XCODE_ATTRIBUTE_DEBUG_INFORMATION_FORMAT "dwarf-with-dsym")
+
+SET(PXSHARED_MAC_COMPILE_DEFS _LIB;DISABLE_CUDA_PHYSX;DISABLE_COMPUTE_PHYSX)
+SET(PXSHARED_MAC_DEBUG_COMPILE_DEFS _DEBUG;PX_DEBUG=1;PX_CHECKED=1)
+SET(PXSHARED_MAC_CHECKED_COMPILE_DEFS NDEBUG;PX_CHECKED=1)
+SET(PXSHARED_MAC_PROFILE_COMPILE_DEFS NDEBUG;PX_PROFILE=1)
+SET(PXSHARED_MAC_RELEASE_COMPILE_DEFS NDEBUG)
+
+# NOTE: PxCudaContextManager excluded on this platform
+
+# Include project cmake files here
+INCLUDE(PxFoundation.cmake)
+INCLUDE(PsFastXml.cmake)
+INCLUDE(PxPvdSDK.cmake)
+INCLUDE(PxTask.cmake)
diff --git a/PxShared/src/compiler/cmake/Mac/PsFastXml.cmake b/PxShared/src/compiler/cmake/Mac/PsFastXml.cmake
new file mode 100644
index 0000000..7f140e0
--- /dev/null
+++ b/PxShared/src/compiler/cmake/Mac/PsFastXml.cmake
@@ -0,0 +1,22 @@
+#
+# Build PsFastXml
+#
+
+SET(PXSHARED_SOURCE_DIR ${PROJECT_SOURCE_DIR}/../../../../src)
+
+SET(LL_SOURCE_DIR ${PXSHARED_SOURCE_DIR}/fastxml)
+
+# Use generator expressions to set config specific preprocessor definitions
+SET(PSFASTXML_COMPILE_DEFS
+
+ # Common to all configurations
+ ${PXSHARED_MAC_COMPILE_DEFS};PX_FOUNDATION_DLL=0;
+
+ $<$<CONFIG:debug>:${PXSHARED_MAC_DEBUG_COMPILE_DEFS};>
+ $<$<CONFIG:checked>:${PXSHARED_MAC_CHECKED_COMPILE_DEFS};>
+ $<$<CONFIG:profile>:${PXSHARED_MAC_PROFILE_COMPILE_DEFS};>
+ $<$<CONFIG:release>:${PXSHARED_MAC_RELEASE_COMPILE_DEFS};>
+)
+
+# include PsFastXml common
+INCLUDE(../common/PsFastXml.cmake) \ No newline at end of file
diff --git a/PxShared/src/compiler/cmake/Mac/PxFoundation.cmake b/PxShared/src/compiler/cmake/Mac/PxFoundation.cmake
new file mode 100644
index 0000000..2a21910
--- /dev/null
+++ b/PxShared/src/compiler/cmake/Mac/PxFoundation.cmake
@@ -0,0 +1,40 @@
+#
+# Build PxFoundation
+#
+
+SET(PXSHARED_SOURCE_DIR ${PROJECT_SOURCE_DIR}/../../../../src)
+
+SET(LL_SOURCE_DIR ${PXSHARED_SOURCE_DIR}/foundation)
+
+SET(PXFOUNDATION_LIBTYPE SHARED)
+
+SET(PXFOUNDATION_PLATFORM_FILES
+ ${LL_SOURCE_DIR}/src/unix/PsUnixAtomic.cpp
+ ${LL_SOURCE_DIR}/src/unix/PsUnixCpu.cpp
+ ${LL_SOURCE_DIR}/src/unix/PsUnixFPU.cpp
+ ${LL_SOURCE_DIR}/src/unix/PsUnixMutex.cpp
+ ${LL_SOURCE_DIR}/src/unix/PsUnixPrintString.cpp
+ ${LL_SOURCE_DIR}/src/unix/PsUnixSList.cpp
+ ${LL_SOURCE_DIR}/src/unix/PsUnixSocket.cpp
+ ${LL_SOURCE_DIR}/src/unix/PsUnixSync.cpp
+ ${LL_SOURCE_DIR}/src/unix/PsUnixThread.cpp
+ ${LL_SOURCE_DIR}/src/unix/PsUnixTime.cpp
+)
+
+SET(PXFOUNDATION_PLATFORM_INCLUDES
+ ${LL_SOURCE_DIR}/include/mac
+)
+
+SET(PXFOUNDATION_COMPILE_DEFS
+
+ # Common to all configurations
+ ${PXSHARED_MAC_COMPILE_DEFS}
+
+ $<$<CONFIG:debug>:${PXSHARED_MAC_DEBUG_COMPILE_DEFS}>
+ $<$<CONFIG:checked>:${PXSHARED_MAC_CHECKED_COMPILE_DEFS}>
+ $<$<CONFIG:profile>:${PXSHARED_MAC_PROFILE_COMPILE_DEFS}>
+ $<$<CONFIG:release>:${PXSHARED_MAC_RELEASE_COMPILE_DEFS}>
+)
+
+# include PxFoundation common
+INCLUDE(../common/PxFoundation.cmake) \ No newline at end of file
diff --git a/PxShared/src/compiler/cmake/Mac/PxPvdSDK.cmake b/PxShared/src/compiler/cmake/Mac/PxPvdSDK.cmake
new file mode 100644
index 0000000..c236882
--- /dev/null
+++ b/PxShared/src/compiler/cmake/Mac/PxPvdSDK.cmake
@@ -0,0 +1,28 @@
+#
+# Build PxPvdSDK
+#
+
+SET(PXSHARED_SOURCE_DIR ${PROJECT_SOURCE_DIR}/../../../../src)
+
+SET(LL_SOURCE_DIR ${PXSHARED_SOURCE_DIR}/pvd)
+
+SET(PXPVDSDK_LIBTYPE SHARED)
+
+# Use generator expressions to set config specific preprocessor definitions
+SET(PXPVDSDK_COMPILE_DEFS
+
+ # Common to all configurations
+ ${PXSHARED_MAC_COMPILE_DEFS}
+
+ $<$<CONFIG:debug>:${PXSHARED_MAC_DEBUG_COMPILE_DEFS}>
+ $<$<CONFIG:checked>:${PXSHARED_MAC_CHECKED_COMPILE_DEFS}>
+ $<$<CONFIG:profile>:${PXSHARED_MAC_PROFILE_COMPILE_DEFS}>
+ $<$<CONFIG:release>:${PXSHARED_MAC_RELEASE_COMPILE_DEFS}>
+)
+
+# include PxPvdSDK common
+INCLUDE(../common/PxPvdSDK.cmake)
+
+# Add linked libraries
+TARGET_LINK_LIBRARIES(PxPvdSDK PRIVATE PxFoundation)
+
diff --git a/PxShared/src/compiler/cmake/Mac/PxTask.cmake b/PxShared/src/compiler/cmake/Mac/PxTask.cmake
new file mode 100644
index 0000000..2326a1f
--- /dev/null
+++ b/PxShared/src/compiler/cmake/Mac/PxTask.cmake
@@ -0,0 +1,18 @@
+#
+# Build PxTask
+#
+
+SET(PXSHARED_SOURCE_DIR ${PROJECT_SOURCE_DIR}/../../../../src)
+
+SET(LL_SOURCE_DIR ${PXSHARED_SOURCE_DIR}/task)
+
+SET(PXTASK_COMPILE_DEFS
+ ${PXSHARED_MAC_COMPILE_DEFS};PX_FOUNDATION_DLL=0;
+ $<$<CONFIG:debug>:${PXSHARED_MAC_DEBUG_COMPILE_DEFS};>
+ $<$<CONFIG:checked>:${PXSHARED_MAC_CHECKED_COMPILE_DEFS};>
+ $<$<CONFIG:profile>:${PXSHARED_MAC_PROFILE_COMPILE_DEFS};>
+ $<$<CONFIG:release>:${PXSHARED_MAC_RELEASE_COMPILE_DEFS};>
+)
+
+# include PxTask common
+INCLUDE(../common/PxTask.cmake) \ No newline at end of file
diff --git a/PxShared/src/compiler/cmake/Modules/FindPxShared.cmake b/PxShared/src/compiler/cmake/Modules/FindPxShared.cmake
new file mode 100644
index 0000000..ea90ab6
--- /dev/null
+++ b/PxShared/src/compiler/cmake/Modules/FindPxShared.cmake
@@ -0,0 +1,18 @@
+# - Try to find PxShared
+# Once done this will define
+# PXSHARED_FOUND - System has PxShared
+# PXSHARED_INCLUDE_DIRS - The PxShared include directories
+
+# NOTE: We're including a version in this, but the first hint is without one - we should use that!
+FIND_PATH( PXSHARED_INCLUDE_DIRS include/cudamanager/PxGpuCopyDesc.h
+ HINTS
+ ${GW_DEPS_ROOT}/PxShared
+ ${GW_DEPS_ROOT}/sw/physx/PxShared/1.0/trunk/
+ )
+
+MESSAGE(${PXSHARED_INCLUDE_DIRS})
+
+INCLUDE(FindPackageHandleStandardArgs)
+FIND_PACKAGE_HANDLE_STANDARD_ARGS(PxShared DEFAULT_MSG PXSHARED_INCLUDE_DIRS)
+
+mark_as_advanced(PXSHARED_INCLUDE_DIRS)
diff --git a/PxShared/src/compiler/cmake/Modules/FindnvToolsExt.cmake b/PxShared/src/compiler/cmake/Modules/FindnvToolsExt.cmake
new file mode 100644
index 0000000..c1675ae
--- /dev/null
+++ b/PxShared/src/compiler/cmake/Modules/FindnvToolsExt.cmake
@@ -0,0 +1,38 @@
+# - Try to find nvToolsExt
+# Once done this will define
+# NVTOOLSEXT_FOUND - System has nvToolsExt
+# NVTOOLSEXT_INCLUDE_DIRS - The nvToolsExt include directories
+# NVTOOLSEXT_LIBRARIES - The libraries needed to use nvToolsExt
+# NVTOOLSEXT_DEFINITIONS - Compiler switches required for using nvToolsExt
+
+FIND_PATH( NVTOOLSEXT_INCLUDE_DIRS nvToolsExt.h
+ HINTS
+ ${GW_DEPS_ROOT}/PhysX_3.4/externals/nvToolsExt
+ ${GW_DEPS_ROOT}/sw/physx/externals/nvToolsExt/1
+ PATH_SUFFIXES include)
+
+INCLUDE(FindPackageHandleStandardArgs)
+
+IF(TARGET_BUILD_PLATFORM STREQUAL "Windows")
+ # NOTE: Doesn't make sense for all platforms - ARM
+ IF(CMAKE_CL_64)
+ SET(NVTOOLSEXT_LIBNAME "nvToolsExt64_1")
+ SET(NVTOOLSEXT_LIBPATH_SUFFIX "x64")
+ ELSE(CMAKE_CL_64)
+ SET(NVTOOLSEXT_LIBNAME nvToolsExt32_1)
+ SET(NVTOOLSEXT_LIBPATH_SUFFIX "Win32")
+ ENDIF(CMAKE_CL_64)
+
+
+ FIND_LIBRARY( NVTOOLSEXT_LIBRARIES ${NVTOOLSEXT_LIBNAME}
+ ${GW_DEPS_ROOT}/PhysX_3.4/externals/nvToolsExt/lib/${NVTOOLSEXT_LIBPATH_SUFFIX}
+ ${GW_DEPS_ROOT}/sw/physx/externals/nvToolsExt/1/lib/${NVTOOLSEXT_LIBPATH_SUFFIX}
+ )
+
+ FIND_PACKAGE_HANDLE_STANDARD_ARGS(nvToolsExt DEFAULT_MSG NVTOOLSEXT_LIBRARIES NVTOOLSEXT_INCLUDE_DIRS)
+ELSE()
+ # Exclude the libraries for non-windows platforms
+ FIND_PACKAGE_HANDLE_STANDARD_ARGS(nvToolsExt DEFAULT_MSG NVTOOLSEXT_INCLUDE_DIRS)
+ENDIF()
+
+mark_as_advanced(NVTOOLSEXT_INCLUDE_DIRS NVTOOLSEXT_LIBRARIES) \ No newline at end of file
diff --git a/PxShared/src/compiler/cmake/RegenProjects.bat b/PxShared/src/compiler/cmake/RegenProjects.bat
new file mode 100644
index 0000000..bdde57f
--- /dev/null
+++ b/PxShared/src/compiler/cmake/RegenProjects.bat
@@ -0,0 +1,4 @@
+rmdir CMakeFiles /s /q
+del CMakeCache.txt
+cmake ../../.. -A x64
+
diff --git a/PxShared/src/compiler/cmake/common/CMakeLists.txt b/PxShared/src/compiler/cmake/common/CMakeLists.txt
new file mode 100644
index 0000000..22d2097
--- /dev/null
+++ b/PxShared/src/compiler/cmake/common/CMakeLists.txt
@@ -0,0 +1,84 @@
+cmake_minimum_required(VERSION 3.3)
+
+PROJECT(PxShared CXX)
+
+CMAKE_POLICY(SET CMP0057 NEW) # Enable IN_LIST
+
+IF(DEFINED ENV{GW_DEPS_ROOT})
+ SET(GW_DEPS_ROOT $ENV{GW_DEPS_ROOT})
+
+ SET(CMAKE_MODULE_PATH $ENV{GW_DEPS_ROOT}/sw/physx/tools/CMakeModules)
+
+ IF(EXISTS $ENV{GW_DEPS_ROOT}/Externals/CMakeModules)
+ SET(CMAKE_MODULE_PATH $ENV{GW_DEPS_ROOT}/Externals/CMakeModules)
+ ENDIF()
+ENDIF()
+
+# Add find modules to the path
+IF(NOT EXISTS ${CMAKE_MODULE_PATH})
+ MESSAGE(FATAL_ERROR "Could not find CMakeModules at ${CMAKE_MODULE_PATH}")
+ENDIF()
+
+MESSAGE("PxShared Build Platform: " ${TARGET_BUILD_PLATFORM})
+MESSAGE("Using CXX Compiler: " ${CMAKE_CXX_COMPILER})
+
+# TODO: Fail if we didn't find deps
+
+# Tell MSVC to stop doing MBCS
+#ADD_DEFINITIONS(-D_UNICODE -DUNICODE)
+
+IF(CMAKE_CONFIGURATION_TYPES)
+ SET(CMAKE_CONFIGURATION_TYPES debug checked profile release)
+ SET(CMAKE_CONFIGURATION_TYPES "${CMAKE_CONFIGURATION_TYPES}" CACHE STRING
+ "Reset config to what we need"
+ FORCE)
+
+ SET(CMAKE_SHARED_LINKER_FLAGS_CHECKED "")
+ SET(CMAKE_SHARED_LINKER_FLAGS_PROFILE "")
+
+ # Build PDBs for all configurations
+ SET(CMAKE_SHARED_LINKER_FLAGS "/DEBUG")
+
+ENDIF()
+
+# Default to appending "DEBUG", "PROFILE", etc to produced artifacts
+IF(NOT DEFINED APPEND_CONFIG_NAME)
+ SET(APPEND_CONFIG_NAME ON)
+ENDIF()
+
+IF (APPEND_CONFIG_NAME)
+ MESSAGE("Appending config to output names")
+
+ SET(CMAKE_DEBUG_POSTFIX "DEBUG")
+ SET(CMAKE_PROFILE_POSTFIX "PROFILE")
+ SET(CMAKE_CHECKED_POSTFIX "CHECKED")
+ SET(CMAKE_RELEASE_POSTFIX "")
+ENDIF()
+
+SET(PROJECT_ROOT_DIR ${PROJECT_SOURCE_DIR}/../../../../)
+
+INCLUDE(SetOutputPaths)
+
+IF(DEFINED PX_OUTPUT_EXE_DIR)
+ SetExeOutputPath(${PX_OUTPUT_EXE_DIR})
+ENDIF()
+IF(DEFINED PX_OUTPUT_DLL_DIR)
+ SetDllOutputPath(${PX_OUTPUT_DLL_DIR})
+ENDIF()
+IF(DEFINED PX_OUTPUT_LIB_DIR)
+ SetLibOutputPath(${PX_OUTPUT_LIB_DIR})
+ENDIF()
+# All EXE/DLL/LIB output will be overwritten if PX_OUTPUT_ALL_DIR is defined
+IF(DEFINED PX_OUTPUT_ALL_DIR)
+ SetSingleOutputPath(${PX_OUTPUT_ALL_DIR})
+ENDIF()
+
+# Prevent failure due to command line limitations
+IF(USE_RESPONSE_FILES)
+ SET(CMAKE_C_USE_RESPONSE_FILE_FOR_OBJECTS 1)
+ SET(CMAKE_C_USE_RESPONSE_FILE_FOR_INCLUDES 1)
+ SET(CMAKE_C_USE_RESPONSE_FILE_FOR_LIBRARIES 1)
+ SET(CMAKE_CXX_USE_RESPONSE_FILE_FOR_OBJECTS 1)
+ SET(CMAKE_CXX_USE_RESPONSE_FILE_FOR_INCLUDES 1)
+ SET(CMAKE_CXX_USE_RESPONSE_FILE_FOR_LIBRARIES 1)
+ENDIF()
diff --git a/PxShared/src/compiler/cmake/common/PsFastXml.cmake b/PxShared/src/compiler/cmake/common/PsFastXml.cmake
new file mode 100644
index 0000000..06c1282
--- /dev/null
+++ b/PxShared/src/compiler/cmake/common/PsFastXml.cmake
@@ -0,0 +1,37 @@
+#
+# Build PsFastXml common
+#
+
+SET(PSFASTXML_HEADERS
+ ${LL_SOURCE_DIR}/include/PsFastXml.h
+)
+SOURCE_GROUP(include FILES ${PSFASTXML_HEADERS})
+
+SET(PSFASTXML_SOURCE
+ ${LL_SOURCE_DIR}/src/PsFastXml.cpp
+)
+SOURCE_GROUP(src FILES ${PSFASTXML_SOURCE})
+
+ADD_LIBRARY(PsFastXml STATIC
+ ${PSFASTXML_HEADERS}
+ ${PSFASTXML_SOURCE}
+)
+
+TARGET_INCLUDE_DIRECTORIES(PsFastXml
+ PRIVATE ${PXSHARED_SOURCE_DIR}/../include
+ PRIVATE ${PXSHARED_SOURCE_DIR}/foundation/include
+ PRIVATE ${LL_SOURCE_DIR}/include
+
+ PRIVATE ${PLATFORM_INCLUDES}
+)
+
+TARGET_COMPILE_DEFINITIONS(PsFastXml
+ PRIVATE ${PSFASTXML_COMPILE_DEFS}
+)
+
+SET_TARGET_PROPERTIES(PsFastXml PROPERTIES
+ COMPILE_PDB_NAME_DEBUG "PsFastXml${CMAKE_DEBUG_POSTFIX}"
+ COMPILE_PDB_NAME_CHECKED "PsFastXml${CMAKE_CHECKED_POSTFIX}"
+ COMPILE_PDB_NAME_PROFILE "PsFastXml${CMAKE_PROFILE_POSTFIX}"
+ COMPILE_PDB_NAME_RELEASE "PsFastXml${CMAKE_RELEASE_POSTFIX}"
+) \ No newline at end of file
diff --git a/PxShared/src/compiler/cmake/common/PxCudaContextManager.cmake b/PxShared/src/compiler/cmake/common/PxCudaContextManager.cmake
new file mode 100644
index 0000000..ab76997
--- /dev/null
+++ b/PxShared/src/compiler/cmake/common/PxCudaContextManager.cmake
@@ -0,0 +1,77 @@
+#
+# Build PxCudaContextManager common
+#
+
+
+# CUDA!
+SET(CUDA_NVCC_FLAGS "-lineinfo -use_fast_math -ftz=true -prec-div=false -prec-sqrt=false -gencode arch=compute_30,code=sm_30 -gencode arch=compute_35,code=sm_35 -gencode arch=compute_50,code=sm_50 -gencode arch=compute_50,code=compute_50 -D_CONSOLE -D_WIN32_WINNT=0x0501")
+
+CUDA_INCLUDE_DIRECTORIES(
+ ${PXSHARED_SOURCE_DIR}/../include
+ ${PXSHARED_SOURCE_DIR}/foundation/include
+ ${PXSHARED_SOURCE_DIR}/cudamanager/include
+)
+
+SET(CUDA_PROPAGATE_HOST_FLAGS OFF)
+
+# Compile the CuKernelSolver - it has different options than the other CUDA files
+SET(CUDA_NVCC_FLAGS_DEBUG "-D_DEBUG -D_CONSOLE -D_WIN32_WINNT=0x0501 ${CUDA_COMPILER_OPTION_DEBUG}")
+SET(CUDA_NVCC_FLAGS_CHECKED "-DNDEBUG -D_CONSOLE -D_WIN32_WINNT=0x0501 ${CUDA_COMPILER_OPTION_CHECKED}")
+SET(CUDA_NVCC_FLAGS_PROFILE "-DNDEBUG -D_CONSOLE -D_WIN32_WINNT=0x0501 ${CUDA_COMPILER_OPTION_PROFILE}")
+SET(CUDA_NVCC_FLAGS_RELEASE "-DNDEBUG -D_CONSOLE -D_WIN32_WINNT=0x0501 ${CUDA_COMPILER_OPTION_RELEASE}")
+
+SET(CUDACONTEXTMANAGER_HEADERS
+ ${PXSHARED_SOURCE_DIR}/../include/cudamanager/PxCudaContextManager.h
+ ${PXSHARED_SOURCE_DIR}/../include/cudamanager/PxCudaMemoryManager.h
+ ${PXSHARED_SOURCE_DIR}/../include/cudamanager/PxGpuCopyDesc.h
+ ${PXSHARED_SOURCE_DIR}/../include/cudamanager/PxGpuCopyDescQueue.h
+)
+SOURCE_GROUP(include FILES ${CUDACONTEXTMANAGER_HEADERS})
+
+SET(CUDACONTEXTMANAGER_KERNELS
+ ${LL_SOURCE_DIR}/src/CUDA/UtilKernels.cu
+)
+SOURCE_GROUP("src kernels" FILES ${CUDACONTEXTMANAGER_KERNELS})
+
+SET(CUDACONTEXTMANAGER_SOURCE
+ ${LL_SOURCE_DIR}/src/CudaContextManager.cpp
+ ${LL_SOURCE_DIR}/src/CudaKernelWrangler.cpp
+ ${LL_SOURCE_DIR}/src/CudaMemoryManager.cpp
+ ${LL_SOURCE_DIR}/src/HeapManagerRef.cpp
+ ${LL_SOURCE_DIR}/src/GpuDispatcher.cpp
+ ${LL_SOURCE_DIR}/src/BlockingWait.cpp
+ ${LL_SOURCE_DIR}/src/PhysXDeviceSettings.cpp
+)
+SOURCE_GROUP(src\\src FILES ${CUDACONTEXTMANAGER_SOURCE})
+
+SET(CUDACONTEXTMANAGER_SOURCE_HEADERS
+ ${LL_SOURCE_DIR}/include/CudaContextManager.h
+ ${LL_SOURCE_DIR}/include/CudaKernelWrangler.h
+ ${LL_SOURCE_DIR}/include/GpuDispatcher.h
+ ${LL_SOURCE_DIR}/include/PhysXDeviceSettings.h
+)
+SOURCE_GROUP(src\\src FILES ${CUDACONTEXTMANAGER_SOURCE_HEADERS})
+
+CUDA_ADD_LIBRARY(PxCudaContextManager STATIC
+ ${CUDACONTEXTMANAGER_HEADERS}
+ ${CUDACONTEXTMANAGER_SOURCE}
+ ${CUDACONTEXTMANAGER_SOURCE_HEADERS}
+
+ ${CUDACONTEXTMANAGER_KERNELS}
+)
+
+# Target specific compile options
+
+
+TARGET_INCLUDE_DIRECTORIES(PxCudaContextManager
+ PRIVATE ${PXSHARED_SOURCE_DIR}/../include
+ PRIVATE ${PXSHARED_SOURCE_DIR}/foundation/include
+ PRIVATE ${PXSHARED_SOURCE_DIR}/task/include
+ PRIVATE ${PXSHARED_SOURCE_DIR}/cudamanager/include
+ PRIVATE ${LL_SOURCE_DIR}/include
+ PRIVATE ${CUDA_INCLUDE_DIRS}
+
+)
+
+
+
diff --git a/PxShared/src/compiler/cmake/common/PxFoundation.cmake b/PxShared/src/compiler/cmake/common/PxFoundation.cmake
new file mode 100644
index 0000000..99905e2
--- /dev/null
+++ b/PxShared/src/compiler/cmake/common/PxFoundation.cmake
@@ -0,0 +1,118 @@
+#
+# Build PxFoundation common
+#
+
+SET(PXFOUNDATION_HEADERS
+ ${PROJECT_SOURCE_DIR}/../../../../include/foundation/Px.h
+ ${PROJECT_SOURCE_DIR}/../../../../include/foundation/PxAllocatorCallback.h
+ ${PROJECT_SOURCE_DIR}/../../../../include/foundation/PxAssert.h
+ ${PROJECT_SOURCE_DIR}/../../../../include/foundation/PxBitAndData.h
+ ${PROJECT_SOURCE_DIR}/../../../../include/foundation/PxBounds3.h
+ ${PROJECT_SOURCE_DIR}/../../../../include/foundation/PxErrorCallback.h
+ ${PROJECT_SOURCE_DIR}/../../../../include/foundation/PxErrors.h
+ ${PROJECT_SOURCE_DIR}/../../../../include/foundation/PxFlags.h
+ ${PROJECT_SOURCE_DIR}/../../../../include/foundation/PxFoundation.h
+ ${PROJECT_SOURCE_DIR}/../../../../include/foundation/PxFoundationVersion.h
+ ${PROJECT_SOURCE_DIR}/../../../../include/foundation/PxIntrinsics.h
+ ${PROJECT_SOURCE_DIR}/../../../../include/foundation/PxIO.h
+ ${PROJECT_SOURCE_DIR}/../../../../include/foundation/PxMat33.h
+ ${PROJECT_SOURCE_DIR}/../../../../include/foundation/PxMat44.h
+ ${PROJECT_SOURCE_DIR}/../../../../include/foundation/PxMath.h
+ ${PROJECT_SOURCE_DIR}/../../../../include/foundation/PxMathUtils.h
+ ${PROJECT_SOURCE_DIR}/../../../../include/foundation/PxMemory.h
+ ${PROJECT_SOURCE_DIR}/../../../../include/foundation/PxPlane.h
+ ${PROJECT_SOURCE_DIR}/../../../../include/foundation/PxPreprocessor.h
+ ${PROJECT_SOURCE_DIR}/../../../../include/foundation/PxProfiler.h
+ ${PROJECT_SOURCE_DIR}/../../../../include/foundation/PxQuat.h
+ ${PROJECT_SOURCE_DIR}/../../../../include/foundation/PxSimpleTypes.h
+ ${PROJECT_SOURCE_DIR}/../../../../include/foundation/PxStrideIterator.h
+ ${PROJECT_SOURCE_DIR}/../../../../include/foundation/PxTransform.h
+ ${PROJECT_SOURCE_DIR}/../../../../include/foundation/PxUnionCast.h
+ ${PROJECT_SOURCE_DIR}/../../../../include/foundation/PxVec2.h
+ ${PROJECT_SOURCE_DIR}/../../../../include/foundation/PxVec3.h
+ ${PROJECT_SOURCE_DIR}/../../../../include/foundation/PxVec4.h
+)
+SOURCE_GROUP(include FILES ${PXFOUNDATION_HEADERS})
+
+SET(PXFOUNDATION_SOURCE
+ ${LL_SOURCE_DIR}/src/PsAllocator.cpp
+ ${LL_SOURCE_DIR}/src/PsAssert.cpp
+ ${LL_SOURCE_DIR}/src/PsFoundation.cpp
+ ${LL_SOURCE_DIR}/src/PsMathUtils.cpp
+ ${LL_SOURCE_DIR}/src/PsString.cpp
+ ${LL_SOURCE_DIR}/src/PsTempAllocator.cpp
+ ${LL_SOURCE_DIR}/src/PsUtilities.cpp
+)
+SOURCE_GROUP(src\\src FILES ${PXFOUNDATION_SOURCE})
+
+SET(PXFOUNDATION_SOURCE_HEADERS
+ ${LL_SOURCE_DIR}/include/Ps.h
+ ${LL_SOURCE_DIR}/include/PsAlignedMalloc.h
+ ${LL_SOURCE_DIR}/include/PsAlloca.h
+ ${LL_SOURCE_DIR}/include/PsAllocator.h
+ ${LL_SOURCE_DIR}/include/PsAoS.h
+ ${LL_SOURCE_DIR}/include/PsArray.h
+ ${LL_SOURCE_DIR}/include/PsAtomic.h
+ ${LL_SOURCE_DIR}/include/PsBasicTemplates.h
+ ${LL_SOURCE_DIR}/include/PsBitUtils.h
+ ${LL_SOURCE_DIR}/include/PsBroadcast.h
+ ${LL_SOURCE_DIR}/include/PsCpu.h
+ ${LL_SOURCE_DIR}/include/PsFoundation.h
+ ${LL_SOURCE_DIR}/include/PsFPU.h
+ ${LL_SOURCE_DIR}/include/PsHash.h
+ ${LL_SOURCE_DIR}/include/PsHashInternals.h
+ ${LL_SOURCE_DIR}/include/PsHashMap.h
+ ${LL_SOURCE_DIR}/include/PsHashSet.h
+ ${LL_SOURCE_DIR}/include/PsInlineAllocator.h
+ ${LL_SOURCE_DIR}/include/PsInlineAoS.h
+ ${LL_SOURCE_DIR}/include/PsInlineArray.h
+ ${LL_SOURCE_DIR}/include/PsIntrinsics.h
+ ${LL_SOURCE_DIR}/include/PsMathUtils.h
+ ${LL_SOURCE_DIR}/include/PsMutex.h
+ ${LL_SOURCE_DIR}/include/PsPool.h
+ ${LL_SOURCE_DIR}/include/PsSList.h
+ ${LL_SOURCE_DIR}/include/PsSocket.h
+ ${LL_SOURCE_DIR}/include/PsSort.h
+ ${LL_SOURCE_DIR}/include/PsSortInternals.h
+ ${LL_SOURCE_DIR}/include/PsString.h
+ ${LL_SOURCE_DIR}/include/PsSync.h
+ ${LL_SOURCE_DIR}/include/PsTempAllocator.h
+ ${LL_SOURCE_DIR}/include/PsThread.h
+ ${LL_SOURCE_DIR}/include/PsTime.h
+ ${LL_SOURCE_DIR}/include/PsUserAllocated.h
+ ${LL_SOURCE_DIR}/include/PsUtilities.h
+ ${LL_SOURCE_DIR}/include/PsVecMath.h
+ ${LL_SOURCE_DIR}/include/PsVecMathAoSScalar.h
+ ${LL_SOURCE_DIR}/include/PsVecMathAoSScalarInline.h
+ ${LL_SOURCE_DIR}/include/PsVecMathSSE.h
+ ${LL_SOURCE_DIR}/include/PsVecMathUtilities.h
+ ${LL_SOURCE_DIR}/include/PsVecQuat.h
+ ${LL_SOURCE_DIR}/include/PsVecTransform.h
+)
+SOURCE_GROUP(src\\include FILES ${PXFOUNDATION_SOURCE_HEADERS})
+
+ADD_LIBRARY(PxFoundation ${PXFOUNDATION_LIBTYPE}
+ ${PXFOUNDATION_SOURCE}
+ ${PXFOUNDATION_SOURCE_HEADERS}
+ ${PXFOUNDATION_HEADERS}
+
+ ${PXFOUNDATION_PLATFORM_FILES}
+)
+
+TARGET_INCLUDE_DIRECTORIES(PxFoundation
+ PRIVATE ${PXSHARED_SOURCE_DIR}/../include
+ PRIVATE ${LL_SOURCE_DIR}/include
+
+ PRIVATE ${PXFOUNDATION_PLATFORM_INCLUDES}
+)
+
+TARGET_COMPILE_DEFINITIONS(PxFoundation
+ PRIVATE ${PXFOUNDATION_COMPILE_DEFS}
+)
+
+SET_TARGET_PROPERTIES(PxFoundation PROPERTIES
+ COMPILE_PDB_NAME_DEBUG "PxFoundation${CMAKE_DEBUG_POSTFIX}"
+ COMPILE_PDB_NAME_CHECKED "PxFoundation${CMAKE_CHECKED_POSTFIX}"
+ COMPILE_PDB_NAME_PROFILE "PxFoundation${CMAKE_PROFILE_POSTFIX}"
+ COMPILE_PDB_NAME_RELEASE "PxFoundation${CMAKE_RELEASE_POSTFIX}"
+) \ No newline at end of file
diff --git a/PxShared/src/compiler/cmake/common/PxPvdSDK.cmake b/PxShared/src/compiler/cmake/common/PxPvdSDK.cmake
new file mode 100644
index 0000000..7014209
--- /dev/null
+++ b/PxShared/src/compiler/cmake/common/PxPvdSDK.cmake
@@ -0,0 +1,123 @@
+#
+# Build PxPvdSDK common
+#
+
+SET(PXPVDSDK_HEADERS
+ ${PROJECT_SOURCE_DIR}/../../../../include/pvd/PxPvd.h
+ ${PROJECT_SOURCE_DIR}/../../../../include/pvd/PxPvdTransport.h
+)
+SOURCE_GROUP(include FILES ${PXPVDSDK_HEADERS})
+
+SET(PXPVDSDK_SOURCE
+ ${PXSHARED_SOURCE_DIR}/pvd/src/PxProfileBase.h
+ ${PXSHARED_SOURCE_DIR}/pvd/src/PxProfileCompileTimeEventFilter.h
+ ${PXSHARED_SOURCE_DIR}/pvd/src/PxProfileContextProvider.h
+ ${PXSHARED_SOURCE_DIR}/pvd/src/PxProfileContextProviderImpl.h
+ ${PXSHARED_SOURCE_DIR}/pvd/src/PxProfileDataBuffer.h
+ ${PXSHARED_SOURCE_DIR}/pvd/src/PxProfileDataParsing.h
+ ${PXSHARED_SOURCE_DIR}/pvd/src/PxProfileEventBuffer.h
+ ${PXSHARED_SOURCE_DIR}/pvd/src/PxProfileEventBufferAtomic.h
+ ${PXSHARED_SOURCE_DIR}/pvd/src/PxProfileEventBufferClient.h
+ ${PXSHARED_SOURCE_DIR}/pvd/src/PxProfileEventBufferClientManager.h
+ ${PXSHARED_SOURCE_DIR}/pvd/src/PxProfileEventFilter.h
+ ${PXSHARED_SOURCE_DIR}/pvd/src/PxProfileEventHandler.h
+ ${PXSHARED_SOURCE_DIR}/pvd/src/PxProfileEventId.h
+ ${PXSHARED_SOURCE_DIR}/pvd/src/PxProfileEventImpl.cpp
+ ${PXSHARED_SOURCE_DIR}/pvd/src/PxProfileEventMutex.h
+ ${PXSHARED_SOURCE_DIR}/pvd/src/PxProfileEventNames.h
+ ${PXSHARED_SOURCE_DIR}/pvd/src/PxProfileEventParser.h
+ ${PXSHARED_SOURCE_DIR}/pvd/src/PxProfileEvents.h
+ ${PXSHARED_SOURCE_DIR}/pvd/src/PxProfileEventSender.h
+ ${PXSHARED_SOURCE_DIR}/pvd/src/PxProfileEventSerialization.h
+ ${PXSHARED_SOURCE_DIR}/pvd/src/PxProfileEventSystem.h
+ ${PXSHARED_SOURCE_DIR}/pvd/src/PxProfileMemory.h
+ ${PXSHARED_SOURCE_DIR}/pvd/src/PxProfileMemoryBuffer.h
+ ${PXSHARED_SOURCE_DIR}/pvd/src/PxProfileMemoryEventBuffer.h
+ ${PXSHARED_SOURCE_DIR}/pvd/src/PxProfileMemoryEventParser.h
+ ${PXSHARED_SOURCE_DIR}/pvd/src/PxProfileMemoryEventRecorder.h
+ ${PXSHARED_SOURCE_DIR}/pvd/src/PxProfileMemoryEventReflexiveWriter.h
+ ${PXSHARED_SOURCE_DIR}/pvd/src/PxProfileMemoryEvents.h
+ ${PXSHARED_SOURCE_DIR}/pvd/src/PxProfileMemoryEventSummarizer.h
+ ${PXSHARED_SOURCE_DIR}/pvd/src/PxProfileMemoryEventTypes.h
+ ${PXSHARED_SOURCE_DIR}/pvd/src/PxProfileScopedEvent.h
+ ${PXSHARED_SOURCE_DIR}/pvd/src/PxProfileScopedMutexLock.h
+ ${PXSHARED_SOURCE_DIR}/pvd/src/PxProfileZone.h
+ ${PXSHARED_SOURCE_DIR}/pvd/src/PxProfileZoneImpl.h
+ ${PXSHARED_SOURCE_DIR}/pvd/src/PxProfileZoneManager.h
+ ${PXSHARED_SOURCE_DIR}/pvd/src/PxProfileZoneManagerImpl.h
+ ${PXSHARED_SOURCE_DIR}/pvd/src/PxPvd.cpp
+ ${PXSHARED_SOURCE_DIR}/pvd/src/PxPvdBits.h
+ ${PXSHARED_SOURCE_DIR}/pvd/src/PxPvdByteStreams.h
+ ${PXSHARED_SOURCE_DIR}/pvd/src/PxPvdCommStreamEvents.h
+ ${PXSHARED_SOURCE_DIR}/pvd/src/PxPvdCommStreamEventSink.h
+ ${PXSHARED_SOURCE_DIR}/pvd/src/PxPvdCommStreamSDKEventTypes.h
+ ${PXSHARED_SOURCE_DIR}/pvd/src/PxPvdCommStreamTypes.h
+ ${PXSHARED_SOURCE_DIR}/pvd/src/PxPvdDataStream.cpp
+ ${PXSHARED_SOURCE_DIR}/pvd/src/PxPvdDefaultFileTransport.cpp
+ ${PXSHARED_SOURCE_DIR}/pvd/src/PxPvdDefaultFileTransport.h
+ ${PXSHARED_SOURCE_DIR}/pvd/src/PxPvdDefaultSocketTransport.cpp
+ ${PXSHARED_SOURCE_DIR}/pvd/src/PxPvdDefaultSocketTransport.h
+ ${PXSHARED_SOURCE_DIR}/pvd/src/PxPvdFoundation.h
+ ${PXSHARED_SOURCE_DIR}/pvd/src/PxPvdImpl.cpp
+ ${PXSHARED_SOURCE_DIR}/pvd/src/PxPvdImpl.h
+ ${PXSHARED_SOURCE_DIR}/pvd/src/PxPvdInternalByteStreams.h
+ ${PXSHARED_SOURCE_DIR}/pvd/src/PxPvdMarshalling.h
+ ${PXSHARED_SOURCE_DIR}/pvd/src/PxPvdMemClient.cpp
+ ${PXSHARED_SOURCE_DIR}/pvd/src/PxPvdMemClient.h
+ ${PXSHARED_SOURCE_DIR}/pvd/src/PxPvdObjectModel.h
+ ${PXSHARED_SOURCE_DIR}/pvd/src/PxPvdObjectModelInternalTypeDefs.h
+ ${PXSHARED_SOURCE_DIR}/pvd/src/PxPvdObjectModelInternalTypes.h
+ ${PXSHARED_SOURCE_DIR}/pvd/src/PxPvdObjectModelMetaData.cpp
+ ${PXSHARED_SOURCE_DIR}/pvd/src/PxPvdObjectModelMetaData.h
+ ${PXSHARED_SOURCE_DIR}/pvd/src/PxPvdObjectRegistrar.cpp
+ ${PXSHARED_SOURCE_DIR}/pvd/src/PxPvdObjectRegistrar.h
+ ${PXSHARED_SOURCE_DIR}/pvd/src/PxPvdProfileZoneClient.cpp
+ ${PXSHARED_SOURCE_DIR}/pvd/src/PxPvdProfileZoneClient.h
+ ${PXSHARED_SOURCE_DIR}/pvd/src/PxPvdUserRenderer.cpp
+ ${PXSHARED_SOURCE_DIR}/pvd/src/PxPvdUserRenderImpl.h
+ ${PXSHARED_SOURCE_DIR}/pvd/src/PxPvdUserRenderTypes.h
+)
+SOURCE_GROUP(src\\src FILES ${PXPVDSDK_SOURCE})
+
+SET(PXPVDSDK_INTERNAL_HEADERS
+ ${PXSHARED_SOURCE_DIR}/pvd/include/PsPvd.h
+ ${PXSHARED_SOURCE_DIR}/pvd/include/PxProfileAllocatorWrapper.h
+ ${PXSHARED_SOURCE_DIR}/pvd/include/PxPvdClient.h
+ ${PXSHARED_SOURCE_DIR}/pvd/include/PxPvdDataStream.h
+ ${PXSHARED_SOURCE_DIR}/pvd/include/PxPvdDataStreamHelpers.h
+ ${PXSHARED_SOURCE_DIR}/pvd/include/PxPvdErrorCodes.h
+ ${PXSHARED_SOURCE_DIR}/pvd/include/PxPvdObjectModelBaseTypes.h
+ ${PXSHARED_SOURCE_DIR}/pvd/include/PxPvdRenderBuffer.h
+ ${PXSHARED_SOURCE_DIR}/pvd/include/PxPvdUserRenderer.h
+)
+SOURCE_GROUP(src\\include FILES ${PXPVDSDK_INTERNAL_HEADERS})
+
+ADD_LIBRARY(PxPvdSDK ${PXPVDSDK_LIBTYPE}
+ ${PXPVDSDK_HEADERS}
+
+ ${PXPVDSDK_INTERNAL_HEADERS}
+ ${PXPVDSDK_SOURCE}
+
+ ${PXPVDSDK_PLATFORM_FILES}
+)
+
+TARGET_INCLUDE_DIRECTORIES(PxPvdSDK
+ PRIVATE ${PXSHARED_SOURCE_DIR}/../include
+ PRIVATE ${PXSHARED_SOURCE_DIR}/foundation/include
+ PRIVATE ${PXSHARED_SOURCE_DIR}/pvd/include
+ PRIVATE ${PXSHARED_SOURCE_DIR}/filebuf/include
+
+ PRIVATE ${PXPVDSDK_PLATFORM_INCLUDES}
+
+)
+
+TARGET_COMPILE_DEFINITIONS(PxPvdSDK
+ PRIVATE ${PXPVDSDK_COMPILE_DEFS}
+)
+
+SET_TARGET_PROPERTIES(PxPvdSDK PROPERTIES
+ COMPILE_PDB_NAME_DEBUG "PxPvdSDK${CMAKE_DEBUG_POSTFIX}"
+ COMPILE_PDB_NAME_CHECKED "PxPvdSDK${CMAKE_CHECKED_POSTFIX}"
+ COMPILE_PDB_NAME_PROFILE "PxPvdSDK${CMAKE_PROFILE_POSTFIX}"
+ COMPILE_PDB_NAME_RELEASE "PxPvdSDK${CMAKE_RELEASE_POSTFIX}"
+) \ No newline at end of file
diff --git a/PxShared/src/compiler/cmake/common/PxTask.cmake b/PxShared/src/compiler/cmake/common/PxTask.cmake
new file mode 100644
index 0000000..0d1cd1f
--- /dev/null
+++ b/PxShared/src/compiler/cmake/common/PxTask.cmake
@@ -0,0 +1,44 @@
+#
+# Build PxTask common
+#
+
+SET(PXTASK_HEADERS
+ ${PROJECT_SOURCE_DIR}/../../../../include/task/PxCpuDispatcher.h
+ ${PROJECT_SOURCE_DIR}/../../../../include/task/PxGpuDispatcher.h
+ ${PROJECT_SOURCE_DIR}/../../../../include/task/PxGpuTask.h
+ ${PROJECT_SOURCE_DIR}/../../../../include/task/PxTask.h
+ ${PROJECT_SOURCE_DIR}/../../../../include/task/PxTaskDefine.h
+ ${PROJECT_SOURCE_DIR}/../../../../include/task/PxTaskManager.h
+)
+SOURCE_GROUP(include FILES ${PXTASK_HEADERS})
+
+SET(PXTASK_SOURCE
+ ${PXSHARED_SOURCE_DIR}/task/src/TaskManager.cpp
+)
+SOURCE_GROUP(src FILES ${PXTASK_SOURCE})
+
+ADD_LIBRARY(PxTask ${PXTASK_LIBTYPE}
+ ${PXTASK_HEADERS}
+ ${PXTASK_SOURCE}
+)
+
+TARGET_INCLUDE_DIRECTORIES(PxTask
+ PRIVATE ${PXSHARED_SOURCE_DIR}/../include
+ PRIVATE ${PXSHARED_SOURCE_DIR}/cudamanager/include
+ PRIVATE ${PXSHARED_SOURCE_DIR}/foundation/include
+
+ PRIVATE ${PXTASK_PLATFORM_INCLUDES}
+)
+
+TARGET_COMPILE_DEFINITIONS(PxTask
+ PRIVATE ${PXTASK_COMPILE_DEFS}
+)
+
+IF(NOT ${PXTASK_LIBTYPE} STREQUAL "OBJECT")
+ SET_TARGET_PROPERTIES(PxTask PROPERTIES
+ COMPILE_PDB_NAME_DEBUG "PxTask${CMAKE_DEBUG_POSTFIX}"
+ COMPILE_PDB_NAME_CHECKED "PxTask${CMAKE_CHECKED_POSTFIX}"
+ COMPILE_PDB_NAME_PROFILE "PxTask${CMAKE_PROFILE_POSTFIX}"
+ COMPILE_PDB_NAME_RELEASE "PxTask${CMAKE_RELEASE_POSTFIX}"
+ )
+ENDIF() \ No newline at end of file
diff --git a/PxShared/src/compiler/cmake/findfileswithspec.py b/PxShared/src/compiler/cmake/findfileswithspec.py
new file mode 100644
index 0000000..484ff4f
--- /dev/null
+++ b/PxShared/src/compiler/cmake/findfileswithspec.py
@@ -0,0 +1,23 @@
+import os,argparse,sys,string
+
+#
+# Simple helper program - give it a path and it will list all of the files of the specified extension in relative format, using the
+# pathroot variable as a substitution. This greatly simplifies one part of the process of creating a CMake file for a project
+#
+parser = argparse.ArgumentParser()
+parser.add_argument("dir", help="Path to find files in")
+parser.add_argument("extension", help="Spec to find (ie .cpp)")
+parser.add_argument("--pathroot", help="Path variable to prepend to each line, example: ${PX_ROOT}", default="${DUDER}")
+
+args = parser.parse_args()
+
+if not os.path.exists(args.dir):
+ print("Unable to find path {}".format(args.dir))
+ exit(1)
+
+for root, dirs, files in os.walk(args.dir):
+ for file in files:
+ if file.endswith(args.extension):
+ result = os.path.join(root, file)
+
+ print(result.replace(args.dir, args.pathroot))
diff --git a/PxShared/src/compiler/cmake/html5/CMakeLists.txt b/PxShared/src/compiler/cmake/html5/CMakeLists.txt
new file mode 100644
index 0000000..8b9587a
--- /dev/null
+++ b/PxShared/src/compiler/cmake/html5/CMakeLists.txt
@@ -0,0 +1,36 @@
+cmake_minimum_required(VERSION 3.3)
+#set(CMAKE_VERBOSE_MAKEFILE ON)
+include(../common/CMakeLists.txt)
+
+
+IF(NOT DEFINED TARGET_BUILD_PLATFORM) # Not defined, default to HTML5
+ SET(TARGET_BUILD_PLATFORM "HTML5")
+ENDIF()
+
+SET(PLATFORM_LIST HTML5)
+
+IF (NOT ${TARGET_BUILD_PLATFORM} IN_LIST PLATFORM_LIST)
+ MESSAGE(FATAL_ERROR "Invalid platform:" ${TARGET_BUILD_PLATFORM})
+ENDIF()
+
+SET(CMAKE_CXX_FLAGS "${EPIC_BUILD_FLAGS} -fdiagnostics-show-option -fno-rtti -fno-exceptions -ffast-math -ffunction-sections -fdata-sections -Werror -ferror-limit=0 -Wall -Wextra -fstrict-aliasing -Wstrict-aliasing=2 -pedantic -Weverything -Wno-c++11-long-long -Wno-padded -Wno-reserved-id-macro -Wno-float-equal -Wno-sign-conversion -Wno-covered-switch-default -Wno-documentation-unknown-command -Wno-weak-vtables -Wno-missing-prototypes -Wno-unused-local-typedef -Wno-float-conversion -Wno-global-constructors -Wno-missing-variable-declarations -Wno-exit-time-destructors -Wno-unused-macros -Wno-undef -Wno-c++11-extra-semi -Wno-c++11-extensions -Wno-non-virtual-dtor -Wno-unknown-pragmas -Wno-old-style-cast -Wno-extra-semi -Wno-cast-align -Wno-documentation -Wno-shadow -Wno-conversion -Wno-newline-eof -Wno-header-hygiene -Wno-switch-enum -Wno-undefined-reinterpret-cast -Wno-variadic-macros -Wno-gnu-zero-variadic-macro-arguments -Wno-overloaded-virtual -Wno-dynamic-class-memaccess -Wno-nested-anon-types -Wno-invalid-offsetof -Wno-reorder -Wno-local-type-template-args -Wno-unreachable-code -Wno-unreachable-code-return -Wno-format-pedantic -Wno-unused-private-field -Wno-unused-parameter -Wno-unused-member-function -Wno-used-but-marked-unused -Wno-unused-variable -Wno-format-nonliteral -Wno-shift-sign-overflow -Wno-comma -Wno-expansion-to-defined -Wno-undefined-func-template -Wno-weak-template-vtables -Wno-double-promotion -Wno-nonportable-include-path -Wno-disabled-macro-expansion -Wno-missing-noreturn")
+SET(CMAKE_STATIC_LIBRARY_PREFIX "")
+
+SET(PXSHARED_HTML5_COMPILE_DEFS _LIB;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE)
+SET(PXSHARED_HTML5_DEBUG_COMPILE_DEFS _DEBUG;PX_DEBUG=1;PX_CHECKED=1)
+SET(PXSHARED_HTML5_CHECKED_COMPILE_DEFS NDEBUG;PX_CHECKED=1)
+SET(PXSHARED_HTML5_PROFILE_COMPILE_DEFS NDEBUG;PX_PROFILE=1)
+SET(PXSHARED_HTML5_RELEASE_COMPILE_DEFS NDEBUG)
+
+SET(CMAKE_DEBUG_POSTFIX $ENV{LIB_SUFFIX})
+SET(CMAKE_PROFILE_POSTFIX $ENV{LIB_SUFFIX})
+SET(CMAKE_CHECKED_POSTFIX $ENV{LIB_SUFFIX})
+SET(CMAKE_RELEASE_POSTFIX $ENV{LIB_SUFFIX})
+
+# Include project cmake files here
+INCLUDE(PxFoundation.cmake)
+INCLUDE(PsFastXml.cmake)
+INCLUDE(PxPvdSDK.cmake)
+INCLUDE(PxTask.cmake)
+# INCLUDE(PxCudaContextManager.cmake)
+
diff --git a/PxShared/src/compiler/cmake/html5/PsFastXml.cmake b/PxShared/src/compiler/cmake/html5/PsFastXml.cmake
new file mode 100644
index 0000000..3279134
--- /dev/null
+++ b/PxShared/src/compiler/cmake/html5/PsFastXml.cmake
@@ -0,0 +1,26 @@
+#
+# Build PsFastXml
+#
+
+SET(PXSHARED_SOURCE_DIR ${PROJECT_SOURCE_DIR}/../../../../src)
+
+SET(LL_SOURCE_DIR ${PXSHARED_SOURCE_DIR}/fastxml)
+
+SET(PLATFORM_INCLUDES
+ $ENV{EMSCRIPTEN}/system/include
+)
+
+# Use generator expressions to set config specific preprocessor definitions
+SET(PSFASTXML_COMPILE_DEFS
+
+ # Common to all configurations
+ ${PXSHARED_HTML5_COMPILE_DEFS};PX_FOUNDATION_DLL=0;
+
+ $<$<CONFIG:debug>:${PXSHARED_HTML5_DEBUG_COMPILE_DEFS};>
+ $<$<CONFIG:checked>:${PXSHARED_HTML5_CHECKED_COMPILE_DEFS};>
+ $<$<CONFIG:profile>:${PXSHARED_HTML5_PROFILE_COMPILE_DEFS};>
+ $<$<CONFIG:release>:${PXSHARED_HTML5_RELEASE_COMPILE_DEFS};>
+)
+
+# include PsFastXml common
+INCLUDE(../common/PsFastXml.cmake) \ No newline at end of file
diff --git a/PxShared/src/compiler/cmake/html5/PxFoundation.cmake b/PxShared/src/compiler/cmake/html5/PxFoundation.cmake
new file mode 100644
index 0000000..a78e4e6
--- /dev/null
+++ b/PxShared/src/compiler/cmake/html5/PxFoundation.cmake
@@ -0,0 +1,41 @@
+#
+# Build PxFoundation
+#
+
+SET(PXSHARED_SOURCE_DIR ${PROJECT_SOURCE_DIR}/../../../../src)
+
+SET(LL_SOURCE_DIR ${PXSHARED_SOURCE_DIR}/foundation)
+
+SET(PXFOUNDATION_LIBTYPE STATIC)
+
+SET(PXFOUNDATION_PLATFORM_FILES
+ ${LL_SOURCE_DIR}/src/unix/PsUnixAtomic.cpp
+ ${LL_SOURCE_DIR}/src/unix/PsUnixCpu.cpp
+ ${LL_SOURCE_DIR}/src/unix/PsUnixFPU.cpp
+ ${LL_SOURCE_DIR}/src/unix/PsUnixMutex.cpp
+ ${LL_SOURCE_DIR}/src/unix/PsUnixPrintString.cpp
+ ${LL_SOURCE_DIR}/src/unix/PsUnixSList.cpp
+ ${LL_SOURCE_DIR}/src/unix/PsUnixSocket.cpp
+ ${LL_SOURCE_DIR}/src/unix/PsUnixSync.cpp
+ ${LL_SOURCE_DIR}/src/unix/PsUnixThread.cpp
+ ${LL_SOURCE_DIR}/src/unix/PsUnixTime.cpp
+)
+
+SET(PXFOUNDATION_PLATFORM_INCLUDES
+ $ENV{EMSCRIPTEN}/system/include
+ ${LL_SOURCE_DIR}/include/unix
+)
+
+SET(PXFOUNDATION_COMPILE_DEFS
+
+ # Common to all configurations
+ ${PXSHARED_HTML5_COMPILE_DEFS}
+
+ $<$<CONFIG:debug>:${PXSHARED_HTML5_DEBUG_COMPILE_DEFS}>
+ $<$<CONFIG:checked>:${PXSHARED_HTML5_CHECKED_COMPILE_DEFS}>
+ $<$<CONFIG:profile>:${PXSHARED_HTML5_PROFILE_COMPILE_DEFS}>
+ $<$<CONFIG:release>:${PXSHARED_HTML5_RELEASE_COMPILE_DEFS}>
+)
+
+# include PxFoundation common
+INCLUDE(../common/PxFoundation.cmake) \ No newline at end of file
diff --git a/PxShared/src/compiler/cmake/html5/PxPvdSDK.cmake b/PxShared/src/compiler/cmake/html5/PxPvdSDK.cmake
new file mode 100644
index 0000000..36a465f
--- /dev/null
+++ b/PxShared/src/compiler/cmake/html5/PxPvdSDK.cmake
@@ -0,0 +1,31 @@
+#
+# Build PxPvdSDK
+#
+
+SET(PXSHARED_SOURCE_DIR ${PROJECT_SOURCE_DIR}/../../../../src)
+
+SET(LL_SOURCE_DIR ${PXSHARED_SOURCE_DIR}/pvd)
+
+ SET(PXPVDSDK_LIBTYPE STATIC)
+
+ SET(PXPVDSDK_PLATFORM_INCLUDES
+ $ENV{EMSCRIPTEN}/system/include
+ )
+
+ # Use generator expressions to set config specific preprocessor definitions
+ SET(PXPVDSDK_COMPILE_DEFS
+ ${PXSHARED_HTML5_COMPILE_DEFS}
+
+ $<$<CONFIG:debug>:${PXSHARED_HTML5_DEBUG_COMPILE_DEFS}>
+ $<$<CONFIG:checked>:${PXSHARED_HTML5_CHECKED_COMPILE_DEFS}>
+ $<$<CONFIG:profile>:${PXSHARED_HTML5_PROFILE_COMPILE_DEFS}>
+ $<$<CONFIG:release>:${PXSHARED_HTML5_RELEASE_COMPILE_DEFS}>
+ )
+
+# include PxPvdSDK common
+INCLUDE(../common/PxPvdSDK.cmake)
+
+# Add linked libraries
+TARGET_LINK_LIBRARIES(PxPvdSDK PRIVATE PxFoundation)
+
+
diff --git a/PxShared/src/compiler/cmake/html5/PxTask.cmake b/PxShared/src/compiler/cmake/html5/PxTask.cmake
new file mode 100644
index 0000000..5c00c13
--- /dev/null
+++ b/PxShared/src/compiler/cmake/html5/PxTask.cmake
@@ -0,0 +1,22 @@
+#
+# Build PxTask
+#
+
+SET(PXSHARED_SOURCE_DIR ${PROJECT_SOURCE_DIR}/../../../../src)
+
+SET(LL_SOURCE_DIR ${PXSHARED_SOURCE_DIR}/task)
+
+SET(PXTASK_PLATFORM_INCLUDES
+ $ENV{EMSCRIPTEN}/system/include
+)
+
+SET(PXTASK_COMPILE_DEFS
+ ${PXSHARED_HTML5_COMPILE_DEFS};PX_FOUNDATION_DLL=0;
+ $<$<CONFIG:debug>:${PXSHARED_HTML5_DEBUG_COMPILE_DEFS};>
+ $<$<CONFIG:checked>:${PXSHARED_HTML5_CHECKED_COMPILE_DEFS};>
+ $<$<CONFIG:profile>:${PXSHARED_HTML5_PROFILE_COMPILE_DEFS};>
+ $<$<CONFIG:release>:${PXSHARED_HTML5_RELEASE_COMPILE_DEFS};>
+)
+
+# include PxTask common
+INCLUDE(../common/PxTask.cmake)
diff --git a/PxShared/src/compiler/cmake/windows/CMakeLists.txt b/PxShared/src/compiler/cmake/windows/CMakeLists.txt
new file mode 100644
index 0000000..39b7dfc
--- /dev/null
+++ b/PxShared/src/compiler/cmake/windows/CMakeLists.txt
@@ -0,0 +1,90 @@
+cmake_minimum_required(VERSION 3.3)
+include(../common/CMakeLists.txt)
+
+
+IF(NOT DEFINED TARGET_BUILD_PLATFORM) # Not defined, default to Windows
+ SET(TARGET_BUILD_PLATFORM "Windows")
+ENDIF()
+
+SET(PLATFORM_LIST Windows)
+
+IF (NOT ${TARGET_BUILD_PLATFORM} IN_LIST PLATFORM_LIST)
+ MESSAGE(FATAL_ERROR "Invalid platform:" ${TARGET_BUILD_PLATFORM})
+ENDIF()
+
+SET(CMAKE_CXX_FLAGS "/Wall /wd4514 /wd4820 /wd4127 /wd4710 /wd4711 /wd4577 /d2Zi+ /WX /W4 /GF /GS- /GR- /Gd /fp:fast")
+
+IF(DEFINED STATIC_WINCRT)
+ SET(WINCRT_NDEBUG "/MT")
+ SET(WINCRT_DEBUG "/MTd")
+ELSE()
+ SET(WINCRT_NDEBUG "/MD")
+ SET(WINCRT_DEBUG "/MDd")
+ENDIF()
+
+SET(CMAKE_CXX_FLAGS_DEBUG "/Od ${WINCRT_DEBUG} /RTCu /Zi")
+SET(CMAKE_CXX_FLAGS_CHECKED "/Ox ${WINCRT_NDEBUG} /Zi")
+SET(CMAKE_CXX_FLAGS_PROFILE "/Ox ${WINCRT_NDEBUG} /Zi")
+SET(CMAKE_CXX_FLAGS_RELEASE "/Ox ${WINCRT_NDEBUG} /Zi")
+
+# Build PDBs for all configurations
+SET(CMAKE_SHARED_LINKER_FLAGS "/DEBUG")
+
+# Controls PX_NVTX for all projects on windows
+SET(PXSHARED_WINDOWS_ENABLE_NVTX 0)
+
+IF(DEFINED PX_GENERATE_GPU_PROJECTS)
+SET(PXSHARED_WINDOWS_COMPILE_DEFS WIN32;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;_WINSOCK_DEPRECATED_NO_WARNINGS;)
+ELSE()
+# Disable cuda and dx for all projects on windows
+SET(PXSHARED_WINDOWS_COMPILE_DEFS WIN32;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;_WINSOCK_DEPRECATED_NO_WARNINGS;DISABLE_CUDA_PHYSX;)
+ENDIF()
+SET(PXSHARED_WINDOWS_DEBUG_COMPILE_DEFS _DEBUG;PX_DEBUG=1;PX_CHECKED=1;PX_NVTX=${PXSHARED_WINDOWS_ENABLE_NVTX})
+SET(PXSHARED_WINDOWS_CHECKED_COMPILE_DEFS NDEBUG;PX_CHECKED=1;PX_NVTX=${PXSHARED_WINDOWS_ENABLE_NVTX})
+SET(PXSHARED_WINDOWS_PROFILE_COMPILE_DEFS NDEBUG;PX_PROFILE=1;PX_NVTX=${PXSHARED_WINDOWS_ENABLE_NVTX})
+SET(PXSHARED_WINDOWS_RELEASE_COMPILE_DEFS NDEBUG)
+
+IF(CMAKE_CL_64)
+ ADD_DEFINITIONS(-DWIN64)
+ENDIF(CMAKE_CL_64)
+
+IF(CMAKE_CL_64)
+ SET(LIBPATH_SUFFIX "x64")
+ELSE(CMAKE_CL_64)
+ SET(LIBPATH_SUFFIX "x86")
+ENDIF(CMAKE_CL_64)
+
+SET(CMAKE_DEBUG_POSTFIX "${CMAKE_DEBUG_POSTFIX}_${LIBPATH_SUFFIX}")
+SET(CMAKE_PROFILE_POSTFIX "${CMAKE_PROFILE_POSTFIX}_${LIBPATH_SUFFIX}")
+SET(CMAKE_CHECKED_POSTFIX "${CMAKE_CHECKED_POSTFIX}_${LIBPATH_SUFFIX}")
+SET(CMAKE_RELEASE_POSTFIX "${CMAKE_RELEASE_POSTFIX}_${LIBPATH_SUFFIX}")
+
+# Include project cmake files here
+IF(DEFINED PX_SELECT_COMPONENTS)
+ if ("PxFoundation" IN_LIST PX_SELECT_COMPONENTS)
+ INCLUDE(PxFoundation.cmake)
+ endif()
+ if ("PsFastXml" IN_LIST PX_SELECT_COMPONENTS)
+ INCLUDE(PsFastXml.cmake)
+ endif()
+ if ("PxPvdSDK" IN_LIST PX_SELECT_COMPONENTS)
+ INCLUDE(PxPvdSDK.cmake)
+ endif()
+ if ("PxTask" IN_LIST PX_SELECT_COMPONENTS)
+ INCLUDE(PxTask.cmake)
+ endif()
+ if ("PxCudaContextManager" IN_LIST PX_SELECT_COMPONENTS)
+ IF(DEFINED PX_GENERATE_GPU_PROJECTS)
+ INCLUDE(PxCudaContextManager.cmake)
+ ENDIF()
+ endif()
+ELSE()
+INCLUDE(PxFoundation.cmake)
+INCLUDE(PsFastXml.cmake)
+INCLUDE(PxPvdSDK.cmake)
+INCLUDE(PxTask.cmake)
+IF(DEFINED PX_GENERATE_GPU_PROJECTS)
+ INCLUDE(PxCudaContextManager.cmake)
+ENDIF()
+ENDIF()
+
diff --git a/PxShared/src/compiler/cmake/windows/PsFastXml.cmake b/PxShared/src/compiler/cmake/windows/PsFastXml.cmake
new file mode 100644
index 0000000..862b06e
--- /dev/null
+++ b/PxShared/src/compiler/cmake/windows/PsFastXml.cmake
@@ -0,0 +1,21 @@
+#
+# Build PsFastXml
+#
+
+SET(PXSHARED_SOURCE_DIR ${PROJECT_SOURCE_DIR}/../../../../src)
+
+SET(LL_SOURCE_DIR ${PXSHARED_SOURCE_DIR}/fastxml)
+
+# Use generator expressions to set config specific preprocessor definitions
+SET(PSFASTXML_COMPILE_DEFS
+ # Common to all configurations
+ ${PXSHARED_WINDOWS_COMPILE_DEFS};PX_FOUNDATION_DLL=0;
+
+ $<$<CONFIG:debug>:${PXSHARED_WINDOWS_DEBUG_COMPILE_DEFS};>
+ $<$<CONFIG:checked>:${PXSHARED_WINDOWS_CHECKED_COMPILE_DEFS};>
+ $<$<CONFIG:profile>:${PXSHARED_WINDOWS_PROFILE_COMPILE_DEFS};>
+ $<$<CONFIG:release>:${PXSHARED_WINDOWS_RELEASE_COMPILE_DEFS};>
+)
+
+# include PsFastXml common
+INCLUDE(../common/PsFastXml.cmake) \ No newline at end of file
diff --git a/PxShared/src/compiler/cmake/windows/PxCudaContextManager.cmake b/PxShared/src/compiler/cmake/windows/PxCudaContextManager.cmake
new file mode 100644
index 0000000..6b59d6e
--- /dev/null
+++ b/PxShared/src/compiler/cmake/windows/PxCudaContextManager.cmake
@@ -0,0 +1,32 @@
+#
+# Build PxCudaContextManager
+#
+FIND_PACKAGE(CUDA REQUIRED)
+
+SET(PXSHARED_SOURCE_DIR ${PROJECT_SOURCE_DIR}/../../../../src)
+
+SET(LL_SOURCE_DIR ${PXSHARED_SOURCE_DIR}/cudamanager)
+
+SET(CUDA_COMPILER_OPTION_DEBUG "--compiler-options=/W3,/nologo,/Ot,/Ox,/Zi,${WINCRT_DEBUG}")
+SET(CUDA_COMPILER_OPTION_CHECKED "--compiler-options=/W3,/nologo,/Ot,/Ox,/Zi,${WINCRT_NDEBUG}")
+SET(CUDA_COMPILER_OPTION_PROFILE "--compiler-options=/W3,/nologo,/Ot,/Ox,/Zi,${WINCRT_NDEBUG}")
+SET(CUDA_COMPILER_OPTION_RELEASE "--compiler-options=/W3,/nologo,/Ot,/Ox,/Zi,${WINCRT_NDEBUG}")
+
+# include PxCudaContextManager common
+INCLUDE(../common/PxCudaContextManager.cmake)
+
+# No linked libraries
+
+# Use generator expressions to set config specific preprocessor definitions
+TARGET_COMPILE_DEFINITIONS(PxCudaContextManager
+
+ # Common to all configurations
+ PRIVATE ${PXSHARED_WINDOWS_COMPILE_DEFS};
+
+ PRIVATE $<$<CONFIG:debug>:${PXSHARED_WINDOWS_DEBUG_COMPILE_DEFS};>
+ PRIVATE $<$<CONFIG:checked>:${PXSHARED_WINDOWS_CHECKED_COMPILE_DEFS};>
+ PRIVATE $<$<CONFIG:profile>:${PXSHARED_WINDOWS_PROFILE_COMPILE_DEFS};>
+ PRIVATE $<$<CONFIG:release>:${PXSHARED_WINDOWS_RELEASE_COMPILE_DEFS};>
+)
+
+#TODO: Link flags
diff --git a/PxShared/src/compiler/cmake/windows/PxFoundation.cmake b/PxShared/src/compiler/cmake/windows/PxFoundation.cmake
new file mode 100644
index 0000000..31de53b
--- /dev/null
+++ b/PxShared/src/compiler/cmake/windows/PxFoundation.cmake
@@ -0,0 +1,70 @@
+#
+# Build PxFoundation
+#
+
+SET(PXSHARED_SOURCE_DIR ${PROJECT_SOURCE_DIR}/../../../../src)
+
+SET(LL_SOURCE_DIR ${PXSHARED_SOURCE_DIR}/foundation)
+
+SET(PXFOUNDATION_LIBTYPE SHARED)
+
+SET(PXFOUNDATION_RESOURCE_FILE
+ ${PXSHARED_SOURCE_DIR}/compiler/resource_${LIBPATH_SUFFIX}/PxFoundation.rc
+)
+SOURCE_GROUP(resource FILES ${PXFOUNDATION_RESOURCE_FILE})
+
+SET(PXFOUNDATION_PLATFORM_HEADERS
+ ${PXSHARED_SOURCE_DIR}/../include/foundation/windows/PxWindowsIntrinsics.h
+ ${PXSHARED_SOURCE_DIR}/../include/foundation/windows/PxWindowsFoundationDelayLoadHook.h
+)
+SOURCE_GROUP(include\\windows FILES ${PXFOUNDATION_PLATFORM_HEADERS})
+
+SET(PXFOUNDATION_PLATFORM_SOURCE
+ ${LL_SOURCE_DIR}/src/windows/PsWindowsAtomic.cpp
+ ${LL_SOURCE_DIR}/src/windows/PsWindowsCpu.cpp
+ ${LL_SOURCE_DIR}/src/windows/PsWindowsFPU.cpp
+ ${LL_SOURCE_DIR}/src/windows/PsWindowsMutex.cpp
+ ${LL_SOURCE_DIR}/src/windows/PsWindowsPrintString.cpp
+ ${LL_SOURCE_DIR}/src/windows/PsWindowsSList.cpp
+ ${LL_SOURCE_DIR}/src/windows/PsWindowsSocket.cpp
+ ${LL_SOURCE_DIR}/src/windows/PsWindowsSync.cpp
+ ${LL_SOURCE_DIR}/src/windows/PsWindowsThread.cpp
+ ${LL_SOURCE_DIR}/src/windows/PsWindowsTime.cpp
+)
+SOURCE_GROUP(src\\src\\windows FILES ${PXFOUNDATION_PLATFORM_SOURCE})
+
+SET(PXFOUNDATION_PLATFORM_SOURCE_HEADERS
+ ${LL_SOURCE_DIR}/include/windows/PsWindowsAoS.h
+ ${LL_SOURCE_DIR}/include/windows/PsWindowsFPU.h
+ ${LL_SOURCE_DIR}/include/windows/PsWindowsInclude.h
+ ${LL_SOURCE_DIR}/include/windows/PsWindowsInlineAoS.h
+ ${LL_SOURCE_DIR}/include/windows/PsWindowsIntrinsics.h
+ ${LL_SOURCE_DIR}/include/windows/PsWindowsLoadLibrary.h
+ ${LL_SOURCE_DIR}/include/windows/PsWindowsTrigConstants.h
+)
+SOURCE_GROUP(src\\include\\windows FILES ${PXFOUNDATION_PLATFORM_SOURCE_HEADERS})
+
+
+SET(PXFOUNDATION_PLATFORM_FILES
+ ${PXFOUNDATION_PLATFORM_SOURCE}
+ ${PXFOUNDATION_PLATFORM_SOURCE_HEADERS}
+ ${PXFOUNDATION_PLATFORM_HEADERS}
+ ${PXFOUNDATION_RESOURCE_FILE}
+)
+
+SET(PXFOUNDATION_PLATFORM_INCLUDES
+ ${LL_SOURCE_DIR}/include/windows
+)
+
+SET(PXFOUNDATION_COMPILE_DEFS
+ # Common to all configurations
+ ${PXSHARED_WINDOWS_COMPILE_DEFS};PX_FOUNDATION_DLL=1;
+
+ $<$<CONFIG:debug>:${PXSHARED_WINDOWS_DEBUG_COMPILE_DEFS};>
+ $<$<CONFIG:checked>:${PXSHARED_WINDOWS_CHECKED_COMPILE_DEFS};>
+ $<$<CONFIG:profile>:${PXSHARED_WINDOWS_PROFILE_COMPILE_DEFS};>
+ $<$<CONFIG:release>:${PXSHARED_WINDOWS_RELEASE_COMPILE_DEFS};>
+)
+
+# include PxFoundation common
+INCLUDE(../common/PxFoundation.cmake) \ No newline at end of file
diff --git a/PxShared/src/compiler/cmake/windows/PxPvdSDK.cmake b/PxShared/src/compiler/cmake/windows/PxPvdSDK.cmake
new file mode 100644
index 0000000..287ec1c
--- /dev/null
+++ b/PxShared/src/compiler/cmake/windows/PxPvdSDK.cmake
@@ -0,0 +1,55 @@
+#
+# Build PxPvdSDK
+#
+
+SET(PXSHARED_SOURCE_DIR ${PROJECT_SOURCE_DIR}/../../../../src)
+
+SET(LL_SOURCE_DIR ${PXSHARED_SOURCE_DIR}/pvd)
+
+FIND_PACKAGE(nvToolsExt REQUIRED)
+
+SET(PXPVDSDK_LIBTYPE SHARED)
+
+SET(PXPVDSDK_RESOURCE_FILE
+ ${PXSHARED_SOURCE_DIR}/compiler/resource_${LIBPATH_SUFFIX}/PxPvdSDK.rc
+)
+SOURCE_GROUP(resource FILES ${PXPVDSDK_RESOURCE_FILE})
+
+SET(PXPVDSDK_PLATFORM_HEADERS
+ ${PXSHARED_SOURCE_DIR}/../include/pvd/windows/PxWindowsPvdDelayLoadHook.h
+)
+SOURCE_GROUP(include\\windows FILES ${PXPVDSDK_PLATFORM_HEADERS})
+
+SET(PXPVDSDK_PLATFORM_SOURCE
+ ${PXSHARED_SOURCE_DIR}/pvd/src/windows/PxWindowsPvdDelayLoadHook.cpp
+)
+SOURCE_GROUP(src\\src\\windows FILES ${PXPVDSDK_PLATFORM_SOURCE})
+
+SET(PXPVDSDK_PLATFORM_FILES
+ ${PXPVDSDK_RESOURCE_FILE}
+ ${PXPVDSDK_PLATFORM_HEADERS}
+ ${PXPVDSDK_PLATFORM_SOURCE}
+)
+
+SET(PXPVDSDK_PLATFORM_INCLUDES
+ ${NVTOOLSEXT_INCLUDE_DIRS}
+)
+
+# Use generator expressions to set config specific preprocessor definitions
+SET(PXPVDSDK_COMPILE_DEFS
+ # Common to all configurations
+ ${PXSHARED_WINDOWS_COMPILE_DEFS};PX_PVDSDK_DLL=1;PX_FOUNDATION_DLL=1;
+
+ $<$<CONFIG:debug>:${PXSHARED_WINDOWS_DEBUG_COMPILE_DEFS};>
+ $<$<CONFIG:checked>:${PXSHARED_WINDOWS_CHECKED_COMPILE_DEFS};>
+ $<$<CONFIG:profile>:${PXSHARED_WINDOWS_PROFILE_COMPILE_DEFS};>
+ $<$<CONFIG:release>:${PXSHARED_WINDOWS_RELEASE_COMPILE_DEFS};>
+)
+
+# include PxPvdSDK common
+INCLUDE(../common/PxPvdSDK.cmake)
+
+# Add linked libraries
+TARGET_LINK_LIBRARIES(PxPvdSDK PUBLIC ${NVTOOLSEXT_LIBRARIES} PxFoundation)
+
+
diff --git a/PxShared/src/compiler/cmake/windows/PxTask.cmake b/PxShared/src/compiler/cmake/windows/PxTask.cmake
new file mode 100644
index 0000000..32d4b39
--- /dev/null
+++ b/PxShared/src/compiler/cmake/windows/PxTask.cmake
@@ -0,0 +1,19 @@
+#
+# Build PxTask
+#
+
+SET(PXSHARED_SOURCE_DIR ${PROJECT_SOURCE_DIR}/../../../../src)
+
+SET(PXTASK_COMPILE_DEFS
+ ${PXSHARED_WINDOWS_COMPILE_DEFS};_LIB
+
+ $<$<CONFIG:debug>:${PXSHARED_WINDOWS_DEBUG_COMPILE_DEFS};>
+ $<$<CONFIG:checked>:${PXSHARED_WINDOWS_CHECKED_COMPILE_DEFS};>
+ $<$<CONFIG:profile>:${PXSHARED_WINDOWS_PROFILE_COMPILE_DEFS};>
+ $<$<CONFIG:release>:${PXSHARED_WINDOWS_RELEASE_COMPILE_DEFS};>
+)
+
+SET(PXTASK_LIBTYPE STATIC)
+
+# include PxTask common
+INCLUDE(../common/PxTask.cmake)
diff --git a/PxShared/src/compiler/resource_x64/PxFoundation.rc b/PxShared/src/compiler/resource_x64/PxFoundation.rc
new file mode 100644
index 0000000..dfcfde2
--- /dev/null
+++ b/PxShared/src/compiler/resource_x64/PxFoundation.rc
Binary files differ
diff --git a/PxShared/src/compiler/resource_x64/PxPvdSDK.rc b/PxShared/src/compiler/resource_x64/PxPvdSDK.rc
new file mode 100644
index 0000000..37308cf
--- /dev/null
+++ b/PxShared/src/compiler/resource_x64/PxPvdSDK.rc
Binary files differ
diff --git a/PxShared/src/compiler/resource_x64/resource.h b/PxShared/src/compiler/resource_x64/resource.h
new file mode 100644
index 0000000..b421bea
--- /dev/null
+++ b/PxShared/src/compiler/resource_x64/resource.h
@@ -0,0 +1,44 @@
+// This code contains NVIDIA Confidential Information and is disclosed to you
+// under a form of NVIDIA software license agreement provided separately to you.
+//
+// Notice
+// NVIDIA Corporation and its licensors retain all intellectual property and
+// proprietary rights in and to this software and related documentation and
+// any modifications thereto. Any use, reproduction, disclosure, or
+// distribution of this software and related documentation without an express
+// license agreement from NVIDIA Corporation is strictly prohibited.
+//
+// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES
+// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO
+// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,
+// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.
+//
+// Information and code furnished is believed to be accurate and reliable.
+// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such
+// information or for any infringement of patents or other rights of third parties that may
+// result from its use. No license is granted by implication or otherwise under any patent
+// or patent rights of NVIDIA Corporation. Details are subject to change without notice.
+// This code supersedes and replaces all information previously supplied.
+// NVIDIA Corporation products are not authorized for use as critical
+// components in life support devices or systems without express written approval of
+// NVIDIA Corporation.
+//
+// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved.
+// Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved.
+// Copyright (c) 2001-2004 NovodeX AG. All rights reserved.
+
+//{{NO_DEPENDENCIES}}
+// Microsoft Visual C++ generated include file.
+// Used by PxFoundation.rc
+//
+
+// Next default values for new objects
+//
+#ifdef APSTUDIO_INVOKED
+#ifndef APSTUDIO_READONLY_SYMBOLS
+#define _APS_NEXT_RESOURCE_VALUE 101
+#define _APS_NEXT_COMMAND_VALUE 40001
+#define _APS_NEXT_CONTROL_VALUE 1000
+#define _APS_NEXT_SYMED_VALUE 101
+#endif
+#endif
diff --git a/PxShared/src/compiler/resource_x86/PxFoundation.rc b/PxShared/src/compiler/resource_x86/PxFoundation.rc
new file mode 100644
index 0000000..8b1085d
--- /dev/null
+++ b/PxShared/src/compiler/resource_x86/PxFoundation.rc
Binary files differ
diff --git a/PxShared/src/compiler/resource_x86/PxPvdSDK.rc b/PxShared/src/compiler/resource_x86/PxPvdSDK.rc
new file mode 100644
index 0000000..90636c2
--- /dev/null
+++ b/PxShared/src/compiler/resource_x86/PxPvdSDK.rc
Binary files differ
diff --git a/PxShared/src/compiler/resource_x86/resource.h b/PxShared/src/compiler/resource_x86/resource.h
new file mode 100644
index 0000000..b421bea
--- /dev/null
+++ b/PxShared/src/compiler/resource_x86/resource.h
@@ -0,0 +1,44 @@
+// This code contains NVIDIA Confidential Information and is disclosed to you
+// under a form of NVIDIA software license agreement provided separately to you.
+//
+// Notice
+// NVIDIA Corporation and its licensors retain all intellectual property and
+// proprietary rights in and to this software and related documentation and
+// any modifications thereto. Any use, reproduction, disclosure, or
+// distribution of this software and related documentation without an express
+// license agreement from NVIDIA Corporation is strictly prohibited.
+//
+// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES
+// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO
+// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,
+// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.
+//
+// Information and code furnished is believed to be accurate and reliable.
+// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such
+// information or for any infringement of patents or other rights of third parties that may
+// result from its use. No license is granted by implication or otherwise under any patent
+// or patent rights of NVIDIA Corporation. Details are subject to change without notice.
+// This code supersedes and replaces all information previously supplied.
+// NVIDIA Corporation products are not authorized for use as critical
+// components in life support devices or systems without express written approval of
+// NVIDIA Corporation.
+//
+// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved.
+// Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved.
+// Copyright (c) 2001-2004 NovodeX AG. All rights reserved.
+
+//{{NO_DEPENDENCIES}}
+// Microsoft Visual C++ generated include file.
+// Used by PxFoundation.rc
+//
+
+// Next default values for new objects
+//
+#ifdef APSTUDIO_INVOKED
+#ifndef APSTUDIO_READONLY_SYMBOLS
+#define _APS_NEXT_RESOURCE_VALUE 101
+#define _APS_NEXT_COMMAND_VALUE 40001
+#define _APS_NEXT_CONTROL_VALUE 1000
+#define _APS_NEXT_SYMED_VALUE 101
+#endif
+#endif