diff options
| author | Bryan Galdrikian <[email protected]> | 2017-02-24 09:32:20 -0800 |
|---|---|---|
| committer | Bryan Galdrikian <[email protected]> | 2017-02-24 09:32:20 -0800 |
| commit | e1bf674c16e3c8472b29574159c789cd3f0c64e0 (patch) | |
| tree | 9f0cfce09c71a2c27ff19589fcad6cd83504477c /sdk/compiler/cmake/NvBlastExtPhysX.cmake | |
| parent | first commit (diff) | |
| download | blast-e1bf674c16e3c8472b29574159c789cd3f0c64e0.tar.xz blast-e1bf674c16e3c8472b29574159c789cd3f0c64e0.zip | |
Updating to [email protected] and [email protected] with a new directory structure.
NvBlast folder is gone, files have been moved to top level directory. README is changed to reflect this.
Diffstat (limited to 'sdk/compiler/cmake/NvBlastExtPhysX.cmake')
| -rw-r--r-- | sdk/compiler/cmake/NvBlastExtPhysX.cmake | 113 |
1 files changed, 113 insertions, 0 deletions
diff --git a/sdk/compiler/cmake/NvBlastExtPhysX.cmake b/sdk/compiler/cmake/NvBlastExtPhysX.cmake new file mode 100644 index 0000000..d2d0f0a --- /dev/null +++ b/sdk/compiler/cmake/NvBlastExtPhysX.cmake @@ -0,0 +1,113 @@ +# +# Build NvBlastExtPhysX Common +# + + +SET(COMMON_SOURCE_DIR ${PROJECT_SOURCE_DIR}/common) + +SET(COMMON_EXT_SOURCE_DIR ${PROJECT_SOURCE_DIR}/extensions/common/source) +SET(PHYSX_EXT_SOURCE_DIR ${PROJECT_SOURCE_DIR}/extensions/physx/source) +SET(COMMON_EXT_INCLUDE_DIR ${PROJECT_SOURCE_DIR}/extensions/common/include) +SET(PHYSX_EXT_INCLUDE_DIR ${PROJECT_SOURCE_DIR}/extensions/physx/include) + +FIND_PACKAGE(PhysXSDK $ENV{PM_PhysX_VERSION} REQUIRED) +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}/NvBlastExtPhysX.cmake) + +SET(COMMON_FILES + ${BLASTEXT_PLATFORM_COMMON_FILES} + + ${COMMON_SOURCE_DIR}/NvBlastAssert.cpp + ${COMMON_SOURCE_DIR}/NvBlastAssert.h +) + +SET(PUBLIC_FILES + ${PHYSX_EXT_INCLUDE_DIR}/NvBlastExtImpactDamageManager.h + ${PHYSX_EXT_INCLUDE_DIR}/NvBlastExtPx.h + ${PHYSX_EXT_INCLUDE_DIR}/NvBlastExtPxActor.h + ${PHYSX_EXT_INCLUDE_DIR}/NvBlastExtPxAsset.h + ${PHYSX_EXT_INCLUDE_DIR}/NvBlastExtPxFamily.h + ${PHYSX_EXT_INCLUDE_DIR}/NvBlastExtPxListener.h + ${PHYSX_EXT_INCLUDE_DIR}/NvBlastExtPxManager.h + ${PHYSX_EXT_INCLUDE_DIR}/NvBlastExtStressSolver.h + ${PHYSX_EXT_INCLUDE_DIR}/NvBlastExtSync.h +) + +SET(EXT_PHYSICS_FILES + ${PHYSX_EXT_SOURCE_DIR}/physics/NvBlastExtImpulseStressSolver.h + ${PHYSX_EXT_SOURCE_DIR}/physics/NvBlastExtImpactDamageManager.cpp + ${PHYSX_EXT_SOURCE_DIR}/physics/NvBlastExtImpulseStressSolver.cpp + ${PHYSX_EXT_SOURCE_DIR}/physics/NvBlastExtPxActorImpl.h + ${PHYSX_EXT_SOURCE_DIR}/physics/NvBlastExtPxActorImpl.cpp + ${PHYSX_EXT_SOURCE_DIR}/physics/NvBlastExtPxAssetImpl.h + ${PHYSX_EXT_SOURCE_DIR}/physics/NvBlastExtPxAssetImpl.cpp + ${PHYSX_EXT_SOURCE_DIR}/physics/NvBlastExtPxFamilyImpl.h + ${PHYSX_EXT_SOURCE_DIR}/physics/NvBlastExtPxFamilyImpl.cpp + ${PHYSX_EXT_SOURCE_DIR}/physics/NvBlastExtPxManagerImpl.h + ${PHYSX_EXT_SOURCE_DIR}/physics/NvBlastExtPxManagerImpl.cpp +) + +SET(EXT_SYNC_FILES + ${PHYSX_EXT_SOURCE_DIR}/sync/NvBlastExtSync.cpp +) + +ADD_LIBRARY(NvBlastExtPhysX ${BLASTEXT_PHYSX_LIBTYPE} + ${COMMON_FILES} + ${PUBLIC_FILES} + + ${EXT_PHYSICS_FILES} + ${EXT_SYNC_FILES} +) + +SOURCE_GROUP("common" FILES ${COMMON_FILES}) +SOURCE_GROUP("public" FILES ${PUBLIC_FILES}) +SOURCE_GROUP("src\\physics" FILES ${EXT_PHYSICS_FILES}) +SOURCE_GROUP("src\\sync" FILES ${EXT_SYNC_FILES}) + + +# Target specific compile options + +TARGET_INCLUDE_DIRECTORIES(NvBlastExtPhysX + PRIVATE ${BLASTEXT_PLATFORM_INCLUDES} + + PUBLIC ${PROJECT_SOURCE_DIR}/lowlevel/include + PUBLIC ${PHYSX_EXT_INCLUDE_DIR} + + PRIVATE ${PROJECT_SOURCE_DIR}/common + PRIVATE ${COMMON_EXT_SOURCE_DIR} + + PRIVATE ${PHYSX_EXT_SOURCE_DIR}/physics + PRIVATE ${PHYSX_EXT_SOURCE_DIR}/sync + + PUBLIC ${PHYSXSDK_INCLUDE_DIRS} + PRIVATE ${PXSHAREDSDK_INCLUDE_DIRS} +) + +TARGET_COMPILE_DEFINITIONS(NvBlastExtPhysX + PRIVATE ${BLASTEXT_COMPILE_DEFS} +) + +# Warning disables for Capn Proto +TARGET_COMPILE_OPTIONS(NvBlastExtPhysX + PRIVATE ${BLASTEXT_PLATFORM_COMPILE_OPTIONS} +) + +SET_TARGET_PROPERTIES(NvBlastExtPhysX PROPERTIES + PDB_NAME_DEBUG "NvBlastExtPhysX${CMAKE_DEBUG_POSTFIX}" + PDB_NAME_CHECKED "NvBlastExtPhysX${CMAKE_CHECKED_POSTFIX}" + PDB_NAME_PROFILE "NvBlastExtPhysX${CMAKE_PROFILE_POSTFIX}" + PDB_NAME_RELEASE "NvBlastExtPhysX${CMAKE_RELEASE_POSTFIX}" +) + +# Do final direct sets after the target has been defined +TARGET_LINK_LIBRARIES(NvBlastExtPhysX + PUBLIC NvBlast NvBlastExtShaders NvBlastTk + PUBLIC $<$<CONFIG:debug>:${PHYSX3_LIB_DEBUG}> $<$<CONFIG:debug>:${PHYSX3COOKING_LIB_DEBUG}> $<$<CONFIG:debug>:${PHYSX3EXTENSIONS_LIB_DEBUG}> $<$<CONFIG:debug>:${PXFOUNDATION_LIB_DEBUG}> + PUBLIC $<$<CONFIG:checked>:${PHYSX3_LIB_CHECKED}> $<$<CONFIG:checked>:${PHYSX3COOKING_LIB_CHECKED}> $<$<CONFIG:checked>:${PHYSX3EXTENSIONS_LIB_CHECKED}> $<$<CONFIG:checked>:${PXFOUNDATION_LIB_CHECKED}> + PUBLIC $<$<CONFIG:profile>:${PHYSX3_LIB_PROFILE}> $<$<CONFIG:profile>:${PHYSX3COOKING_LIB_PROFILE}> $<$<CONFIG:profile>:${PHYSX3EXTENSIONS_LIB_PROFILE}> $<$<CONFIG:profile>:${PXFOUNDATION_LIB_PROFILE}> + PUBLIC $<$<CONFIG:release>:${PHYSX3_LIB}> $<$<CONFIG:release>:${PHYSX3COOKING_LIB}> $<$<CONFIG:release>:${PHYSX3EXTENSIONS_LIB}> $<$<CONFIG:release>:${PXFOUNDATION_LIB}> + + PUBLIC ${BLASTEXT_PLATFORM_LINKED_LIBS} +) |