aboutsummaryrefslogtreecommitdiff
path: root/NvBlast/tools/compiler/cmake/ApexImporter.cmake
diff options
context:
space:
mode:
Diffstat (limited to 'NvBlast/tools/compiler/cmake/ApexImporter.cmake')
-rw-r--r--NvBlast/tools/compiler/cmake/ApexImporter.cmake82
1 files changed, 82 insertions, 0 deletions
diff --git a/NvBlast/tools/compiler/cmake/ApexImporter.cmake b/NvBlast/tools/compiler/cmake/ApexImporter.cmake
new file mode 100644
index 0000000..13a691e
--- /dev/null
+++ b/NvBlast/tools/compiler/cmake/ApexImporter.cmake
@@ -0,0 +1,82 @@
+#
+# Build ApexImporter common
+#
+
+SET(APEXIMPORTER_SOURCE_DIR ${PROJECT_SOURCE_DIR}/ApexImporter/src)
+SET(TOOLS_COMMON_DIR ${BLAST_ROOT_DIR}/tools/common)
+FIND_PACKAGE(PhysXSDK $ENV{PM_PhysX_VERSION} REQUIRED)
+FIND_PACKAGE(ApexSDK $ENV{PM_Apex_VERSION} REQUIRED)
+FIND_PACKAGE(PxSharedSDK $ENV{PM_PxShared_VERSION} REQUIRED)
+FIND_PACKAGE(tclap $ENV{PM_tclap_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}/ApexImporter.cmake)
+
+SET(COMMON_FILES
+ ${APEXIMPORTER_PLATFORM_COMMON_FILES}
+
+ ${APEXIMPORTER_SOURCE_DIR}/Main.cpp
+ ${APEXIMPORTER_SOURCE_DIR}/ApexDestructibleObjExporter.cpp
+ ${APEXIMPORTER_SOURCE_DIR}/ApexDestructibleObjExporter.h
+ ${BLAST_ROOT_DIR}/tools/common/BlastDataExporter.cpp
+ ${BLAST_ROOT_DIR}/tools/common/BlastDataExporter.h
+ ${TOOLS_COMMON_DIR}/IMeshFileWriter.h
+ ${TOOLS_COMMON_DIR}/ObjFileWriter.h
+ ${TOOLS_COMMON_DIR}/ObjFileWriter.cpp
+ ${TOOLS_COMMON_DIR}/FbxFileWriter.h
+ ${TOOLS_COMMON_DIR}/FbxFileWriter.cpp
+ ${TOOLS_COMMON_DIR}/FbxUtils.h
+ ${TOOLS_COMMON_DIR}/FbxUtils.cpp
+)
+
+ADD_EXECUTABLE(ApexImporter
+ ${COMMON_FILES}
+)
+
+set_target_properties(ApexImporter
+ PROPERTIES DEBUG_POSTFIX ${CMAKE_DEBUG_POSTFIX}
+ CHECKED_POSTFIX ${CMAKE_CHECKED_POSTFIX}
+ RELEASE_POSTFIX ${CMAKE_RELEASE_POSTFIX}
+ PROFILE_POSTFIX ${CMAKE_PROFILE_POSTFIX}
+)
+
+SOURCE_GROUP("src" FILES ${COMMON_FILES})
+
+# Target specific compile options
+
+TARGET_INCLUDE_DIRECTORIES(ApexImporter
+ PRIVATE ${APEXIMPORTER_PLATFORM_INCLUDES}
+
+ PRIVATE ${BLAST_ROOT_DIR}/sdk/common
+ PRIVATE ${TOOLS_COMMON_DIR}
+
+ PRIVATE ${PHYSXSDK_INCLUDE_DIRS}
+ PRIVATE ${APEXSDK_INCLUDE_DIRS}
+ PRIVATE ${PXSHAREDSDK_INCLUDE_DIRS}
+ PRIVATE ${TCLAP_INCLUDE_DIRS}
+ PRIVATE ${FBXSDK_INCLUDE_DIRS}
+)
+
+TARGET_COMPILE_DEFINITIONS(ApexImporter
+ PRIVATE ${APEXIMPORTER_COMPILE_DEFS}
+)
+
+SET_TARGET_PROPERTIES(ApexImporter PROPERTIES
+ COMPILE_PDB_NAME_DEBUG "ApexImporter${CMAKE_DEBUG_POSTFIX}"
+ COMPILE_PDB_NAME_CHECKED "ApexImporter${CMAKE_CHECKED_POSTFIX}"
+ COMPILE_PDB_NAME_PROFILE "ApexImporter${CMAKE_PROFILE_POSTFIX}"
+ COMPILE_PDB_NAME_RELEASE "ApexImporter${CMAKE_RELEASE_POSTFIX}"
+)
+
+# Do final direct sets after the target has been defined
+TARGET_LINK_LIBRARIES(ApexImporter
+ PRIVATE NvBlast NvBlastExtPhysX NvBlastExtAuthoring NvBlastExtImport Rpcrt4 $<$<OR:$<CONFIG:debug>,$<CONFIG:checked>,$<CONFIG:profile>>:${NVTOOLSEXT_LIB}>
+ PRIVATE ${FBXSDK_LIBRARIES}
+)
+
+ADD_CUSTOM_COMMAND(TARGET ApexImporter POST_BUILD
+ COMMAND ${CMAKE_COMMAND} -E copy_if_different
+ ${APEXSDK_DLLS} ${PHYSXSDK_DLLS} ${PXSHAREDSDK_DLLS}
+ ${BL_EXE_OUTPUT_DIR}
+)