diff options
| author | mtamis <[email protected]> | 2017-02-28 18:24:59 +0100 |
|---|---|---|
| committer | mtamis <[email protected]> | 2017-02-28 18:24:59 +0100 |
| commit | 5581909a4d19db97304449f66404ff99a0429d3f (patch) | |
| tree | a90f7eb85c095a8aba45cf5e909c82c1cdbed77d /NvCloth/samples/compiler | |
| parent | Fix cmake visual studio project generation (locate_gw_root.bat) (diff) | |
| download | nvcloth-5581909a4d19db97304449f66404ff99a0429d3f.tar.xz nvcloth-5581909a4d19db97304449f66404ff99a0429d3f.zip | |
Add visual samples.
Diffstat (limited to 'NvCloth/samples/compiler')
4 files changed, 327 insertions, 0 deletions
diff --git a/NvCloth/samples/compiler/cmake/SampleBase.cmake b/NvCloth/samples/compiler/cmake/SampleBase.cmake new file mode 100644 index 0000000..1b00d8d --- /dev/null +++ b/NvCloth/samples/compiler/cmake/SampleBase.cmake @@ -0,0 +1,193 @@ +# +# Build SampleBase Common +# + +MESSAGE("SampleBase.cmake [begin]") + +MESSAGE("CMAKE_MODULE_PATH: " ${CMAKE_MODULE_PATH}) + +SET(SB_SOURCE_DIR ${PROJECT_SOURCE_DIR}/SampleBase) +SET(SB_CORE_SOURCE_DIR ${SB_SOURCE_DIR}/core) +SET(SB_RENDERER_SOURCE_DIR ${SB_SOURCE_DIR}/renderer) +SET(SB_SCENE_SOURCE_DIR ${SB_SOURCE_DIR}/scene) +SET(SB_UI_SOURCE_DIR ${SB_SOURCE_DIR}/ui) +SET(SB_UTILS_SOURCE_DIR ${SB_SOURCE_DIR}/utils) + +FIND_PACKAGE(PxShared "1.0.21467209.1" REQUIRED) +FIND_PACKAGE(DXUT "9.15.2016.1" REQUIRED) +FIND_PACKAGE(DirectXTex "10.5.2016.2" REQUIRED) +FIND_PACKAGE(imgui "1.49" REQUIRED) +#FIND_PACKAGE(tinyObjLoader $ENV{PM_tinyObjLoader_VERSION} REQUIRED) +#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}/SampleBase.cmake) + +SET(CORE_FILES + ${SB_CORE_SOURCE_DIR}/Application.cpp + ${SB_CORE_SOURCE_DIR}/Application.h + ${SB_CORE_SOURCE_DIR}/DeviceManager.cpp + ${SB_CORE_SOURCE_DIR}/DeviceManager.h + ${SB_CORE_SOURCE_DIR}/SampleController.cpp + ${SB_CORE_SOURCE_DIR}/SampleController.h + ${SB_CORE_SOURCE_DIR}/SampleManager.cpp + ${SB_CORE_SOURCE_DIR}/SampleManager.h +) + +SET(RENDERER_FILES + ${SB_RENDERER_SOURCE_DIR}/ConvexRenderMesh.cpp + ${SB_RENDERER_SOURCE_DIR}/ConvexRenderMesh.h + ${SB_RENDERER_SOURCE_DIR}/CustomRenderMesh.cpp + ${SB_RENDERER_SOURCE_DIR}/CustomRenderMesh.h + ${SB_RENDERER_SOURCE_DIR}/ClothRenderMesh.h + ${SB_RENDERER_SOURCE_DIR}/ClothRenderMesh.cpp + ${SB_RENDERER_SOURCE_DIR}/DebugRenderBuffer.h + ${SB_RENDERER_SOURCE_DIR}/Mesh.cpp + ${SB_RENDERER_SOURCE_DIR}/Mesh.h + ${SB_RENDERER_SOURCE_DIR}/PrimitiveRenderMesh.cpp + ${SB_RENDERER_SOURCE_DIR}/PrimitiveRenderMesh.h + ${SB_RENDERER_SOURCE_DIR}/PxPhysXCommonConfig.h + ${SB_RENDERER_SOURCE_DIR}/PxRenderBuffer.h + ${SB_RENDERER_SOURCE_DIR}/Renderable.cpp + ${SB_RENDERER_SOURCE_DIR}/Renderable.h + ${SB_RENDERER_SOURCE_DIR}/Renderer.cpp + ${SB_RENDERER_SOURCE_DIR}/Renderer.h + ${SB_RENDERER_SOURCE_DIR}/RendererHBAO.cpp + ${SB_RENDERER_SOURCE_DIR}/RendererHBAO.h + ${SB_RENDERER_SOURCE_DIR}/RendererShadow.cpp + ${SB_RENDERER_SOURCE_DIR}/RendererShadow.h + ${SB_RENDERER_SOURCE_DIR}/RenderMaterial.cpp + ${SB_RENDERER_SOURCE_DIR}/RenderMaterial.h + ${SB_RENDERER_SOURCE_DIR}/RenderUtils.h + ${SB_RENDERER_SOURCE_DIR}/ResourceManager.cpp + ${SB_RENDERER_SOURCE_DIR}/ResourceManager.h + ${SB_RENDERER_SOURCE_DIR}/ShaderUtils.h + ${SB_RENDERER_SOURCE_DIR}/SkinnedRenderMesh.cpp + ${SB_RENDERER_SOURCE_DIR}/SkinnedRenderMesh.h +) + +SET(SCENE_FILES + ${SB_SCENE_SOURCE_DIR}/SceneController.cpp + ${SB_SCENE_SOURCE_DIR}/SceneController.h + ${SB_SCENE_SOURCE_DIR}/Scene.cpp + ${SB_SCENE_SOURCE_DIR}/Scene.h +) + +SET(SCENES_FILES + ${SB_SCENE_SOURCE_DIR}/scenes/SimpleScene.h + ${SB_SCENE_SOURCE_DIR}/scenes/SimpleScene.cpp + ${SB_SCENE_SOURCE_DIR}/scenes/WindScene.h + ${SB_SCENE_SOURCE_DIR}/scenes/WindScene.cpp + ${SB_SCENE_SOURCE_DIR}/scenes/TetherScene.h + ${SB_SCENE_SOURCE_DIR}/scenes/TetherScene.cpp + ${SB_SCENE_SOURCE_DIR}/scenes/FrictionScene.h + ${SB_SCENE_SOURCE_DIR}/scenes/FrictionScene.cpp + ${SB_SCENE_SOURCE_DIR}/scenes/FreeFallScene.h + ${SB_SCENE_SOURCE_DIR}/scenes/FreeFallScene.cpp +) + +SET(UI_FILES + ${SB_UI_SOURCE_DIR}/CommonUIController.cpp + ${SB_UI_SOURCE_DIR}/CommonUIController.h + ${SB_UI_SOURCE_DIR}/imgui_impl_dx11.cpp + ${SB_UI_SOURCE_DIR}/imgui_impl_dx11.h +) + +SET(UTIL_FILES + ${SB_UTILS_SOURCE_DIR}/SampleProfiler.cpp + ${SB_UTILS_SOURCE_DIR}/SampleProfiler.h + ${SB_UTILS_SOURCE_DIR}/SampleTime.h + ${SB_UTILS_SOURCE_DIR}/UIHelpers.h + ${SB_UTILS_SOURCE_DIR}/Utils.cpp + ${SB_UTILS_SOURCE_DIR}/Utils.h + ${SB_UTILS_SOURCE_DIR}/ClothMeshGenerator.cpp + ${SB_UTILS_SOURCE_DIR}/ClothMeshGenerator.h + ${SB_UTILS_SOURCE_DIR}/CallbackImplementations.cpp + ${SB_UTILS_SOURCE_DIR}/CallbackImplementations.h + ${SB_UTILS_SOURCE_DIR}/JobManager.cpp + ${SB_UTILS_SOURCE_DIR}/JobManager.h +) + +SET(ROOT_FILES + ${SB_SOURCE_DIR}/Main.cpp + ${SB_SOURCE_DIR}/Sample.h +) + +ADD_EXECUTABLE(SampleBase + ${CORE_FILES} + ${RENDERER_FILES} + ${SCENE_FILES} + ${SCENES_FILES} + + ${UI_FILES} + ${UTIL_FILES} + ${ROOT_FILES} + + + ${IMGUI_SOURCE_FILES} +) + +SOURCE_GROUP("Source" FILES ${ROOT_FILES}) + +SOURCE_GROUP("Source\\core" FILES ${CORE_FILES}) +SOURCE_GROUP("Source\\imgui" FILES ${IMGUI_SOURCE_FILES}) +SOURCE_GROUP("Source\\renderer" FILES ${RENDERER_FILES}) +SOURCE_GROUP("Source\\scene" FILES ${SCENE_FILES}) +SOURCE_GROUP("Source\\scene\\scenes" FILES ${SCENES_FILES}) +SOURCE_GROUP("Source\\ui" FILES ${UI_FILES}) +SOURCE_GROUP("Source\\utils" FILES ${UTIL_FILES}) + +# Target specific compile options + +TARGET_INCLUDE_DIRECTORIES(SampleBase + PRIVATE ${SAMPLEBASE_PLATFORM_INCLUDES} + + PRIVATE ${DIRECTXTEX_INCLUDE_DIRS} + PRIVATE ${DXUT_INCLUDE_DIRS} + + PRIVATE ${NVCLOTH_ROOT_DIR}/samples/external/shadow_lib + PRIVATE ${NVCLOTH_ROOT_DIR}/samples/external/hbao + + PRIVATE ${IMGUI_INCLUDE_DIRS} + + PRIVATE ${SB_SOURCE_DIR} + PRIVATE ${SB_SOURCE_DIR}/core + PRIVATE ${SB_SOURCE_DIR}/renderer + PRIVATE ${SB_SOURCE_DIR}/scene + PRIVATE ${SB_SOURCE_DIR}/ui + PRIVATE ${SB_SOURCE_DIR}/utils + + PRIVATE ${PXSHARED_ROOT_DIR}/include/foundation + PRIVATE ${PXSHARED_ROOT_DIR}/include + PRIVATE ${PXSHARED_ROOT_DIR}/src/foundation/include + + PRIVATE ${NVCLOTH_ROOT_DIR}/include + PRIVATE ${NVCLOTH_ROOT_DIR}/extensions/include +) + +TARGET_COMPILE_DEFINITIONS(SampleBase + PRIVATE ${SAMPLEBASE_COMPILE_DEFS} +) + +SET_TARGET_PROPERTIES(SampleBase PROPERTIES + COMPILE_PDB_NAME_DEBUG "SampleBase${CMAKE_DEBUG_POSTFIX}" + COMPILE_PDB_NAME_CHECKED "SampleBase${CMAKE_CHECKED_POSTFIX}" + COMPILE_PDB_NAME_PROFILE "SampleBase${CMAKE_PROFILE_POSTFIX}" + COMPILE_PDB_NAME_RELEASE "SampleBase${CMAKE_RELEASE_POSTFIX}" +) + +TARGET_COMPILE_OPTIONS(SampleBase PRIVATE /wd4005 /wd4244) + +# Do final direct sets after the target has been defined +TARGET_LINK_LIBRARIES(SampleBase + PUBLIC d3dcompiler.lib d3d11.lib dxgi.lib comctl32.lib + PUBLIC ${HBAO_LIB} ${SHADOW_LIB} ${DXUT_LIBRARIES} ${DIRECTXTEX_LIBRARIES}) + +TARGET_LINK_LIBRARIES(SampleBase PUBLIC PxFoundation) +TARGET_LINK_LIBRARIES(SampleBase PUBLIC NvCloth) +TARGET_LINK_LIBRARIES(SampleBase PUBLIC ${CUDA_CUDA_LIBRARY}) + +SET_TARGET_PROPERTIES(SampleBase PROPERTIES LINK_FLAGS ${SAMPLEBASE_LINK_FLAGS}) + +include(${PROJECT_CMAKE_FILES_DIR}/${TARGET_BUILD_PLATFORM}/SampleBase-AT.cmake OPTIONAL) +MESSAGE("SampleBase.cmake [end]")
\ No newline at end of file diff --git a/NvCloth/samples/compiler/cmake/windows/CMakeLists.txt b/NvCloth/samples/compiler/cmake/windows/CMakeLists.txt new file mode 100644 index 0000000..a222309 --- /dev/null +++ b/NvCloth/samples/compiler/cmake/windows/CMakeLists.txt @@ -0,0 +1,82 @@ +#Platform specific compile flags and project includes + +SET(GW_DEPS_ROOT $ENV{GW_DEPS_ROOT}) + +SET(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH}; $ENV{GW_DEPS_ROOT}/sw/physx/tools/CMakeModules) + +IF(EXISTS $ENV{GW_DEPS_ROOT}/Externals/CMakeModules) + SET(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH}; $ENV{GW_DEPS_ROOT}/Externals/CMakeModules) +ENDIF() + + +IF(EXISTS $ENV{GW_DEPS_ROOT}/Externals/CMakeModules) + SET(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH}; $ENV{GW_DEPS_ROOT}/Externals/CMakeModules) +ENDIF() + +SET(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH}; "${CMAKE_CURRENT_SOURCE_DIR}/..") +SET(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH}; "${CMAKE_CURRENT_SOURCE_DIR}/external/CMakeModules") +MESSAGE("CMAKE_MODULE_PATH: " ${CMAKE_MODULE_PATH}) + +#NOTE: Warnings lowered on the sample projects as it's got a lot of warnings. Defines below hide more. +SET(CMAKE_CXX_FLAGS "/GR- /GF /MP /Gy /EHsc /d2Zi+ /errorReport:prompt /fp:fast /Gd /Gm- /GS- /nologo /W3 /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(SAMPLES_SLN_COMPILE_DEFS _UNICODE;UNICODE;WIN32;WIN64;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;_ALLOW_ITERATOR_DEBUG_LEVEL_MISMATCH;_ALLOW_RUNTIME_LIBRARY_MISMATCH;__GFSDK_DX11__;) +#NvBlastExt doesn't have the _CONSOLE flag + +SET(SAMPLES_SLN_DEBUG_COMPILE_DEFS _DEBUG;NV_DEBUG=1;) +SET(SAMPLES_SLN_CHECKED_COMPILE_DEFS NDEBUG;NV_CHECKED=1;) +SET(SAMPLES_SLN_PROFILE_COMPILE_DEFS NDEBUG;NV_PROFILE=1;) +SET(SAMPLES_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}") + +SET(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH}; "${CMAKE_CURRENT_SOURCE_DIR}/../../../..") + +SET(PX_SELECT_COMPONENTS PxFoundation) +FIND_PACKAGE(PxShared REQUIRED) +FIND_PACKAGE(NvCloth REQUIRED) + +# Include the PxShared-exports.cmake file that PxShared created. There's other ways to do this, but there's a bunch of issues with it in a CI environment +# such as - we don't want to be installing any built artifacts on this server, etc. So for now we hack it. + +# Add PxShared as a dependency so that we can use project references +#ADD_SUBDIRECTORY(${PXSHARED_ROOT_DIR}/src/compiler/cmake/windows "${CMAKE_CURRENT_BINARY_DIR}/pxshared_bin") +#MESSAGE("NVCLOTH_ROOT_DIR = ${NVCLOTH_ROOT_DIR}") +ADD_SUBDIRECTORY(${NVCLOTH_ROOT_DIR}/compiler/cmake/windows "${CMAKE_CURRENT_BINARY_DIR}/NvCloth_bin") + + +# Include all of the projects +INCLUDE(${PROJECT_CMAKE_FILES_DIR}/SampleBase.cmake) + + diff --git a/NvCloth/samples/compiler/cmake/windows/SampleBase-AT.cmake b/NvCloth/samples/compiler/cmake/windows/SampleBase-AT.cmake new file mode 100644 index 0000000..1b40447 --- /dev/null +++ b/NvCloth/samples/compiler/cmake/windows/SampleBase-AT.cmake @@ -0,0 +1,7 @@ +# Copy the dlls from the deps + +ADD_CUSTOM_COMMAND(TARGET SampleBase POST_BUILD + COMMAND ${CMAKE_COMMAND} -E copy_if_different + ${SHADOW_DLLS} ${HBAO_DLLS} ${D3DCOMPILER_DLL} + ${BL_EXE_OUTPUT_DIR} +) diff --git a/NvCloth/samples/compiler/cmake/windows/SampleBase.cmake b/NvCloth/samples/compiler/cmake/windows/SampleBase.cmake new file mode 100644 index 0000000..5cabf1e --- /dev/null +++ b/NvCloth/samples/compiler/cmake/windows/SampleBase.cmake @@ -0,0 +1,45 @@ +# +# Build SampleBase Windows +# + +FIND_PACKAGE(CUDA 8 REQUIRED) + +SET(SAMPLEBASE_PLATFORM_COMMON_FILES +) + +SET(SAMPLEBASE_PLATFORM_INCLUDES ${CUDA_INCLUDE_DIRS} +) + +SET(SAMPLEBASE_COMPILE_DEFS + # Common to all configurations + ${SAMPLES_SLN_COMPILE_DEFS} + + $<$<CONFIG:debug>:${SAMPLES_SLN_DEBUG_COMPILE_DEFS}> + $<$<CONFIG:checked>:${SAMPLES_SLN_CHECKED_COMPILE_DEFS}> + $<$<CONFIG:profile>:${SAMPLES_SLN_PROFILE_COMPILE_DEFS}> + $<$<CONFIG:release>:${SAMPLES_SLN_RELEASE_COMPILE_DEFS}> +) + +SET(SAMPLEBASE_LINK_FLAGS "/SUBSYSTEM:WINDOWS") + +SET(SAMPLEBASE_ADDITIONAL_DLLS "") + +#TODO: Move this to an external dep +if (CMAKE_CL_64) + SET(SHADOW_LIB ${NVCLOTH_ROOT_DIR}/samples/external/shadow_lib/GFSDK_ShadowLib_DX11.win64.lib) + SET(SHADOW_DLLS ${NVCLOTH_ROOT_DIR}/samples/external/shadow_lib/GFSDK_ShadowLib_DX11.win64.dll) + + SET(HBAO_LIB ${NVCLOTH_ROOT_DIR}/samples/external/hbao/GFSDK_SSAO_D3D11.win64.lib) + SET(HBAO_DLLS ${NVCLOTH_ROOT_DIR}/samples/external/hbao/GFSDK_SSAO_D3D11.win64.dll) + + SET(D3DCOMPILER_DLL "\"$(VC_ExecutablePath_x64_x64)/d3dcompiler_47.dll\"") +else() + SET(SHADOW_LIB ${NVCLOTH_ROOT_DIR}/samples/external/shadow_lib/GFSDK_ShadowLib_DX11.win32.lib) + SET(SHADOW_DLLS ${NVCLOTH_ROOT_DIR}/samples/external/shadow_lib/GFSDK_ShadowLib_DX11.win32.dll) + + SET(HBAO_LIB ${NVCLOTH_ROOT_DIR}/samples/external/hbao/GFSDK_SSAO_D3D11.win32.lib) + SET(HBAO_DLLS ${NVCLOTH_ROOT_DIR}/samples/external/hbao/GFSDK_SSAO_D3D11.win32.dll) + + SET(D3DCOMPILER_DLL "\"$(VC_ExecutablePath_x86_x86)/d3dcompiler_47.dll\"") +endif() + |