aboutsummaryrefslogtreecommitdiff
path: root/tools/compiler
diff options
context:
space:
mode:
authorBryan Galdrikian <[email protected]>2017-02-24 09:32:20 -0800
committerBryan Galdrikian <[email protected]>2017-02-24 09:32:20 -0800
commite1bf674c16e3c8472b29574159c789cd3f0c64e0 (patch)
tree9f0cfce09c71a2c27ff19589fcad6cd83504477c /tools/compiler
parentfirst commit (diff)
downloadblast-e1bf674c16e3c8472b29574159c789cd3f0c64e0.tar.xz
blast-e1bf674c16e3c8472b29574159c789cd3f0c64e0.zip
Updating to [email protected] and [email protected] with a new directory structure.
NvBlast folder is gone, files have been moved to top level directory. README is changed to reflect this.
Diffstat (limited to 'tools/compiler')
-rw-r--r--tools/compiler/cmake/ApexImporter.cmake82
-rw-r--r--tools/compiler/cmake/AuthoringTool.cmake98
-rw-r--r--tools/compiler/cmake/DataConverter.cmake60
-rw-r--r--tools/compiler/cmake/Windows/ApexImporter.cmake22
-rw-r--r--tools/compiler/cmake/Windows/AuthoringTool.cmake22
-rw-r--r--tools/compiler/cmake/Windows/CMakeLists.txt58
-rw-r--r--tools/compiler/cmake/Windows/DataConverter.cmake22
7 files changed, 364 insertions, 0 deletions
diff --git a/tools/compiler/cmake/ApexImporter.cmake b/tools/compiler/cmake/ApexImporter.cmake
new file mode 100644
index 0000000..13a691e
--- /dev/null
+++ b/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}
+)
diff --git a/tools/compiler/cmake/AuthoringTool.cmake b/tools/compiler/cmake/AuthoringTool.cmake
new file mode 100644
index 0000000..3ba77d8
--- /dev/null
+++ b/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}
+)
+
diff --git a/tools/compiler/cmake/DataConverter.cmake b/tools/compiler/cmake/DataConverter.cmake
new file mode 100644
index 0000000..3239f61
--- /dev/null
+++ b/tools/compiler/cmake/DataConverter.cmake
@@ -0,0 +1,60 @@
+#
+# Build DataConverter common
+#
+
+SET(DATACONVERTER_SOURCE_DIR ${PROJECT_SOURCE_DIR}/DataConverter/src)
+
+FIND_PACKAGE(tclap $ENV{PM_tclap_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}/DataConverter.cmake)
+
+SET(COMMON_FILES
+ ${DATACONVERTER_PLATFORM_COMMON_FILES}
+
+ ${DATACONVERTER_SOURCE_DIR}/Main.cpp
+)
+
+ADD_EXECUTABLE(DataConverter
+ ${COMMON_FILES}
+)
+
+set_target_properties(DataConverter
+ 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(DataConverter
+ PRIVATE ${DATACONVERTER_PLATFORM_INCLUDES}
+ PRIVATE ${BLAST_ROOT_DIR}/source/common
+
+ PRIVATE ${TCLAP_INCLUDE_DIRS}
+)
+
+TARGET_COMPILE_DEFINITIONS(DataConverter
+ PRIVATE ${DATACONVERTER_COMPILE_DEFS}
+)
+
+SET_TARGET_PROPERTIES(DataConverter PROPERTIES
+ PDB_NAME_DEBUG "DataConverter${CMAKE_DEBUG_POSTFIX}"
+ PDB_NAME_CHECKED "DataConverter${CMAKE_CHECKED_POSTFIX}"
+ PDB_NAME_PROFILE "DataConverter${CMAKE_PROFILE_POSTFIX}"
+ PDB_NAME_RELEASE "DataConverter${CMAKE_RELEASE_POSTFIX}"
+)
+
+# Do final direct sets after the target has been defined
+TARGET_LINK_LIBRARIES(DataConverter NvBlast NvBlastExtConverterLL)
+
+
+ADD_CUSTOM_COMMAND(TARGET DataConverter POST_BUILD
+ COMMAND ${CMAKE_COMMAND} -E copy_if_different
+ ${PHYSXSDK_DLLS} ${PXSHAREDSDK_DLLS}
+ ${BL_EXE_OUTPUT_DIR}
+)
diff --git a/tools/compiler/cmake/Windows/ApexImporter.cmake b/tools/compiler/cmake/Windows/ApexImporter.cmake
new file mode 100644
index 0000000..f6ad72b
--- /dev/null
+++ b/tools/compiler/cmake/Windows/ApexImporter.cmake
@@ -0,0 +1,22 @@
+#
+# Build ApexImporter Windows
+#
+
+SET(APEXIMPORTER_PLATFORM_COMMON_FILES
+)
+
+SET(APEXIMPORTER_PLATFORM_INCLUDES
+)
+
+SET(APEXIMPORTER_COMPILE_DEFS
+ # Common to all configurations
+ ${BLASTTOOLS_SLN_COMPILE_DEFS};_CONSOLE
+
+ $<$<CONFIG:debug>:${BLASTTOOLS_SLN_DEBUG_COMPILE_DEFS}>
+ $<$<CONFIG:checked>:${BLASTTOOLS_SLN_CHECKED_COMPILE_DEFS}>
+ $<$<CONFIG:profile>:${BLASTTOOLS_SLN_PROFILE_COMPILE_DEFS}>
+ $<$<CONFIG:release>:${BLASTTOOLS_SLN_RELEASE_COMPILE_DEFS}>
+)
+
+#TARGET_LINK_LIBRARIES(NvBlast PUBLIC ${NVTOOLSEXT_LIBRARIES})
+#SET_TARGET_PROPERTIES(NvBlast PROPERTIES LINK_FLAGS "/MAP" )
diff --git a/tools/compiler/cmake/Windows/AuthoringTool.cmake b/tools/compiler/cmake/Windows/AuthoringTool.cmake
new file mode 100644
index 0000000..f981c1f
--- /dev/null
+++ b/tools/compiler/cmake/Windows/AuthoringTool.cmake
@@ -0,0 +1,22 @@
+#
+# Build AuthoringTool Windows
+#
+
+SET(AUTHORTINGTOOL_PLATFORM_COMMON_FILES
+)
+
+SET(AUTHORTINGTOOL_PLATFORM_INCLUDES
+)
+
+SET(AUTHORTINGTOOL_COMPILE_DEFS
+ # Common to all configurations
+ ${BLASTTOOLS_SLN_COMPILE_DEFS};_CONSOLE
+
+ $<$<CONFIG:debug>:${BLASTTOOLS_SLN_DEBUG_COMPILE_DEFS}>
+ $<$<CONFIG:checked>:${BLASTTOOLS_SLN_CHECKED_COMPILE_DEFS}>
+ $<$<CONFIG:profile>:${BLASTTOOLS_SLN_PROFILE_COMPILE_DEFS}>
+ $<$<CONFIG:release>:${BLASTTOOLS_SLN_RELEASE_COMPILE_DEFS}>
+)
+
+#TARGET_LINK_LIBRARIES(NvBlast PUBLIC ${NVTOOLSEXT_LIBRARIES})
+#SET_TARGET_PROPERTIES(NvBlast PROPERTIES LINK_FLAGS "/MAP" )
diff --git a/tools/compiler/cmake/Windows/CMakeLists.txt b/tools/compiler/cmake/Windows/CMakeLists.txt
new file mode 100644
index 0000000..541a209
--- /dev/null
+++ b/tools/compiler/cmake/Windows/CMakeLists.txt
@@ -0,0 +1,58 @@
+#Platform specific compile flags and project includes
+
+SET(CMAKE_CXX_FLAGS "/EHsc /GR- /GF /MP /Gy /d2Zi+ /errorReport:prompt /fp:fast /Gd /Gm- /GS- /nologo /W4 /WX /Zc:forScope /Zc:inline /Zc:wchar_t /Zi")
+
+# Are we using the static or dynamic RT library? Whatever we use, it needs to be the same in any dependencies
+# we pull in or we're potentially having mismatch issues.
+IF(STATIC_WINCRT)
+ SET(WINCRT_NDEBUG "/MT")
+ SET(WINCRT_DEBUG "/MTd")
+ELSE()
+ SET(WINCRT_NDEBUG "/MD")
+ SET(WINCRT_DEBUG "/MDd")
+ENDIF()
+
+SET(CMAKE_CXX_FLAGS_DEBUG "/Od /RTCsu ${WINCRT_DEBUG}")
+SET(CMAKE_CXX_FLAGS_CHECKED "/Ox ${WINCRT_NDEBUG}")
+SET(CMAKE_CXX_FLAGS_PROFILE "/Ox ${WINCRT_NDEBUG}")
+SET(CMAKE_CXX_FLAGS_RELEASE "/Ox ${WINCRT_NDEBUG}")
+
+# Build PDBs for all configurations
+SET(CMAKE_SHARED_LINKER_FLAGS "/DEBUG")
+
+IF(CMAKE_CL_64)
+ ADD_DEFINITIONS(-DWIN64)
+ENDIF(CMAKE_CL_64)
+
+SET(BLASTTOOLS_SLN_COMPILE_DEFS WIN32;WIN64;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;)
+
+SET(BLASTTOOLS_SLN_DEBUG_COMPILE_DEFS _DEBUG;NV_DEBUG=1;)
+SET(BLASTTOOLS_SLN_CHECKED_COMPILE_DEFS NDEBUG;NV_CHECKED=1;)
+SET(BLASTTOOLS_SLN_PROFILE_COMPILE_DEFS NDEBUG;NV_PROFILE=1;)
+SET(BLASTTOOLS_SLN_RELEASE_COMPILE_DEFS NDEBUG;)
+
+IF(CMAKE_CL_64)
+ SET(LIBPATH_SUFFIX "x64")
+ELSE(CMAKE_CL_64)
+ SET(LIBPATH_SUFFIX "x86")
+ENDIF(CMAKE_CL_64)
+
+SET(CMAKE_DEBUG_POSTFIX "${CMAKE_DEBUG_POSTFIX}_${LIBPATH_SUFFIX}")
+SET(CMAKE_PROFILE_POSTFIX "${CMAKE_PROFILE_POSTFIX}_${LIBPATH_SUFFIX}")
+SET(CMAKE_CHECKED_POSTFIX "${CMAKE_CHECKED_POSTFIX}_${LIBPATH_SUFFIX}")
+SET(CMAKE_RELEASE_POSTFIX "${CMAKE_RELEASE_POSTFIX}_${LIBPATH_SUFFIX}")
+
+# Should this be here or in the common part?
+#ADD_SUBDIRECTORY(${BLAST_ROOT_DIR}/sdk "${CMAKE_CURRENT_BINARY_DIR}/blast_bin")
+
+
+# Include all of the projects
+INCLUDE(${PROJECT_CMAKE_FILES_DIR}/ApexImporter.cmake)
+INCLUDE(${PROJECT_CMAKE_FILES_DIR}/DataConverter.cmake)
+
+# Exclude AuthoringTool because VC12 can't handle Capn Proto.
+if(CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 19.0.0.0)
+ INCLUDE(${PROJECT_CMAKE_FILES_DIR}/AuthoringTool.cmake)
+else()
+ SET(SERIALIZATION_INCLUDED 0)
+endif()
diff --git a/tools/compiler/cmake/Windows/DataConverter.cmake b/tools/compiler/cmake/Windows/DataConverter.cmake
new file mode 100644
index 0000000..a0c5316
--- /dev/null
+++ b/tools/compiler/cmake/Windows/DataConverter.cmake
@@ -0,0 +1,22 @@
+#
+# Build DataConverter Windows
+#
+
+SET(DATACONVERTER_PLATFORM_COMMON_FILES
+)
+
+SET(DATACONVERTER_PLATFORM_INCLUDES
+)
+
+SET(DATACONVERTER_COMPILE_DEFS
+ # Common to all configurations
+ ${BLASTTOOLS_SLN_COMPILE_DEFS};_CONSOLE
+
+ $<$<CONFIG:debug>:${BLASTTOOLS_SLN_DEBUG_COMPILE_DEFS}>
+ $<$<CONFIG:checked>:${BLASTTOOLS_SLN_CHECKED_COMPILE_DEFS}>
+ $<$<CONFIG:profile>:${BLASTTOOLS_SLN_PROFILE_COMPILE_DEFS}>
+ $<$<CONFIG:release>:${BLASTTOOLS_SLN_RELEASE_COMPILE_DEFS}>
+)
+
+#TARGET_LINK_LIBRARIES(NvBlast PUBLIC ${NVTOOLSEXT_LIBRARIES})
+#SET_TARGET_PROPERTIES(NvBlast PROPERTIES LINK_FLAGS "/MAP" )