diff options
Diffstat (limited to 'NvBlast/tools/compiler/cmake/ApexImporter.cmake')
| -rw-r--r-- | NvBlast/tools/compiler/cmake/ApexImporter.cmake | 82 |
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} +) |