aboutsummaryrefslogtreecommitdiff
path: root/sdk
diff options
context:
space:
mode:
authorAnton Novoselov <[email protected]>2017-08-01 13:20:34 +0300
committerAnton Novoselov <[email protected]>2017-08-01 13:20:34 +0300
commit883afed713a7b6508c9847a1a3d7670811b43026 (patch)
treea58d155fc9422e836d8b33ee39880dc1491f7828 /sdk
parentBlast 1.1 release (windows / linux) (diff)
downloadblast-883afed713a7b6508c9847a1a3d7670811b43026.tar.xz
blast-883afed713a7b6508c9847a1a3d7670811b43026.zip
* fix .gitignore
* added missing cmake files
Diffstat (limited to 'sdk')
-rw-r--r--sdk/compiler/cmake/NvBlastExtAssetUtils.cmake93
-rw-r--r--sdk/compiler/cmake/NvBlastExtExporter.cmake102
-rw-r--r--sdk/compiler/cmake/NvBlastExtPxSerialization.cmake206
-rw-r--r--sdk/compiler/cmake/NvBlastExtStress.cmake91
-rw-r--r--sdk/compiler/cmake/NvBlastExtTkSerialization.cmake172
-rw-r--r--sdk/compiler/cmake/NvBlastGlobals.cmake67
-rw-r--r--sdk/compiler/cmake/linux/NvBlastExtAssetUtils.cmake27
-rw-r--r--sdk/compiler/cmake/linux/NvBlastExtPxSerialization.cmake29
-rw-r--r--sdk/compiler/cmake/linux/NvBlastExtStress.cmake11
-rw-r--r--sdk/compiler/cmake/linux/NvBlastExtTkSerialization.cmake27
-rw-r--r--sdk/compiler/cmake/linux/NvBlastGlobals.cmake15
-rw-r--r--sdk/compiler/cmake/modules/FindBoostMultiprecision.cmake22
-rw-r--r--sdk/compiler/cmake/windows/NvBlastExtAssetUtils.cmake26
-rw-r--r--sdk/compiler/cmake/windows/NvBlastExtExporter.cmake30
-rw-r--r--sdk/compiler/cmake/windows/NvBlastExtPxSerialization.cmake26
-rw-r--r--sdk/compiler/cmake/windows/NvBlastExtTkSerialization.cmake26
-rw-r--r--sdk/compiler/cmake/windows/NvBlastGlobals.cmake13
17 files changed, 983 insertions, 0 deletions
diff --git a/sdk/compiler/cmake/NvBlastExtAssetUtils.cmake b/sdk/compiler/cmake/NvBlastExtAssetUtils.cmake
new file mode 100644
index 0000000..830196e
--- /dev/null
+++ b/sdk/compiler/cmake/NvBlastExtAssetUtils.cmake
@@ -0,0 +1,93 @@
+#
+# Build NvBlastExtAssetUtils Common
+#
+
+SET(COMMON_SOURCE_DIR ${PROJECT_SOURCE_DIR}/common)
+
+SET(ASSETUTILS_INCLUDE_DIR ${PROJECT_SOURCE_DIR}/extensions/assetutils/include)
+SET(ASSETUTILS_SOURCE_DIR ${PROJECT_SOURCE_DIR}/extensions/assetutils/source)
+
+SET(EXT_COMMON_SOURCE_DIR ${PROJECT_SOURCE_DIR}/extensions/common/source)
+SET(EXT_COMMON_INCLUDE_DIR ${PROJECT_SOURCE_DIR}/extensions/common/include)
+
+# Include here after the directories are defined so that the platform specific file can use the variables.
+include(${PROJECT_CMAKE_FILES_DIR}/${TARGET_BUILD_PLATFORM}/NvBlastExtAssetUtils.cmake)
+
+
+SET(COMMON_FILES
+ ${BLASTEXTASSETUTILS_PLATFORM_COMMON_FILES}
+
+ ${COMMON_SOURCE_DIR}/NvBlastAssert.cpp
+ ${COMMON_SOURCE_DIR}/NvBlastAssert.h
+ ${COMMON_SOURCE_DIR}/NvBlastAtomic.cpp
+ ${COMMON_SOURCE_DIR}/NvBlastAtomic.h
+ ${COMMON_SOURCE_DIR}/NvBlastDLink.h
+ ${COMMON_SOURCE_DIR}/NvBlastFixedArray.h
+ ${COMMON_SOURCE_DIR}/NvBlastFixedBitmap.h
+ ${COMMON_SOURCE_DIR}/NvBlastFixedBoolArray.h
+ ${COMMON_SOURCE_DIR}/NvBlastFixedPriorityQueue.h
+ ${COMMON_SOURCE_DIR}/NvBlastGeometry.h
+ ${COMMON_SOURCE_DIR}/NvBlastIndexFns.h
+ ${COMMON_SOURCE_DIR}/NvBlastIteratorBase.h
+ ${COMMON_SOURCE_DIR}/NvBlastMath.h
+ ${COMMON_SOURCE_DIR}/NvBlastMemory.h
+ ${COMMON_SOURCE_DIR}/NvBlastPreprocessorInternal.h
+ ${COMMON_SOURCE_DIR}/NvBlastTime.cpp
+ ${COMMON_SOURCE_DIR}/NvBlastTime.h
+ ${COMMON_SOURCE_DIR}/NvBlastTimers.cpp
+)
+
+SET(ASSETUTILS_SOURCE_FILES
+ ${ASSETUTILS_SOURCE_DIR}/NvBlastExtAssetUtils.cpp
+)
+
+SET(ASSETUTILS_PUBLIC_FILES
+ ${ASSETUTILS_INCLUDE_DIR}/NvBlastExtAssetUtils.h
+)
+
+ADD_LIBRARY(NvBlastExtAssetUtils ${BLASTEXTASSETUTILS_LIB_TYPE}
+ ${COMMON_FILES}
+ ${ASSETUTILS_SOURCE_FILES}
+ ${ASSETUTILS_PUBLIC_FILES}
+)
+
+SOURCE_GROUP("common" FILES ${COMMON_FILES})
+SOURCE_GROUP("public" FILES ${ASSETUTILS_PUBLIC_FILES})
+SOURCE_GROUP("src" FILES ${ASSETUTILS_SOURCE_FILES})
+
+# Target specific compile options
+
+TARGET_INCLUDE_DIRECTORIES(NvBlastExtAssetUtils
+ PUBLIC ${ASSETUTILS_INCLUDE_DIR}
+
+ PRIVATE ${BLASTEXTASSETUTILS_PLATFORM_INCLUDES}
+
+ PRIVATE ${PROJECT_SOURCE_DIR}/common
+ PRIVATE ${PROJECT_SOURCE_DIR}/lowlevel/include
+ PRIVATE ${PROJECT_SOURCE_DIR}/lowlevel/source
+
+ PRIVATE ${COMMON_SOURCE_DIR}
+)
+
+TARGET_COMPILE_DEFINITIONS(NvBlastExtAssetUtils
+ PUBLIC CAPNP_LITE=1
+ PRIVATE ${BLASTEXTASSETUTILS_COMPILE_DEFS}
+)
+
+# Warning disables for Capn Proto
+TARGET_COMPILE_OPTIONS(NvBlastExtAssetUtils
+ PRIVATE ${BLASTEXTASSETUTILS_COMPILE_OPTIONS}
+)
+
+SET_TARGET_PROPERTIES(NvBlastExtAssetUtils PROPERTIES
+ PDB_NAME_DEBUG "NvBlastExtAssetUtils${CMAKE_DEBUG_POSTFIX}"
+ PDB_NAME_CHECKED "NvBlastExtAssetUtils${CMAKE_CHECKED_POSTFIX}"
+ PDB_NAME_PROFILE "NvBlastExtAssetUtils${CMAKE_PROFILE_POSTFIX}"
+ PDB_NAME_RELEASE "NvBlastExtAssetUtils${CMAKE_RELEASE_POSTFIX}"
+)
+
+# Do final direct sets after the target has been defined
+TARGET_LINK_LIBRARIES(NvBlastExtAssetUtils
+ PRIVATE NvBlast
+ PUBLIC NvBlastGlobals
+)
diff --git a/sdk/compiler/cmake/NvBlastExtExporter.cmake b/sdk/compiler/cmake/NvBlastExtExporter.cmake
new file mode 100644
index 0000000..aaf2b8c
--- /dev/null
+++ b/sdk/compiler/cmake/NvBlastExtExporter.cmake
@@ -0,0 +1,102 @@
+#
+# Build NvBlastExt Common
+#
+
+
+SET(COMMON_SOURCE_DIR ${PROJECT_SOURCE_DIR}/common)
+
+SET(EXPORTER_EXT_SOURCE_DIR ${PROJECT_SOURCE_DIR}/extensions/exporter/source)
+SET(COMMON_EXT_SOURCE_DIR ${PROJECT_SOURCE_DIR}/extensions/common/source)
+SET(EXPORTER_EXT_INCLUDE_DIR ${PROJECT_SOURCE_DIR}/extensions/exporter/include)
+SET(EXT_AUTHORING_INCLUDE_DIR ${BLAST_ROOT_DIR}/sdk/extensions/authoring/include)
+SET(TK_INCLUDE_DIR ${BLAST_ROOT_DIR}/sdk/toolkit/include)
+
+FIND_PACKAGE(PxSharedSDK $ENV{PM_PxShared_VERSION} REQUIRED)
+FIND_PACKAGE(PhysXSDK $ENV{PM_PhysX_VERSION} REQUIRED)
+FIND_PACKAGE(tinyObjLoader $ENV{PM_tinyObjLoader_VERSION} REQUIRED)
+FIND_PACKAGE(FBXSDK $ENV{PM_FBXSDK_VERSION} REQUIRED)
+
+# Include here after the directories are defined so that the platform specific file can use the variables.
+include(${PROJECT_CMAKE_FILES_DIR}/${TARGET_BUILD_PLATFORM}/NvBlastExtExporter.cmake)
+
+SET(COMMON_FILES
+ ${BLASTEXT_PLATFORM_COMMON_FILES}
+
+ #${COMMON_SOURCE_DIR}/NvBlastAssert.cpp
+ #${COMMON_SOURCE_DIR}/NvBlastAssert.h
+)
+
+SET(PUBLIC_FILES
+ ${EXPORTER_EXT_INCLUDE_DIR}/NvBlastExtExporter.h
+ ${EXPORTER_EXT_INCLUDE_DIR}/NvBlastExtExporterJsonCollision.h
+)
+
+SET(EXT_EXPORTER_FILES
+ ${EXPORTER_EXT_SOURCE_DIR}/NvBlastExtExporterFbxUtils.cpp
+ ${EXPORTER_EXT_SOURCE_DIR}/NvBlastExtExporterFbxUtils.h
+ ${EXPORTER_EXT_SOURCE_DIR}/NvBlastExtExporter.cpp
+ ${EXPORTER_EXT_SOURCE_DIR}/NvBlastExtExporterFbxReader.cpp
+ ${EXPORTER_EXT_SOURCE_DIR}/NvBlastExtExporterFbxReader.h
+ ${EXPORTER_EXT_SOURCE_DIR}/NvBlastExtExporterFbxWriter.cpp
+ ${EXPORTER_EXT_SOURCE_DIR}/NvBlastExtExporterFbxWriter.h
+ ${EXPORTER_EXT_SOURCE_DIR}/NvBlastExtExporterObjReader.cpp
+ ${EXPORTER_EXT_SOURCE_DIR}/NvBlastExtExporterObjReader.h
+ ${EXPORTER_EXT_SOURCE_DIR}/NvBlastExtExporterObjWriter.cpp
+ ${EXPORTER_EXT_SOURCE_DIR}/NvBlastExtExporterObjWriter.h
+ ${EXPORTER_EXT_SOURCE_DIR}/NvBlastExtExporterJsonCollision.cpp
+)
+
+ADD_LIBRARY(NvBlastExtExporter SHARED
+ ${COMMON_FILES}
+ ${PUBLIC_FILES}
+ ${EXT_EXPORTER_FILES}
+)
+
+SOURCE_GROUP("common" FILES ${COMMON_FILES})
+SOURCE_GROUP("public" FILES ${PUBLIC_FILES})
+SOURCE_GROUP("src" FILES ${EXT_EXPORTER_FILES})
+
+
+# Target specific compile options
+
+TARGET_INCLUDE_DIRECTORIES(NvBlastExtExporter
+ PRIVATE ${BLASTEXT_PLATFORM_INCLUDES}
+ PRIVATE ${TK_INCLUDE_DIR}
+
+ PUBLIC ${PROJECT_SOURCE_DIR}/lowlevel/include
+ PUBLIC ${EXPORTER_EXT_INCLUDE_DIR}
+
+ PRIVATE ${PROJECT_SOURCE_DIR}/common
+ PRIVATE ${COMMON_EXT_SOURCE_DIR}
+ PUBLIC ${EXT_AUTHORING_INCLUDE_DIR}
+
+ PRIVATE ${EXPORTER_EXT_SOURCE_DIR}
+
+ PRIVATE ${PHYSXSDK_INCLUDE_DIRS}
+ PRIVATE ${PXSHAREDSDK_INCLUDE_DIRS}
+
+ PRIVATE ${TINYOBJLOADER_INCLUDE_DIRS}
+ PRIVATE ${FBXSDK_INCLUDE_DIRS}
+)
+
+TARGET_COMPILE_DEFINITIONS(NvBlastExtExporter
+ PRIVATE ${BLASTEXT_COMPILE_DEFS}
+)
+
+TARGET_COMPILE_OPTIONS(NvBlastExtExporter
+ PRIVATE ${BLASTEXT_PLATFORM_COMPILE_OPTIONS}
+)
+
+SET_TARGET_PROPERTIES(NvBlastExtExporter PROPERTIES
+ PDB_NAME_DEBUG "NvBlastExtExporter${CMAKE_DEBUG_POSTFIX}"
+ PDB_NAME_CHECKED "NvBlastExtExporter${CMAKE_CHECKED_POSTFIX}"
+ PDB_NAME_PROFILE "NvBlastExtExporter${CMAKE_PROFILE_POSTFIX}"
+ PDB_NAME_RELEASE "NvBlastExtExporter${CMAKE_RELEASE_POSTFIX}"
+)
+
+# Do final direct sets after the target has been defined
+TARGET_LINK_LIBRARIES(NvBlastExtExporter
+ PUBLIC NvBlast NvBlastGlobals NvBlastTk NvBlastExtAuthoring
+ PUBLIC ${BLASTEXT_PLATFORM_LINKED_LIBS}
+ PUBLIC ${FBXSDK_LIBRARIES}
+)
diff --git a/sdk/compiler/cmake/NvBlastExtPxSerialization.cmake b/sdk/compiler/cmake/NvBlastExtPxSerialization.cmake
new file mode 100644
index 0000000..846ecf1
--- /dev/null
+++ b/sdk/compiler/cmake/NvBlastExtPxSerialization.cmake
@@ -0,0 +1,206 @@
+#
+# Build NvBlastExtPxSerialization Common
+#
+
+SET(COMMON_SOURCE_DIR ${PROJECT_SOURCE_DIR}/common)
+
+SET(SERIAL_EXT_SOURCE_DIR ${PROJECT_SOURCE_DIR}/extensions/serialization/source)
+SET(SERIAL_EXT_INCLUDE_DIR ${PROJECT_SOURCE_DIR}/extensions/serialization/include)
+SET(TK_INCLUDE_DIR ${BLAST_ROOT_DIR}/sdk/toolkit/include)
+SET(PHYSX_EXT_INCLUDE_DIR ${PROJECT_SOURCE_DIR}/extensions/physx/include)
+SET(PHYSX_EXT_SOURCE_DIR ${PROJECT_SOURCE_DIR}/extensions/physx/source)
+SET(EXT_COMMON_SOURCE_DIR ${PROJECT_SOURCE_DIR}/extensions/common/source)
+SET(EXT_COMMON_INCLUDE_DIR ${PROJECT_SOURCE_DIR}/extensions/common/include)
+
+SET(DTO_SOURCE_DIR ${SERIAL_EXT_SOURCE_DIR}/DTO)
+
+SET(SOLVER_SOURCE_DIR ${PROJECT_SOURCE_DIR}/lowlevel/source)
+
+SET(SERIAL_GENERATED_SOURCE_DIR ${SERIAL_EXT_SOURCE_DIR}/generated)
+
+FIND_PACKAGE(PhysXSDK $ENV{PM_PhysX_VERSION} REQUIRED)
+FIND_PACKAGE(PxSharedSDK $ENV{PM_PxShared_VERSION} REQUIRED)
+FIND_PACKAGE(CapnProtoSDK $ENV{PM_CapnProto_VERSION} REQUIRED)
+
+# Include here after the directories are defined so that the platform specific file can use the variables.
+include(${PROJECT_CMAKE_FILES_DIR}/${TARGET_BUILD_PLATFORM}/NvBlastExtPxSerialization.cmake)
+
+# Compile the generated files for serialization
+
+INCLUDE(CapnProtoGenerate)
+
+SET(CAPNPC_OUTPUT_DIR ${SERIAL_GENERATED_SOURCE_DIR})
+SET(CAPNPC_SRC_PREFIX ${SERIAL_EXT_SOURCE_DIR})
+CAPNP_GENERATE_CPP(CAPNP_SRCS CAPNP_HDRS ${SERIAL_EXT_SOURCE_DIR}/NvBlastExtLlSerialization.capn ${SERIAL_EXT_SOURCE_DIR}/NvBlastExtTkSerialization.capn ${SERIAL_EXT_SOURCE_DIR}/NvBlastExtPxSerialization.capn)
+
+SET(COMMON_FILES
+ ${BLASTEXTPXSERIALIZATION_PLATFORM_COMMON_FILES}
+
+ ${COMMON_SOURCE_DIR}/NvBlastAssert.cpp
+ ${COMMON_SOURCE_DIR}/NvBlastAssert.h
+ ${COMMON_SOURCE_DIR}/NvBlastAtomic.cpp
+ ${COMMON_SOURCE_DIR}/NvBlastAtomic.h
+ ${COMMON_SOURCE_DIR}/NvBlastDLink.h
+ ${COMMON_SOURCE_DIR}/NvBlastFixedArray.h
+ ${COMMON_SOURCE_DIR}/NvBlastFixedBitmap.h
+ ${COMMON_SOURCE_DIR}/NvBlastFixedBoolArray.h
+ ${COMMON_SOURCE_DIR}/NvBlastFixedPriorityQueue.h
+ ${COMMON_SOURCE_DIR}/NvBlastGeometry.h
+# ${COMMON_SOURCE_DIR}/NvBlastIndexFns.cpp
+ ${COMMON_SOURCE_DIR}/NvBlastIndexFns.h
+ ${COMMON_SOURCE_DIR}/NvBlastIteratorBase.h
+ ${COMMON_SOURCE_DIR}/NvBlastMath.h
+ ${COMMON_SOURCE_DIR}/NvBlastMemory.h
+ ${COMMON_SOURCE_DIR}/NvBlastPreprocessorInternal.h
+ ${COMMON_SOURCE_DIR}/NvBlastTime.cpp
+ ${COMMON_SOURCE_DIR}/NvBlastTime.h
+ ${COMMON_SOURCE_DIR}/NvBlastTimers.cpp
+)
+
+
+SET(EXT_SERIALIZATION_FILES
+ ${SERIAL_EXT_SOURCE_DIR}/NvBlastExtPxSerialization.capn
+
+ ${SERIAL_EXT_SOURCE_DIR}/NvBlastExtPxSerialization.cpp
+
+ ${SERIAL_EXT_SOURCE_DIR}/NvBlastExtSerializationCAPN.h
+
+ ${SERIAL_EXT_SOURCE_DIR}/NvBlastExtSerializationInternal.h
+ ${SERIAL_EXT_SOURCE_DIR}/NvBlastExtPxSerializerCAPN.h
+
+ ${SERIAL_EXT_SOURCE_DIR}/NvBlastExtPxSerializerRAW.h
+ ${SERIAL_EXT_SOURCE_DIR}/NvBlastExtPxSerializerRAW.cpp
+
+ ${SERIAL_EXT_SOURCE_DIR}/NvBlastExtTkSerializerRAW.h
+ ${SERIAL_EXT_SOURCE_DIR}/NvBlastExtTkSerializerRAW.cpp
+
+ ${SERIAL_EXT_SOURCE_DIR}/NvBlastExtOutputStream.h
+ ${SERIAL_EXT_SOURCE_DIR}/NvBlastExtOutputStream.cpp
+ ${SERIAL_EXT_SOURCE_DIR}/NvBlastExtInputStream.h
+ ${SERIAL_EXT_SOURCE_DIR}/NvBlastExtInputStream.cpp
+
+ ${SERIAL_EXT_SOURCE_DIR}/NvBlastExtKJPxInputStream.h
+ ${SERIAL_EXT_SOURCE_DIR}/NvBlastExtKJPxInputStream.cpp
+
+ ${SERIAL_EXT_SOURCE_DIR}/NvBlastExtKJPxOutputStream.h
+ ${SERIAL_EXT_SOURCE_DIR}/NvBlastExtKJPxOutputStream.cpp
+)
+
+SET(DTO_SOURCE_FILES
+ ${DTO_SOURCE_DIR}/DTOMacros.h
+ ${DTO_SOURCE_DIR}/AssetDTO.h
+ ${DTO_SOURCE_DIR}/AssetDTO.cpp
+ ${DTO_SOURCE_DIR}/TkAssetDTO.h
+ ${DTO_SOURCE_DIR}/TkAssetDTO.cpp
+ ${DTO_SOURCE_DIR}/ExtPxAssetDTO.h
+ ${DTO_SOURCE_DIR}/ExtPxAssetDTO.cpp
+ ${DTO_SOURCE_DIR}/PxVec3DTO.h
+ ${DTO_SOURCE_DIR}/PxVec3DTO.cpp
+ ${DTO_SOURCE_DIR}/NvBlastChunkDTO.h
+ ${DTO_SOURCE_DIR}/NvBlastChunkDTO.cpp
+ ${DTO_SOURCE_DIR}/NvBlastBondDTO.h
+ ${DTO_SOURCE_DIR}/NvBlastBondDTO.cpp
+ ${DTO_SOURCE_DIR}/NvBlastIDDTO.h
+ ${DTO_SOURCE_DIR}/NvBlastIDDTO.cpp
+ ${DTO_SOURCE_DIR}/TkAssetJointDescDTO.h
+ ${DTO_SOURCE_DIR}/TkAssetJointDescDTO.cpp
+ ${DTO_SOURCE_DIR}/ExtPxChunkDTO.h
+ ${DTO_SOURCE_DIR}/ExtPxChunkDTO.cpp
+ ${DTO_SOURCE_DIR}/ExtPxSubchunkDTO.h
+ ${DTO_SOURCE_DIR}/ExtPxSubchunkDTO.cpp
+ ${DTO_SOURCE_DIR}/PxQuatDTO.h
+ ${DTO_SOURCE_DIR}/PxQuatDTO.cpp
+ ${DTO_SOURCE_DIR}/PxTransformDTO.h
+ ${DTO_SOURCE_DIR}/PxTransformDTO.cpp
+ ${DTO_SOURCE_DIR}/PxMeshScaleDTO.h
+ ${DTO_SOURCE_DIR}/PxMeshScaleDTO.cpp
+ ${DTO_SOURCE_DIR}/PxConvexMeshGeometryDTO.h
+ ${DTO_SOURCE_DIR}/PxConvexMeshGeometryDTO.cpp
+)
+
+SET(EXT_SERIALIZATION_INCLUDES
+ ${SERIAL_EXT_INCLUDE_DIR}/NvBlastExtPxSerialization.h
+)
+
+ADD_LIBRARY(NvBlastExtPxSerialization ${BLASTEXTPXSERIALIZATION_LIB_TYPE}
+ ${COMMON_FILES}
+
+ ${DTO_SOURCE_FILES}
+
+ ${EXT_SERIALIZATION_INCLUDES}
+ ${EXT_SERIALIZATION_FILES}
+
+ ${CAPNP_SRCS}
+ ${CAPNP_HDRS}
+
+ ${MD5_FILES}
+
+ ${CAPNPROTOSDK_SOURCE_FILES}
+)
+
+SOURCE_GROUP("common" FILES ${COMMON_FILES})
+
+SOURCE_GROUP("include" FILES ${EXT_SERIALIZATION_INCLUDES})
+SOURCE_GROUP("src\\serialization" FILES ${EXT_SERIALIZATION_FILES})
+SOURCE_GROUP("src\\serialization\\DTO" FILES ${DTO_SOURCE_FILES})
+SOURCE_GROUP("src\\serialization\\generated" FILES ${CAPNP_SRCS} ${CAPNP_HDRS})
+SOURCE_GROUP("src\\serialization\\CapnProtoSDK" FILES ${CAPNPROTOSDK_SOURCE_FILES})
+
+
+# Target specific compile options
+
+TARGET_INCLUDE_DIRECTORIES(NvBlastExtPxSerialization
+ PRIVATE ${BLASTEXTPXSERIALIZATION_PLATFORM_INCLUDES}
+
+ PRIVATE ${PROJECT_SOURCE_DIR}/common
+ PRIVATE ${PROJECT_SOURCE_DIR}/lowlevel/include
+ PRIVATE ${PROJECT_SOURCE_DIR}/lowlevel/source
+
+ PRIVATE ${PX_INCLUDE_DIR}
+
+ PUBLIC ${SERIAL_EXT_INCLUDE_DIR}
+ PUBLIC ${SERIAL_EXT_SOURCE_DIR}
+ PUBLIC ${DTO_SOURCE_DIR}
+
+ PRIVATE ${PHYSX_EXT_INCLUDE_DIR}
+ PRIVATE ${PHYSX_EXT_SOURCE_DIR}
+
+ PRIVATE ${EXT_COMMON_SOURCE_DIR}
+ PRIVATE ${EXT_COMMON_INCLUDE_DIR}
+
+ PUBLIC ${CAPNPROTOSDK_INCLUDE_DIRS}
+
+ PRIVATE ${COMMON_SOURCE_DIR}
+
+ PUBLIC ${PHYSXSDK_INCLUDE_DIRS}
+ PRIVATE ${PXSHAREDSDK_INCLUDE_DIRS}
+)
+
+TARGET_COMPILE_DEFINITIONS(NvBlastExtPxSerialization
+ PUBLIC CAPNP_LITE=1
+ PRIVATE ${BLASTEXTPXSERIALIZATION_COMPILE_DEFS}
+)
+
+# Warning disables for Capn Proto
+TARGET_COMPILE_OPTIONS(NvBlastExtPxSerialization
+ PRIVATE ${BLASTEXTPXSERIALIZATION_COMPILE_OPTIONS}
+)
+
+SET_TARGET_PROPERTIES(NvBlastExtPxSerialization PROPERTIES
+ PDB_NAME_DEBUG "NvBlastExtPxSerialization${CMAKE_DEBUG_POSTFIX}"
+ PDB_NAME_CHECKED "NvBlastExtPxSerialization${CMAKE_CHECKED_POSTFIX}"
+ PDB_NAME_PROFILE "NvBlastExtPxSerialization${CMAKE_PROFILE_POSTFIX}"
+ PDB_NAME_RELEASE "NvBlastExtPxSerialization${CMAKE_RELEASE_POSTFIX}"
+)
+
+# Do final direct sets after the target has been defined
+TARGET_LINK_LIBRARIES(NvBlastExtPxSerialization
+ PRIVATE NvBlast NvBlastGlobals NvBlastTk NvBlastExtPhysX ${CAPNPROTOSDK_LIBRARIES}
+ PUBLIC $<$<CONFIG:debug>:${PHYSX3_LIB_DEBUG}> $<$<CONFIG:debug>:${PHYSX3COOKING_LIB_DEBUG}>
+ PUBLIC $<$<CONFIG:checked>:${PHYSX3_LIB_CHECKED}> $<$<CONFIG:checked>:${PHYSX3COOKING_LIB_CHECKED}>
+ PUBLIC $<$<CONFIG:profile>:${PHYSX3_LIB_PROFILE}> $<$<CONFIG:profile>:${PHYSX3COOKING_LIB_PROFILE}>
+ PUBLIC $<$<CONFIG:release>:${PHYSX3_LIB}> $<$<CONFIG:release>:${PHYSX3COOKING_LIB}>
+)
+
+#Hack for now to force these to build serialially to fix fighting over writing the generated code
+ADD_DEPENDENCIES(NvBlastExtPxSerialization NvBlastExtTkSerialization NvBlastExtSerialization)
diff --git a/sdk/compiler/cmake/NvBlastExtStress.cmake b/sdk/compiler/cmake/NvBlastExtStress.cmake
new file mode 100644
index 0000000..d0b73a6
--- /dev/null
+++ b/sdk/compiler/cmake/NvBlastExtStress.cmake
@@ -0,0 +1,91 @@
+#
+# Build NvBlastExtStress Common
+#
+
+SET(COMMON_SOURCE_DIR ${PROJECT_SOURCE_DIR}/common)
+
+SET(STRESS_INCLUDE_DIR ${PROJECT_SOURCE_DIR}/extensions/stress/include)
+SET(STRESS_SOURCE_DIR ${PROJECT_SOURCE_DIR}/extensions/stress/source)
+
+SET(EXT_COMMON_SOURCE_DIR ${PROJECT_SOURCE_DIR}/extensions/common/source)
+SET(EXT_COMMON_INCLUDE_DIR ${PROJECT_SOURCE_DIR}/extensions/common/include)
+
+FIND_PACKAGE(PxSharedSDK $ENV{PM_PxShared_VERSION} REQUIRED)
+
+# Include here after the directories are defined so that the platform specific file can use the variables.
+include(${PROJECT_CMAKE_FILES_DIR}/${TARGET_BUILD_PLATFORM}/NvBlastExtStress.cmake OPTIONAL)
+
+
+SET(COMMON_FILES
+ ${BLASTEXTSTRESS_PLATFORM_COMMON_FILES}
+
+ ${COMMON_SOURCE_DIR}/NvBlastAssert.cpp
+ ${COMMON_SOURCE_DIR}/NvBlastAssert.h
+)
+
+SET(STRESS_SOURCE_FILES
+ ${STRESS_SOURCE_DIR}/NvBlastExtStressSolver.cpp
+)
+
+SET(STRESS_PUBLIC_FILES
+ ${STRESS_INCLUDE_DIR}/NvBlastExtStressSolver.h
+)
+
+ADD_LIBRARY(NvBlastExtStress SHARED
+ ${COMMON_FILES}
+ ${STRESS_SOURCE_FILES}
+ ${STRESS_PUBLIC_FILES}
+)
+
+SOURCE_GROUP("common" FILES ${COMMON_FILES})
+SOURCE_GROUP("public" FILES ${STRESS_PUBLIC_FILES})
+SOURCE_GROUP("src" FILES ${STRESS_SOURCE_FILES})
+
+# Target specific compile options
+
+TARGET_INCLUDE_DIRECTORIES(NvBlastExtStress
+ PUBLIC ${STRESS_INCLUDE_DIR}
+
+ PRIVATE ${BLASTEXTSTRESS_PLATFORM_INCLUDES}
+
+ PRIVATE ${PROJECT_SOURCE_DIR}/common
+ PRIVATE ${PROJECT_SOURCE_DIR}/lowlevel/include
+ PRIVATE ${PROJECT_SOURCE_DIR}/lowlevel/source
+
+ PRIVATE ${COMMON_SOURCE_DIR}
+
+ PRIVATE ${PXSHAREDSDK_INCLUDE_DIRS}
+)
+
+SET(BLASTEXTSTRESS_COMPILE_DEFS
+ # Common to all configurations
+ ${BLAST_SLN_COMPILE_DEFS};_CONSOLE;
+
+ $<$<CONFIG:debug>:${BLAST_SLN_DEBUG_COMPILE_DEFS}>
+ $<$<CONFIG:checked>:${BLAST_SLN_CHECKED_COMPILE_DEFS}>
+ $<$<CONFIG:profile>:${BLAST_SLN_PROFILE_COMPILE_DEFS}>
+ $<$<CONFIG:release>:${BLAST_SLN_RELEASE_COMPILE_DEFS}>
+)
+
+TARGET_COMPILE_DEFINITIONS(NvBlastExtStress
+ PUBLIC CAPNP_LITE=1
+ PRIVATE ${BLASTEXTSTRESS_COMPILE_DEFS}
+)
+
+# Warning disables for Capn Proto
+TARGET_COMPILE_OPTIONS(NvBlastExtStress
+ PRIVATE ${BLASTEXTSTRESS_PLATFORM_COMPILE_OPTIONS}
+)
+
+SET_TARGET_PROPERTIES(NvBlastExtStress PROPERTIES
+ PDB_NAME_DEBUG "NvBlastExtStress${CMAKE_DEBUG_POSTFIX}"
+ PDB_NAME_CHECKED "NvBlastExtStress${CMAKE_CHECKED_POSTFIX}"
+ PDB_NAME_PROFILE "NvBlastExtStress${CMAKE_PROFILE_POSTFIX}"
+ PDB_NAME_RELEASE "NvBlastExtStress${CMAKE_RELEASE_POSTFIX}"
+)
+
+# Do final direct sets after the target has been defined
+TARGET_LINK_LIBRARIES(NvBlastExtStress
+ PUBLIC NvBlast NvBlastGlobals
+ PUBLIC ${BLASTEXT_PLATFORM_LINKED_LIBS}
+)
diff --git a/sdk/compiler/cmake/NvBlastExtTkSerialization.cmake b/sdk/compiler/cmake/NvBlastExtTkSerialization.cmake
new file mode 100644
index 0000000..ddc5eb5
--- /dev/null
+++ b/sdk/compiler/cmake/NvBlastExtTkSerialization.cmake
@@ -0,0 +1,172 @@
+#
+# Build NvBlastExtTkSerialization Common
+#
+
+SET(COMMON_SOURCE_DIR ${PROJECT_SOURCE_DIR}/common)
+
+SET(SERIAL_EXT_SOURCE_DIR ${PROJECT_SOURCE_DIR}/extensions/serialization/source)
+SET(SERIAL_EXT_INCLUDE_DIR ${PROJECT_SOURCE_DIR}/extensions/serialization/include)
+SET(TK_INCLUDE_DIR ${BLAST_ROOT_DIR}/sdk/toolkit/include)
+SET(EXT_COMMON_SOURCE_DIR ${PROJECT_SOURCE_DIR}/extensions/common/source)
+SET(EXT_COMMON_INCLUDE_DIR ${PROJECT_SOURCE_DIR}/extensions/common/include)
+
+SET(DTO_SOURCE_DIR ${SERIAL_EXT_SOURCE_DIR}/DTO)
+
+SET(SOLVER_SOURCE_DIR ${PROJECT_SOURCE_DIR}/lowlevel/source)
+
+SET(SERIAL_GENERATED_SOURCE_DIR ${SERIAL_EXT_SOURCE_DIR}/generated)
+
+FIND_PACKAGE(PxSharedSDK $ENV{PM_PxShared_VERSION} REQUIRED)
+FIND_PACKAGE(CapnProtoSDK $ENV{PM_CapnProto_VERSION} REQUIRED)
+
+# Include here after the directories are defined so that the platform specific file can use the variables.
+include(${PROJECT_CMAKE_FILES_DIR}/${TARGET_BUILD_PLATFORM}/NvBlastExtTkSerialization.cmake)
+
+# Compile the generated files for serialization
+
+INCLUDE(CapnProtoGenerate)
+
+SET(CAPNPC_OUTPUT_DIR ${SERIAL_GENERATED_SOURCE_DIR})
+SET(CAPNPC_SRC_PREFIX ${SERIAL_EXT_SOURCE_DIR})
+CAPNP_GENERATE_CPP(CAPNP_SRCS CAPNP_HDRS ${SERIAL_EXT_SOURCE_DIR}/NvBlastExtLlSerialization.capn ${SERIAL_EXT_SOURCE_DIR}/NvBlastExtTkSerialization.capn)
+
+SET(COMMON_FILES
+ ${BLASTEXTTKSERIALIZATION_PLATFORM_COMMON_FILES}
+
+ ${COMMON_SOURCE_DIR}/NvBlastAssert.cpp
+ ${COMMON_SOURCE_DIR}/NvBlastAssert.h
+ ${COMMON_SOURCE_DIR}/NvBlastAtomic.cpp
+ ${COMMON_SOURCE_DIR}/NvBlastAtomic.h
+ ${COMMON_SOURCE_DIR}/NvBlastDLink.h
+ ${COMMON_SOURCE_DIR}/NvBlastFixedArray.h
+ ${COMMON_SOURCE_DIR}/NvBlastFixedBitmap.h
+ ${COMMON_SOURCE_DIR}/NvBlastFixedBoolArray.h
+ ${COMMON_SOURCE_DIR}/NvBlastFixedPriorityQueue.h
+ ${COMMON_SOURCE_DIR}/NvBlastGeometry.h
+# ${COMMON_SOURCE_DIR}/NvBlastIndexFns.cpp
+ ${COMMON_SOURCE_DIR}/NvBlastIndexFns.h
+ ${COMMON_SOURCE_DIR}/NvBlastIteratorBase.h
+ ${COMMON_SOURCE_DIR}/NvBlastMath.h
+ ${COMMON_SOURCE_DIR}/NvBlastMemory.h
+ ${COMMON_SOURCE_DIR}/NvBlastPreprocessorInternal.h
+ ${COMMON_SOURCE_DIR}/NvBlastTime.cpp
+ ${COMMON_SOURCE_DIR}/NvBlastTime.h
+ ${COMMON_SOURCE_DIR}/NvBlastTimers.cpp
+)
+
+
+SET(EXT_SERIALIZATION_FILES
+ ${SERIAL_EXT_SOURCE_DIR}/NvBlastExtTkSerialization.capn
+
+ ${SERIAL_EXT_SOURCE_DIR}/NvBlastExtTkSerialization.cpp
+
+ ${SERIAL_EXT_SOURCE_DIR}/NvBlastExtSerializationCAPN.h
+
+ ${SERIAL_EXT_SOURCE_DIR}/NvBlastExtSerializationInternal.h
+ ${SERIAL_EXT_SOURCE_DIR}/NvBlastExtTkSerializerCAPN.h
+
+ ${SERIAL_EXT_SOURCE_DIR}/NvBlastExtTkSerializerRAW.h
+ ${SERIAL_EXT_SOURCE_DIR}/NvBlastExtTkSerializerRAW.cpp
+
+ ${SERIAL_EXT_SOURCE_DIR}/NvBlastExtOutputStream.h
+ ${SERIAL_EXT_SOURCE_DIR}/NvBlastExtOutputStream.cpp
+ ${SERIAL_EXT_SOURCE_DIR}/NvBlastExtInputStream.h
+ ${SERIAL_EXT_SOURCE_DIR}/NvBlastExtInputStream.cpp
+)
+
+SET(DTO_SOURCE_FILES
+ ${DTO_SOURCE_DIR}/DTOMacros.h
+ ${DTO_SOURCE_DIR}/AssetDTO.h
+ ${DTO_SOURCE_DIR}/AssetDTO.cpp
+ ${DTO_SOURCE_DIR}/TkAssetDTO.h
+ ${DTO_SOURCE_DIR}/TkAssetDTO.cpp
+ ${DTO_SOURCE_DIR}/PxVec3DTO.h
+ ${DTO_SOURCE_DIR}/PxVec3DTO.cpp
+ ${DTO_SOURCE_DIR}/NvBlastChunkDTO.h
+ ${DTO_SOURCE_DIR}/NvBlastChunkDTO.cpp
+ ${DTO_SOURCE_DIR}/NvBlastBondDTO.h
+ ${DTO_SOURCE_DIR}/NvBlastBondDTO.cpp
+ ${DTO_SOURCE_DIR}/NvBlastIDDTO.h
+ ${DTO_SOURCE_DIR}/NvBlastIDDTO.cpp
+ ${DTO_SOURCE_DIR}/TkAssetJointDescDTO.h
+ ${DTO_SOURCE_DIR}/TkAssetJointDescDTO.cpp
+)
+
+SET(EXT_SERIALIZATION_INCLUDES
+ ${SERIAL_EXT_INCLUDE_DIR}/NvBlastExtTkSerialization.h
+)
+
+ADD_LIBRARY(NvBlastExtTkSerialization ${BLASTEXTTKSERIALIZATION_LIB_TYPE}
+ ${COMMON_FILES}
+
+ ${DTO_SOURCE_FILES}
+
+ ${EXT_SERIALIZATION_INCLUDES}
+ ${EXT_SERIALIZATION_FILES}
+
+ ${CAPNP_SRCS}
+ ${CAPNP_HDRS}
+
+ ${MD5_FILES}
+
+ ${CAPNPROTOSDK_SOURCE_FILES}
+)
+
+SOURCE_GROUP("common" FILES ${COMMON_FILES})
+
+SOURCE_GROUP("include" FILES ${EXT_SERIALIZATION_INCLUDES})
+SOURCE_GROUP("src\\serialization" FILES ${EXT_SERIALIZATION_FILES})
+SOURCE_GROUP("src\\serialization\\DTO" FILES ${DTO_SOURCE_FILES})
+SOURCE_GROUP("src\\serialization\\generated" FILES ${CAPNP_SRCS} ${CAPNP_HDRS})
+SOURCE_GROUP("src\\serialization\\CapnProtoSDK" FILES ${CAPNPROTOSDK_SOURCE_FILES})
+
+
+# Target specific compile options
+
+TARGET_INCLUDE_DIRECTORIES(NvBlastExtTkSerialization
+ PRIVATE ${BLASTEXTTKSERIALIZATION_PLATFORM_INCLUDES}
+
+ PRIVATE ${PROJECT_SOURCE_DIR}/common
+ PRIVATE ${PROJECT_SOURCE_DIR}/lowlevel/include
+ PRIVATE ${PROJECT_SOURCE_DIR}/lowlevel/source
+
+ PRIVATE ${TK_INCLUDE_DIR}
+
+ PUBLIC ${SERIAL_EXT_INCLUDE_DIR}
+ PUBLIC ${SERIAL_EXT_SOURCE_DIR}
+ PUBLIC ${DTO_SOURCE_DIR}
+
+ PRIVATE ${EXT_COMMON_SOURCE_DIR}
+ PRIVATE ${EXT_COMMON_INCLUDE_DIR}
+
+ PUBLIC ${CAPNPROTOSDK_INCLUDE_DIRS}
+
+ PRIVATE ${COMMON_SOURCE_DIR}
+
+ PRIVATE ${PXSHAREDSDK_INCLUDE_DIRS}
+)
+
+TARGET_COMPILE_DEFINITIONS(NvBlastExtTkSerialization
+ PUBLIC CAPNP_LITE=1
+ PRIVATE ${BLASTEXTTKSERIALIZATION_COMPILE_DEFS}
+)
+
+# Warning disables for Capn Proto
+TARGET_COMPILE_OPTIONS(NvBlastExtTkSerialization
+ PRIVATE ${BLASTEXTTKSERIALIZATION_COMPILE_OPTIONS}
+)
+
+SET_TARGET_PROPERTIES(NvBlastExtTkSerialization PROPERTIES
+ PDB_NAME_DEBUG "NvBlastExtTkSerialization${CMAKE_DEBUG_POSTFIX}"
+ PDB_NAME_CHECKED "NvBlastExtTkSerialization${CMAKE_CHECKED_POSTFIX}"
+ PDB_NAME_PROFILE "NvBlastExtTkSerialization${CMAKE_PROFILE_POSTFIX}"
+ PDB_NAME_RELEASE "NvBlastExtTkSerialization${CMAKE_RELEASE_POSTFIX}"
+)
+
+# Do final direct sets after the target has been defined
+TARGET_LINK_LIBRARIES(NvBlastExtTkSerialization
+ PRIVATE NvBlast NvBlastGlobals NvBlastTk ${CAPNPROTOSDK_LIBRARIES}
+)
+
+#Hack for now to force these to build serialially to fix fighting over writing the generated code
+ADD_DEPENDENCIES(NvBlastExtTkSerialization NvBlastExtSerialization) \ No newline at end of file
diff --git a/sdk/compiler/cmake/NvBlastGlobals.cmake b/sdk/compiler/cmake/NvBlastGlobals.cmake
new file mode 100644
index 0000000..4f528df
--- /dev/null
+++ b/sdk/compiler/cmake/NvBlastGlobals.cmake
@@ -0,0 +1,67 @@
+#
+# Build NvBlastGlobals common
+#
+
+SET(GLOBALS_DIR ${PROJECT_SOURCE_DIR}/globals)
+SET(COMMON_SOURCE_DIR ${PROJECT_SOURCE_DIR}/common)
+
+# Include here after the directories are defined so that the platform specific file can use the variables.
+include(${PROJECT_CMAKE_FILES_DIR}/${TARGET_BUILD_PLATFORM}/NvBlastGlobals.cmake OPTIONAL)
+
+SET(COMMON_FILES
+ ${COMMON_SOURCE_DIR}/NvBlastAssert.cpp
+ ${COMMON_SOURCE_DIR}/NvBlastAssert.h
+)
+
+SET(SOURCE_FILES
+ ${GLOBALS_DIR}/source/NvBlastGlobals.cpp
+ ${GLOBALS_DIR}/source/NvBlastProfiler.cpp
+ ${GLOBALS_DIR}/source/NvBlastProfilerInternal.h
+)
+
+SET(PUBLIC_FILES
+ ${GLOBALS_DIR}/include/NvBlastGlobals.h
+ ${GLOBALS_DIR}/include/NvBlastAllocator.h
+ ${GLOBALS_DIR}/include/NvBlastProfiler.h
+)
+
+ADD_LIBRARY(NvBlastGlobals SHARED
+ ${COMMON_FILES}
+ ${SOURCE_FILES}
+ ${PUBLIC_FILES}
+)
+
+SOURCE_GROUP("common" FILES ${COMMON_FILES})
+SOURCE_GROUP("source" FILES ${SOURCE_FILES})
+SOURCE_GROUP("public" FILES ${PUBLIC_FILES})
+
+# Target specific compile options
+
+TARGET_INCLUDE_DIRECTORIES(NvBlastGlobals
+ PUBLIC ${GLOBALS_DIR}/include
+ PUBLIC ${GLOBALS_DIR}/source
+ PRIVATE ${COMMON_SOURCE_DIR}
+)
+
+TARGET_COMPILE_DEFINITIONS(NvBlastGlobals
+ PRIVATE ${BLASTGLOBALS_COMPILE_DEFS}
+)
+
+TARGET_COMPILE_OPTIONS(NvBlastGlobals
+ PRIVATE ${BLASTGLOBALS_PLATFORM_COMPILE_OPTIONS}
+)
+
+SET_TARGET_PROPERTIES(NvBlastGlobals PROPERTIES
+ PDB_NAME_DEBUG "NvBlastGlobals${CMAKE_DEBUG_POSTFIX}"
+ PDB_NAME_CHECKED "NvBlastGlobals${CMAKE_CHECKED_POSTFIX}"
+ PDB_NAME_PROFILE "NvBlastGlobals${CMAKE_PROFILE_POSTFIX}"
+ PDB_NAME_RELEASE "NvBlastGlobals${CMAKE_RELEASE_POSTFIX}"
+)
+
+# Do final direct sets after the target has been defined
+TARGET_LINK_LIBRARIES(NvBlastGlobals
+ PRIVATE NvBlast
+
+ PUBLIC ${BLASTGLOBALS_PLATFORM_LINKED_LIBS}
+)
+
diff --git a/sdk/compiler/cmake/linux/NvBlastExtAssetUtils.cmake b/sdk/compiler/cmake/linux/NvBlastExtAssetUtils.cmake
new file mode 100644
index 0000000..71ff1aa
--- /dev/null
+++ b/sdk/compiler/cmake/linux/NvBlastExtAssetUtils.cmake
@@ -0,0 +1,27 @@
+#
+# Build NvBlastExtAssetUtils Windows
+#
+
+SET(BLASTEXTASSETUTILS_PLATFORM_COMMON_FILES
+# No Linux counterpart
+# ${COMMON_SOURCE_DIR}/NvBlastIncludeWindows.h
+)
+
+SET(BLASTEXTASSETUTILS_PLATFORM_INCLUDES
+)
+
+SET(BLASTEXTASSETUTILS_COMPILE_DEFS
+ # Common to all configurations
+ ${BLAST_SLN_COMPILE_DEFS};_CONSOLE;
+
+ $<$<CONFIG:debug>:${BLAST_SLN_DEBUG_COMPILE_DEFS}>
+ $<$<CONFIG:checked>:${BLAST_SLN_CHECKED_COMPILE_DEFS}>
+ $<$<CONFIG:profile>:${BLAST_SLN_PROFILE_COMPILE_DEFS}>
+ $<$<CONFIG:release>:${BLAST_SLN_RELEASE_COMPILE_DEFS}>
+)
+
+SET(BLASTEXTASSETUTILS_LIB_TYPE SHARED)
+
+
+SET(BLASTEXTASSETUTILS_COMPILE_OPTIONS "")
+
diff --git a/sdk/compiler/cmake/linux/NvBlastExtPxSerialization.cmake b/sdk/compiler/cmake/linux/NvBlastExtPxSerialization.cmake
new file mode 100644
index 0000000..8507ea2
--- /dev/null
+++ b/sdk/compiler/cmake/linux/NvBlastExtPxSerialization.cmake
@@ -0,0 +1,29 @@
+#
+# Build NvBlastExtPxSerialization Linux
+#
+
+SET(BLASTEXTPXSERIALIZATION_PLATFORM_COMMON_FILES
+)
+
+SET(BLASTEXTPXSERIALIZATION_PLATFORM_INCLUDES
+)
+
+SET(BLASTEXTPXSERIALIZATION_COMPILE_DEFS
+ # Common to all configurations
+ ${BLAST_SLN_COMPILE_DEFS};
+
+ $<$<CONFIG:debug>:${BLAST_SLN_DEBUG_COMPILE_DEFS}>
+ $<$<CONFIG:checked>:${BLAST_SLN_CHECKED_COMPILE_DEFS}>
+ $<$<CONFIG:profile>:${BLAST_SLN_PROFILE_COMPILE_DEFS}>
+ $<$<CONFIG:release>:${BLAST_SLN_RELEASE_COMPILE_DEFS}>
+)
+
+SET(BLASTEXTPXSERIALIZATION_LIB_TYPE SHARED)
+
+IF (NOT "${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
+ SET(BLASTEXTPXSERIALIZATION_COMPILE_OPTIONS "-Wno-sign-compare")
+ELSE()
+ SET(BLASTEXTPXSERIALIZATION_COMPILE_OPTIONS "-Wno-sign-compare" "-Wno-return-type-c-linkage" "-Wno-unused-parameter")
+ENDIF()
+
+
diff --git a/sdk/compiler/cmake/linux/NvBlastExtStress.cmake b/sdk/compiler/cmake/linux/NvBlastExtStress.cmake
new file mode 100644
index 0000000..96fe6a0
--- /dev/null
+++ b/sdk/compiler/cmake/linux/NvBlastExtStress.cmake
@@ -0,0 +1,11 @@
+#
+# Build NvBlast Linux
+#
+
+SET(BLASTTK_LIBTYPE SHARED)
+
+IF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
+ SET(BLASTEXTSTRESS_PLATFORM_COMPILE_OPTIONS "-Wno-return-type-c-linkage" "-pedantic")
+ELSE()
+ SET(BLASTEXTSTRESS_PLATFORM_COMPILE_OPTIONS "-pedantic")
+ENDIF()
diff --git a/sdk/compiler/cmake/linux/NvBlastExtTkSerialization.cmake b/sdk/compiler/cmake/linux/NvBlastExtTkSerialization.cmake
new file mode 100644
index 0000000..12ade81
--- /dev/null
+++ b/sdk/compiler/cmake/linux/NvBlastExtTkSerialization.cmake
@@ -0,0 +1,27 @@
+#
+# Build NvBlastExtTkSerialization Linux
+#
+
+SET(BLASTEXTTKSERIALIZATION_PLATFORM_COMMON_FILES
+)
+
+SET(BLASTEXTTKSERIALIZATION_PLATFORM_INCLUDES
+)
+
+SET(BLASTEXTTKSERIALIZATION_COMPILE_DEFS
+ # Common to all configurations
+ ${BLAST_SLN_COMPILE_DEFS};
+
+ $<$<CONFIG:debug>:${BLAST_SLN_DEBUG_COMPILE_DEFS}>
+ $<$<CONFIG:checked>:${BLAST_SLN_CHECKED_COMPILE_DEFS}>
+ $<$<CONFIG:profile>:${BLAST_SLN_PROFILE_COMPILE_DEFS}>
+ $<$<CONFIG:release>:${BLAST_SLN_RELEASE_COMPILE_DEFS}>
+)
+
+SET(BLASTEXTTKSERIALIZATION_LIB_TYPE SHARED)
+
+IF (NOT "${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
+ SET(BLASTEXTTKSERIALIZATION_COMPILE_OPTIONS "-Wno-sign-compare")
+ELSE()
+ SET(BLASTEXTTKSERIALIZATION_COMPILE_OPTIONS "-Wno-sign-compare" "-Wno-return-type-c-linkage" "-Wno-unused-parameter")
+ENDIF()
diff --git a/sdk/compiler/cmake/linux/NvBlastGlobals.cmake b/sdk/compiler/cmake/linux/NvBlastGlobals.cmake
new file mode 100644
index 0000000..163d4b9
--- /dev/null
+++ b/sdk/compiler/cmake/linux/NvBlastGlobals.cmake
@@ -0,0 +1,15 @@
+#
+# Build NvBlastGlobals Linux
+#
+
+SET(BLASTGLOBALS_COMPILE_DEFS
+ # Common to all configurations
+ ${BLAST_SLN_COMPILE_DEFS};
+
+ $<$<CONFIG:debug>:${BLAST_SLN_DEBUG_COMPILE_DEFS}>
+ $<$<CONFIG:checked>:${BLAST_SLN_CHECKED_COMPILE_DEFS}>
+ $<$<CONFIG:profile>:${BLAST_SLN_PROFILE_COMPILE_DEFS}>
+ $<$<CONFIG:release>:${BLAST_SLN_RELEASE_COMPILE_DEFS}>
+)
+
+SET(BLASTGLOBALS_PLATFORM_COMPILE_OPTIONS "-pedantic") \ No newline at end of file
diff --git a/sdk/compiler/cmake/modules/FindBoostMultiprecision.cmake b/sdk/compiler/cmake/modules/FindBoostMultiprecision.cmake
new file mode 100644
index 0000000..84373ab
--- /dev/null
+++ b/sdk/compiler/cmake/modules/FindBoostMultiprecision.cmake
@@ -0,0 +1,22 @@
+# - Try to find tinyObjLoader
+# Once done this will define
+# BOOSTMULTIPRECISION_FOUND - System has tinyObjLoader
+# BOOSTMULTIPRECISION_INCLUDE_DIRS - The tinyObjLoader include directories
+
+INCLUDE(FindPackageHandleStandardArgs)
+
+#TODO: Proper version support
+FIND_PATH( BOOSTMULTIPRECISION_PATH boost/multiprecision
+ PATHS
+ ${GW_DEPS_ROOT}/BoostMultiprecision/${BoostMultiprecision_FIND_VERSION}
+ )
+
+MESSAGE("Boost Multiprecision Loader: " ${BOOSTMULTIPRECISION_PATH})
+
+SET(BOOSTMULTIPRECISION_INCLUDE_DIRS
+ ${BOOSTMULTIPRECISION_PATH}
+)
+
+FIND_PACKAGE_HANDLE_STANDARD_ARGS(BoostMultiprecision DEFAULT_MSG BOOSTMULTIPRECISION_INCLUDE_DIRS)
+
+mark_as_advanced(BOOSTMULTIPRECISION_INCLUDE_DIRS) \ No newline at end of file
diff --git a/sdk/compiler/cmake/windows/NvBlastExtAssetUtils.cmake b/sdk/compiler/cmake/windows/NvBlastExtAssetUtils.cmake
new file mode 100644
index 0000000..77c51b4
--- /dev/null
+++ b/sdk/compiler/cmake/windows/NvBlastExtAssetUtils.cmake
@@ -0,0 +1,26 @@
+#
+# Build NvBlastExtAssetUtils Windows
+#
+
+SET(BLASTEXTASSETUTILS_PLATFORM_COMMON_FILES
+ ${COMMON_SOURCE_DIR}/NvBlastIncludeWindows.h
+)
+
+SET(BLASTEXTASSETUTILS_PLATFORM_INCLUDES
+)
+
+SET(BLASTEXTASSETUTILS_COMPILE_DEFS
+ # Common to all configurations
+ ${BLAST_SLN_COMPILE_DEFS};_CONSOLE;
+
+ $<$<CONFIG:debug>:${BLAST_SLN_DEBUG_COMPILE_DEFS}>
+ $<$<CONFIG:checked>:${BLAST_SLN_CHECKED_COMPILE_DEFS}>
+ $<$<CONFIG:profile>:${BLAST_SLN_PROFILE_COMPILE_DEFS}>
+ $<$<CONFIG:release>:${BLAST_SLN_RELEASE_COMPILE_DEFS}>
+)
+
+SET(BLASTEXTASSETUTILS_LIB_TYPE SHARED)
+
+
+SET(BLASTEXTASSETUTILS_COMPILE_OPTIONS "/wd4100;/wd4239;/wd4244;/wd4245;/wd4267;/EHsc")
+
diff --git a/sdk/compiler/cmake/windows/NvBlastExtExporter.cmake b/sdk/compiler/cmake/windows/NvBlastExtExporter.cmake
new file mode 100644
index 0000000..33f720d
--- /dev/null
+++ b/sdk/compiler/cmake/windows/NvBlastExtExporter.cmake
@@ -0,0 +1,30 @@
+#
+# Build NvBlastExt Windows
+#
+
+SET(BLASTEXT_PLATFORM_COMMON_FILES
+ ${COMMON_SOURCE_DIR}/NvBlastIncludeWindows.h
+)
+
+SET(BLASTEXT_PLATFORM_INCLUDES
+)
+
+SET(BLASTEXT_COMPILE_DEFS
+ # Common to all configurations
+ ${BLAST_SLN_COMPILE_DEFS};_CONSOLE;
+
+ $<$<CONFIG:debug>:${BLAST_SLN_DEBUG_COMPILE_DEFS}>
+ $<$<CONFIG:checked>:${BLAST_SLN_CHECKED_COMPILE_DEFS}>
+ $<$<CONFIG:profile>:${BLAST_SLN_PROFILE_COMPILE_DEFS}>
+ $<$<CONFIG:release>:${BLAST_SLN_RELEASE_COMPILE_DEFS}>
+)
+
+SET(BLAST_EXT_SHARED_LIB_TYPE SHARED)
+
+SET(BLASTEXT_PLATFORM_COMPILE_OPTIONS "/wd4100;/wd4239;/wd4244;/wd4245;/wd4267;/EHsc")
+
+#VS2013 has a unreacable code warning in the STL (xtree)
+IF(MSVC_VERSION LESS 1900)
+ SET(BLASTEXT_PLATFORM_COMPILE_OPTIONS "${BLASTEXT_PLATFORM_COMPILE_OPTIONS};/wd4702")
+ENDIF()
+
diff --git a/sdk/compiler/cmake/windows/NvBlastExtPxSerialization.cmake b/sdk/compiler/cmake/windows/NvBlastExtPxSerialization.cmake
new file mode 100644
index 0000000..4ea6ea9
--- /dev/null
+++ b/sdk/compiler/cmake/windows/NvBlastExtPxSerialization.cmake
@@ -0,0 +1,26 @@
+#
+# Build NvBlastPxExtSerialization Windows
+#
+
+SET(BLASTEXTPXSERIALIZATION_PLATFORM_COMMON_FILES
+ ${COMMON_SOURCE_DIR}/NvBlastIncludeWindows.h
+)
+
+SET(BLASTEXTPXSERIALIZATION_PLATFORM_INCLUDES
+)
+
+SET(BLASTEXTPXSERIALIZATION_COMPILE_DEFS
+ # Common to all configurations
+ ${BLAST_SLN_COMPILE_DEFS};_CONSOLE;
+
+ $<$<CONFIG:debug>:${BLAST_SLN_DEBUG_COMPILE_DEFS}>
+ $<$<CONFIG:checked>:${BLAST_SLN_CHECKED_COMPILE_DEFS}>
+ $<$<CONFIG:profile>:${BLAST_SLN_PROFILE_COMPILE_DEFS}>
+ $<$<CONFIG:release>:${BLAST_SLN_RELEASE_COMPILE_DEFS}>
+)
+
+SET(BLASTEXTPXSERIALIZATION_LIB_TYPE SHARED)
+
+
+SET(BLASTEXTPXSERIALIZATION_COMPILE_OPTIONS "/wd4100;/wd4239;/wd4244;/wd4245;/wd4267;/wd4702;/wd4800;/wd4541;/wd4189;/wd4714;/wd4018;/wd4456;/wd4091;/wd4127;/EHsc")
+
diff --git a/sdk/compiler/cmake/windows/NvBlastExtTkSerialization.cmake b/sdk/compiler/cmake/windows/NvBlastExtTkSerialization.cmake
new file mode 100644
index 0000000..bdd2ebe
--- /dev/null
+++ b/sdk/compiler/cmake/windows/NvBlastExtTkSerialization.cmake
@@ -0,0 +1,26 @@
+#
+# Build NvBlastTkExtSerialization Windows
+#
+
+SET(BLASTEXTTKSERIALIZATION_PLATFORM_COMMON_FILES
+ ${COMMON_SOURCE_DIR}/NvBlastIncludeWindows.h
+)
+
+SET(BLASTEXTTKSERIALIZATION_PLATFORM_INCLUDES
+)
+
+SET(BLASTEXTTKSERIALIZATION_COMPILE_DEFS
+ # Common to all configurations
+ ${BLAST_SLN_COMPILE_DEFS};_CONSOLE;
+
+ $<$<CONFIG:debug>:${BLAST_SLN_DEBUG_COMPILE_DEFS}>
+ $<$<CONFIG:checked>:${BLAST_SLN_CHECKED_COMPILE_DEFS}>
+ $<$<CONFIG:profile>:${BLAST_SLN_PROFILE_COMPILE_DEFS}>
+ $<$<CONFIG:release>:${BLAST_SLN_RELEASE_COMPILE_DEFS}>
+)
+
+SET(BLASTEXTTKSERIALIZATION_LIB_TYPE SHARED)
+
+
+SET(BLASTEXTTKSERIALIZATION_COMPILE_OPTIONS "/wd4100;/wd4239;/wd4244;/wd4245;/wd4267;/wd4702;/wd4800;/wd4541;/wd4189;/wd4714;/wd4018;/wd4456;/wd4091;/wd4127;/EHsc")
+
diff --git a/sdk/compiler/cmake/windows/NvBlastGlobals.cmake b/sdk/compiler/cmake/windows/NvBlastGlobals.cmake
new file mode 100644
index 0000000..106c9aa
--- /dev/null
+++ b/sdk/compiler/cmake/windows/NvBlastGlobals.cmake
@@ -0,0 +1,13 @@
+#
+# Build NvBlastGlobals Windows
+#
+
+SET(BLASTGLOBALS_COMPILE_DEFS
+ # Common to all configurations
+ ${BLAST_SLN_COMPILE_DEFS};_CONSOLE
+
+ $<$<CONFIG:debug>:${BLAST_SLN_DEBUG_COMPILE_DEFS}>
+ $<$<CONFIG:checked>:${BLAST_SLN_CHECKED_COMPILE_DEFS}>
+ $<$<CONFIG:profile>:${BLAST_SLN_PROFILE_COMPILE_DEFS}>
+ $<$<CONFIG:release>:${BLAST_SLN_RELEASE_COMPILE_DEFS}>
+)