diff options
Diffstat (limited to 'NvBlast/sdk/compiler/cmake/NvBlastExtImport.cmake')
| -rw-r--r-- | NvBlast/sdk/compiler/cmake/NvBlastExtImport.cmake | 95 |
1 files changed, 95 insertions, 0 deletions
diff --git a/NvBlast/sdk/compiler/cmake/NvBlastExtImport.cmake b/NvBlast/sdk/compiler/cmake/NvBlastExtImport.cmake new file mode 100644 index 0000000..3d7b27a --- /dev/null +++ b/NvBlast/sdk/compiler/cmake/NvBlastExtImport.cmake @@ -0,0 +1,95 @@ +# +# Build NvBlastExt Common +# + + +SET(COMMON_SOURCE_DIR ${PROJECT_SOURCE_DIR}/common) + +SET(COMMON_EXT_SOURCE_DIR ${PROJECT_SOURCE_DIR}/extensions/common/source) +SET(IMPORT_EXT_SOURCE_DIR ${PROJECT_SOURCE_DIR}/extensions/import/source) +SET(IMPORT_EXT_INCLUDE_DIR ${PROJECT_SOURCE_DIR}/extensions/import/include) +SET(PHYSX_EXT_INCLUDE_DIR ${PROJECT_SOURCE_DIR}/extensions/physx/include) + +FIND_PACKAGE(PhysXSDK $ENV{PM_PhysX_VERSION} REQUIRED) +FIND_PACKAGE(ApexSDK $ENV{PM_Apex_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}/NvBlastExtImport.cmake) + +SET(COMMON_FILES + ${BLASTEXT_PLATFORM_COMMON_FILES} + + ${COMMON_SOURCE_DIR}/NvBlastAssert.cpp + ${COMMON_SOURCE_DIR}/NvBlastAssert.h +) + +SET(PUBLIC_FILES + ${IMPORT_EXT_INCLUDE_DIR}/NvBlastExtApexImportTool.h +) + +SET(EXT_IMPORT_FILES + ${IMPORT_EXT_SOURCE_DIR}/NvBlastExtApexDestruction.cpp + ${IMPORT_EXT_SOURCE_DIR}/NvBlastExtApexDestruction.h + ${IMPORT_EXT_SOURCE_DIR}/NvBlastExtApexImportTool.cpp + ${IMPORT_EXT_SOURCE_DIR}/NvBlastExtScopedResource.cpp + ${IMPORT_EXT_SOURCE_DIR}/NvBlastExtScopedResource.h +) + +ADD_LIBRARY(NvBlastExtImport STATIC + ${COMMON_FILES} + ${PUBLIC_FILES} + + ${EXT_IMPORT_FILES} +) + +SOURCE_GROUP("common" FILES ${COMMON_FILES}) +SOURCE_GROUP("public" FILES ${PUBLIC_FILES}) +SOURCE_GROUP("src" FILES ${EXT_IMPORT_FILES}) + + +# Target specific compile options + +TARGET_INCLUDE_DIRECTORIES(NvBlastExtImport + PRIVATE ${BLASTEXT_PLATFORM_INCLUDES} + + PUBLIC ${PROJECT_SOURCE_DIR}/lowlevel/include + PUBLIC ${PROJECT_SOURCE_DIR}/toolkit/include + PUBLIC ${PHYSX_EXT_INCLUDE_DIR} + PUBLIC ${IMPORT_EXT_INCLUDE_DIR} + + PRIVATE ${PROJECT_SOURCE_DIR}/common + PRIVATE ${COMMON_EXT_SOURCE_DIR} + + PRIVATE ${IMPORT_EXT_SOURCE_DIR} + + PRIVATE ${PHYSXSDK_INCLUDE_DIRS} + PRIVATE ${APEXSDK_INCLUDE_DIRS} + PRIVATE ${PXSHAREDSDK_INCLUDE_DIRS} +) + +TARGET_COMPILE_DEFINITIONS(NvBlastExtImport + PRIVATE ${BLASTEXT_COMPILE_DEFS} +) + +# Warning disables for Capn Proto +TARGET_COMPILE_OPTIONS(NvBlastExtImport + PRIVATE ${BLASTEXT_PLATFORM_COMPILE_OPTIONS} +) + +SET_TARGET_PROPERTIES(NvBlastExtImport PROPERTIES + PDB_NAME_DEBUG "NvBlastExtImport${CMAKE_DEBUG_POSTFIX}" + PDB_NAME_CHECKED "NvBlastExtImport${CMAKE_CHECKED_POSTFIX}" + PDB_NAME_PROFILE "NvBlastExtImport${CMAKE_PROFILE_POSTFIX}" + PDB_NAME_RELEASE "NvBlastExtImport${CMAKE_RELEASE_POSTFIX}" +) + +# Do final direct sets after the target has been defined +TARGET_LINK_LIBRARIES(NvBlastExtImport + PRIVATE NvBlast NvBlastTk NvBlastExtAuthoring + PUBLIC ${BLASTEXT_PLATFORM_LINKED_LIBS} + PUBLIC $<$<CONFIG:debug>:${APEXFRAMEWORK_LIB_DEBUG}> $<$<CONFIG:debug>:${PSFASTXML_LIB_DEBUG}> + PUBLIC $<$<CONFIG:checked>:${APEXFRAMEWORK_LIB_CHECKED}> $<$<CONFIG:checked>:${PSFASTXML_LIB_CHECKED}> + PUBLIC $<$<CONFIG:profile>:${APEXFRAMEWORK_LIB_PROFILE}> $<$<CONFIG:profile>:${PSFASTXML_LIB_PROFILE}> + PUBLIC $<$<CONFIG:release>:${APEXFRAMEWORK_LIB}> $<$<CONFIG:release>:${PSFASTXML_LIB}> +) |