aboutsummaryrefslogtreecommitdiff
path: root/NvBlast/tools/compiler/cmake/AuthoringTool.cmake
diff options
context:
space:
mode:
Diffstat (limited to 'NvBlast/tools/compiler/cmake/AuthoringTool.cmake')
-rw-r--r--NvBlast/tools/compiler/cmake/AuthoringTool.cmake98
1 files changed, 98 insertions, 0 deletions
diff --git a/NvBlast/tools/compiler/cmake/AuthoringTool.cmake b/NvBlast/tools/compiler/cmake/AuthoringTool.cmake
new file mode 100644
index 0000000..3ba77d8
--- /dev/null
+++ b/NvBlast/tools/compiler/cmake/AuthoringTool.cmake
@@ -0,0 +1,98 @@
+#
+# Build AuthoringTool common
+#
+
+SET(AUTHORTINGTOOL_SOURCE_DIR ${PROJECT_SOURCE_DIR}/AuthoringTool/src)
+SET(TOOLS_COMMON_SOURCE_DIR ${PROJECT_SOURCE_DIR}/common)
+
+SET(EXT_AUTHORING_INCLUDE_DIR ${BLAST_ROOT_DIR}/sdk/extensions/authoring/include)
+SET(TK_INCLUDE_DIR ${BLAST_ROOT_DIR}/sdk/toolkit/include)
+
+FIND_PACKAGE(PhysXSDK $ENV{PM_PhysXSDK_VERSION} REQUIRED)
+FIND_PACKAGE(PxSharedSDK $ENV{PM_PxSharedSDK_VERSION} REQUIRED)
+FIND_PACKAGE(tclap $ENV{PM_tclap_VERSION} REQUIRED)
+FIND_PACKAGE(tinyObjLoader $ENV{PM_tinyObjLoader_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}/AuthoringTool.cmake)
+
+SET(COMMON_FILES
+ ${AUTHORTINGTOOL_PLATFORM_COMMON_FILES}
+
+ ${AUTHORTINGTOOL_SOURCE_DIR}/AuthoringTool.cpp
+ ${TOOLS_COMMON_SOURCE_DIR}/IMeshFileReader.h
+ ${TOOLS_COMMON_SOURCE_DIR}/IMeshFileWriter.h
+ ${TOOLS_COMMON_SOURCE_DIR}/FbxFileReader.h
+ ${TOOLS_COMMON_SOURCE_DIR}/FbxFileReader.cpp
+ ${TOOLS_COMMON_SOURCE_DIR}/ObjFileReader.h
+ ${TOOLS_COMMON_SOURCE_DIR}/ObjFileReader.cpp
+ ${TOOLS_COMMON_SOURCE_DIR}/ObjFileWriter.h
+ ${TOOLS_COMMON_SOURCE_DIR}/ObjFileWriter.cpp
+ ${TOOLS_COMMON_SOURCE_DIR}/FbxFileWriter.h
+ ${TOOLS_COMMON_SOURCE_DIR}/FbxFileWriter.cpp
+ ${TOOLS_COMMON_SOURCE_DIR}/FbxUtils.h
+ ${TOOLS_COMMON_SOURCE_DIR}/FbxUtils.cpp
+ ${AUTHORTINGTOOL_SOURCE_DIR}/SimpleRandomGenerator.h
+ ${AUTHORTINGTOOL_SOURCE_DIR}/FractureProcessor.h
+ ${AUTHORTINGTOOL_SOURCE_DIR}/FractureProcessor.cpp
+ ${TOOLS_COMMON_SOURCE_DIR}/BlastDataExporter.h
+ ${TOOLS_COMMON_SOURCE_DIR}/BlastDataExporter.cpp
+)
+
+ADD_EXECUTABLE(AuthoringTool
+ ${COMMON_FILES}
+)
+
+set_target_properties(AuthoringTool
+ 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(AuthoringTool
+ PRIVATE ${AUTHORTINGTOOL_PLATFORM_INCLUDES}
+
+ PRIVATE ${TOOLS_COMMON_SOURCE_DIR}
+ PRIVATE ${EXT_AUTHORING_INCLUDE_DIR}
+ PRIVATE ${TK_INCLUDE_DIR}
+ PRIVATE ${BLAST_ROOT_DIR}/sdk/common
+
+ PRIVATE ${PHYSXSDK_INCLUDE_DIRS}
+ PRIVATE ${PXSHAREDSDK_INCLUDE_DIRS}
+ PRIVATE ${TCLAP_INCLUDE_DIRS}
+ PRIVATE ${TINYOBJLOADER_INCLUDE_DIRS}
+ PRIVATE ${FBXSDK_INCLUDE_DIRS}
+)
+
+TARGET_COMPILE_DEFINITIONS(AuthoringTool
+ PRIVATE ${AUTHORTINGTOOL_COMPILE_DEFS}
+)
+
+SET_TARGET_PROPERTIES(AuthoringTool PROPERTIES
+ PDB_NAME_DEBUG "AuthoringTool${CMAKE_DEBUG_POSTFIX}"
+ PDB_NAME_CHECKED "AuthoringTool${CMAKE_CHECKED_POSTFIX}"
+ PDB_NAME_PROFILE "AuthoringTool${CMAKE_PROFILE_POSTFIX}"
+ PDB_NAME_RELEASE "AuthoringTool${CMAKE_RELEASE_POSTFIX}"
+)
+
+# Do final direct sets after the target has been defined
+TARGET_LINK_LIBRARIES(AuthoringTool
+ PRIVATE NvBlast NvBlastTk NvBlastExtSerialization NvBlastExtPhysX NvBlastExtAuthoring
+ PRIVATE ${FBXSDK_LIBRARIES}
+)
+
+# Copy the dlls from the deps
+
+ADD_CUSTOM_COMMAND(TARGET AuthoringTool POST_BUILD
+ COMMAND ${CMAKE_COMMAND} -E copy_if_different
+ ${APEXSDK_DLLS} ${PHYSXSDK_DLLS} ${PXSHAREDSDK_DLLS}
+ ${BL_EXE_OUTPUT_DIR}
+)
+