aboutsummaryrefslogtreecommitdiff
path: root/NvBlast/sdk/compiler/cmake/NvBlastExtImport.cmake
diff options
context:
space:
mode:
Diffstat (limited to 'NvBlast/sdk/compiler/cmake/NvBlastExtImport.cmake')
-rw-r--r--NvBlast/sdk/compiler/cmake/NvBlastExtImport.cmake95
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}>
+)