aboutsummaryrefslogtreecommitdiff
path: root/NvCloth/samples/external/CMakeModules
diff options
context:
space:
mode:
authormtamis <[email protected]>2017-02-28 18:24:59 +0100
committermtamis <[email protected]>2017-02-28 18:24:59 +0100
commit5581909a4d19db97304449f66404ff99a0429d3f (patch)
treea90f7eb85c095a8aba45cf5e909c82c1cdbed77d /NvCloth/samples/external/CMakeModules
parentFix cmake visual studio project generation (locate_gw_root.bat) (diff)
downloadnvcloth-5581909a4d19db97304449f66404ff99a0429d3f.tar.xz
nvcloth-5581909a4d19db97304449f66404ff99a0429d3f.zip
Add visual samples.
Diffstat (limited to 'NvCloth/samples/external/CMakeModules')
-rw-r--r--NvCloth/samples/external/CMakeModules/FindDXUT.cmake82
-rw-r--r--NvCloth/samples/external/CMakeModules/FindDirectXTex.cmake66
-rw-r--r--NvCloth/samples/external/CMakeModules/FindPxShared.cmake20
-rw-r--r--NvCloth/samples/external/CMakeModules/Findimgui.cmake44
-rw-r--r--NvCloth/samples/external/CMakeModules/FindnvToolsExt.cmake65
-rw-r--r--NvCloth/samples/external/CMakeModules/SetOutputPaths.cmake95
6 files changed, 372 insertions, 0 deletions
diff --git a/NvCloth/samples/external/CMakeModules/FindDXUT.cmake b/NvCloth/samples/external/CMakeModules/FindDXUT.cmake
new file mode 100644
index 0000000..34cd759
--- /dev/null
+++ b/NvCloth/samples/external/CMakeModules/FindDXUT.cmake
@@ -0,0 +1,82 @@
+# - Try to find DXUT SDK
+# - Sets DXUT_LIBRARIES - list of the libraries found
+# - Sets DXUT_INCLUDE_DIRS
+
+include(FindPackageHandleStandardArgs)
+
+# Find the includes
+
+# TODO: Do the version stuff properly!
+find_path(DXUTSDK_PATH Core/DXUT.h
+ PATHS ${GW_DEPS_ROOT}/DXUT/${DXUT_FIND_VERSION}
+ ${NVCLOTH_ROOT_DIR}/samples/external/DXUT/${DXUT_FIND_VERSION}
+)
+
+# If the project pulling in this dependency needs the static crt, then append that to the path.
+
+if (STATIC_WINCRT)
+ SET(DXUTSDK_CRT_FOLDER "staticcrt")
+else()
+ SET(DXUTSDK_CRT_FOLDER "dynamiccrt")
+endif()
+
+if (CMAKE_CL_64)
+ SET(DXUTSDK_ARCH_FOLDER "x64")
+else()
+ SET(DXUTSDK_ARCH_FOLDER "Win32")
+endif()
+
+if (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 18.0.0.0 AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS 19.0.0.0)
+ SET(VS_STR "vs2013")
+elseif(CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 19.0.0.0)
+ SET(VS_STR "vs2015")
+else()
+ MESSAGE(FATAL_ERROR "Failed to find compatible FBXSDK - Only supporting VS2013 and VS2015")
+endif()
+
+
+SET(CORE_LIB_PATH ${DXUTSDK_PATH}/Core/Bin/${DXUTSDK_CRT_FOLDER}/${VS_STR}/${DXUTSDK_ARCH_FOLDER}/)
+SET(OPT_LIB_PATH ${DXUTSDK_PATH}/Optional/Bin/${DXUTSDK_CRT_FOLDER}/${VS_STR}/${DXUTSDK_ARCH_FOLDER}/)
+
+find_library(DXUT_LIB
+ NAMES DXUT
+ PATHS ${CORE_LIB_PATH}/Release
+)
+find_library(DXUT_LIB_DEBUG
+ NAMES DXUT
+ PATHS ${CORE_LIB_PATH}/Debug
+)
+
+find_library(DXUTOPT_LIB
+ NAMES DXUTOpt
+ PATHS ${OPT_LIB_PATH}/Release
+)
+
+find_library(DXUTOPT_LIB_DEBUG
+ NAMES DXUTOpt
+ PATHS ${OPT_LIB_PATH}/Debug
+)
+
+MESSAGE("DXUT: ${DXUT_LIB}")
+
+FIND_PACKAGE_HANDLE_STANDARD_ARGS(DXUTSDK
+ DEFAULT_MSG
+ DXUTSDK_PATH
+
+ DXUT_LIB
+ DXUTOPT_LIB
+
+ DXUT_LIB_DEBUG
+ DXUTOPT_LIB_DEBUG
+)
+
+if (DXUTSDK_FOUND)
+ # NOTE: This include list is way too long and reaches into too many internals.
+ # Also may not be good enough for all users.
+ SET(DXUT_INCLUDE_DIRS
+ ${DXUTSDK_PATH}/Core
+ ${DXUTSDK_PATH}/Optional
+ )
+
+ SET(DXUT_LIBRARIES optimized ${DXUT_LIB} debug ${DXUT_LIB_DEBUG} optimized ${DXUTOPT_LIB} debug ${DXUTOPT_LIB_DEBUG})
+endif()
diff --git a/NvCloth/samples/external/CMakeModules/FindDirectXTex.cmake b/NvCloth/samples/external/CMakeModules/FindDirectXTex.cmake
new file mode 100644
index 0000000..4332a1d
--- /dev/null
+++ b/NvCloth/samples/external/CMakeModules/FindDirectXTex.cmake
@@ -0,0 +1,66 @@
+# - Try to find DirectXTex SDK
+# - Sets DIRECTXTEX_LIBRARIES - list of the libraries found
+# - Sets DIRECTXTEX_INCLUDE_DIRS
+
+include(FindPackageHandleStandardArgs)
+
+# Find the includes
+
+# TODO: Do the version stuff properly!
+find_path(DIRECTXTEXSDK_PATH include/DirectXTex.h
+ PATHS ${GW_DEPS_ROOT}/DirectXTex/${DirectXTex_FIND_VERSION}
+ ${NVCLOTH_ROOT_DIR}/samples/external/DirectXTex/${DirectXTex_FIND_VERSION}
+)
+
+# If the project pulling in this dependency needs the static crt, then append that to the path.
+
+if (STATIC_WINCRT)
+ SET(DIRECTXTEXSDK_CRT_FOLDER "staticcrt")
+else()
+ SET(DIRECTXTEXSDK_CRT_FOLDER "dynamiccrt")
+endif()
+
+if (CMAKE_CL_64)
+ SET(DIRECTXTEXSDK_ARCH_FOLDER "x64")
+else()
+ SET(DIRECTXTEXSDK_ARCH_FOLDER "Win32")
+endif()
+
+if (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 18.0.0.0 AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS 19.0.0.0)
+ SET(VS_STR "vs2013")
+elseif(CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 19.0.0.0)
+ SET(VS_STR "vs2015")
+else()
+ MESSAGE(FATAL_ERROR "Failed to find compatible FBXSDK - Only supporting VS2013 and VS2015")
+endif()
+
+
+SET(LIB_PATH ${DIRECTXTEXSDK_PATH}/bin/${DIRECTXTEXSDK_CRT_FOLDER}/${VS_STR}/${DIRECTXTEXSDK_ARCH_FOLDER}/)
+
+find_library(DIRECTXTEX_LIB
+ NAMES DirectXTex
+ PATHS ${LIB_PATH}/Release
+)
+find_library(DIRECTXTEX_LIB_DEBUG
+ NAMES DirectXTex
+ PATHS ${LIB_PATH}/Debug
+)
+
+FIND_PACKAGE_HANDLE_STANDARD_ARGS(DIRECTXTEXSDK
+ DEFAULT_MSG
+ DIRECTXTEXSDK_PATH
+
+ DIRECTXTEX_LIB
+
+ DIRECTXTEX_LIB_DEBUG
+)
+
+if (DIRECTXTEXSDK_FOUND)
+ # NOTE: This include list is way too long and reaches into too many internals.
+ # Also may not be good enough for all users.
+ SET(DIRECTXTEX_INCLUDE_DIRS
+ ${DIRECTXTEXSDK_PATH}/include
+ )
+
+ SET(DIRECTXTEX_LIBRARIES optimized ${DIRECTXTEX_LIB} debug ${DIRECTXTEX_LIB_DEBUG})
+endif()
diff --git a/NvCloth/samples/external/CMakeModules/FindPxShared.cmake b/NvCloth/samples/external/CMakeModules/FindPxShared.cmake
new file mode 100644
index 0000000..c094676
--- /dev/null
+++ b/NvCloth/samples/external/CMakeModules/FindPxShared.cmake
@@ -0,0 +1,20 @@
+# - Try to find PxShared
+# Once done this will define
+# PXSHARED_FOUND - System has PxShared
+# PXSHARED_ROOT_DIR - The root of PxShared
+
+# NOTE: We're including a version in this, but the first hint is without one - we should use that!
+FIND_PATH( PXSHARED_ROOT_DIR include/cudamanager/PxGpuCopyDesc.h
+ HINTS
+ ${GW_DEPS_ROOT}/PxShared/${PxShared_FIND_VERSION}
+ ${GW_DEPS_ROOT}/sw/physx/PxShared/1.0/trunk
+
+ )
+
+
+
+
+INCLUDE(FindPackageHandleStandardArgs)
+FIND_PACKAGE_HANDLE_STANDARD_ARGS(PxShared DEFAULT_MSG PXSHARED_ROOT_DIR)
+
+mark_as_advanced(PXSHARED_ROOT_DIR)
diff --git a/NvCloth/samples/external/CMakeModules/Findimgui.cmake b/NvCloth/samples/external/CMakeModules/Findimgui.cmake
new file mode 100644
index 0000000..f75d8fe
--- /dev/null
+++ b/NvCloth/samples/external/CMakeModules/Findimgui.cmake
@@ -0,0 +1,44 @@
+# - Try to find imgui SDK
+# - Sets IMGUI_LIBRARIES - list of the libraries found
+# - Sets IMGUI_SOURCE_FILES - list of files to include in project
+# - Sets IMGUI_INCLUDE_DIRS
+
+
+include(FindPackageHandleStandardArgs)
+
+# Find the includes
+
+# TODO: Do the version stuff properly!
+find_path(IMGUISDK_PATH imgui.h
+ PATHS ${GW_DEPS_ROOT}/imgui/${imgui_FIND_VERSION}
+ ${NVCLOTH_ROOT_DIR}/samples/external/imgui/${imgui_FIND_VERSION}
+)
+
+FIND_PACKAGE_HANDLE_STANDARD_ARGS(IMGUISDK
+ DEFAULT_MSG
+ IMGUISDK_PATH
+)
+
+if (IMGUISDK_FOUND)
+ # NOTE: This include list is way too long and reaches into too many internals.
+ # Also may not be good enough for all users.
+ SET(IMGUI_INCLUDE_DIRS
+ ${IMGUISDK_PATH}
+ )
+
+ # imgui is added as source to a project that uses it, so put together a list of files here
+ SET(IMGUI_SOURCE_FILES
+ ${IMGUISDK_PATH}/imconfig.h
+ ${IMGUISDK_PATH}/imgui.cpp
+ ${IMGUISDK_PATH}/imgui.h
+ ${IMGUISDK_PATH}/imgui_demo.cpp
+ ${IMGUISDK_PATH}/imgui_draw.cpp
+ ${IMGUISDK_PATH}/imgui_internal.h
+ ${IMGUISDK_PATH}/stb_rect_pack.h
+ ${IMGUISDK_PATH}/stb_textedit.h
+ ${IMGUISDK_PATH}/stb_truetype.h
+ )
+
+
+ SET(IMGUI_LIBRARIES optimized IMGUI_LIB debug IMGUI_LIB_DEBUG optimized DXUTOPT_LIB debug DXUTOPT_LIB_DEBUG)
+endif()
diff --git a/NvCloth/samples/external/CMakeModules/FindnvToolsExt.cmake b/NvCloth/samples/external/CMakeModules/FindnvToolsExt.cmake
new file mode 100644
index 0000000..2ba7cea
--- /dev/null
+++ b/NvCloth/samples/external/CMakeModules/FindnvToolsExt.cmake
@@ -0,0 +1,65 @@
+# - Try to find nvToolsExt
+# Once done this will define
+# NVTOOLSEXT_FOUND - System has nvToolsExt
+# NVTOOLSEXT_INCLUDE_DIRS - The nvToolsExt include directories
+# NVTOOLSEXT_LIB - The lib needed to use nvToolsExt
+# NVTOOLSEXT_DLL - The dll needed to use nvToolsExt
+# NVTOOLSEXT_DEFINITIONS - Compiler switches required for using nvToolsExt
+
+INCLUDE(FindPackageHandleStandardArgs)
+
+#TODO: Proper version support
+FIND_PATH( NVTOOLSEXTSDK_PATH include/nvToolsExt.h
+ PATHS
+ ${GW_DEPS_ROOT}/nvToolsExt/${nvToolsExt_FIND_VERSION}
+ ${GW_DEPS_ROOT}/Externals/nvToolsExt/1
+ ${GW_DEPS_ROOT}/sw/physx/externals/nvToolsExt/1
+ )
+
+MESSAGE("NvToolsExt: " ${NVTOOLSEXTSDK_PATH})
+
+if (CMAKE_CL_64)
+ SET(NVTOOLSEXT_ARCH_FOLDER "x64")
+ SET(NVTOOLSEXT_ARCH_FILE "64")
+else()
+ SET(NVTOOLSEXT_ARCH_FOLDER "Win32")
+ SET(NVTOOLSEXT_ARCH_FILE "32")
+endif()
+
+IF(TARGET_BUILD_PLATFORM STREQUAL "Windows")
+ # NOTE: Doesn't make sense for all platforms - ARM
+ if (CMAKE_CL_64)
+ SET(NVTOOLSEXT_ARCH_FOLDER "x64")
+ SET(NVTOOLSEXT_ARCH_FILE "64")
+ else()
+ SET(NVTOOLSEXT_ARCH_FOLDER "Win32")
+ SET(NVTOOLSEXT_ARCH_FILE "32")
+ endif()
+
+ SET(CMAKE_FIND_LIBRARY_SUFFIXES ".lib" ".dll")
+
+
+ FIND_LIBRARY( NVTOOLSEXT_LIB
+ NAMES nvToolsExt${NVTOOLSEXT_ARCH_FILE}_1
+ PATHS
+ ${NVTOOLSEXTSDK_PATH}/lib/${NVTOOLSEXT_ARCH_FOLDER}
+ )
+
+ find_library( NVTOOLSEXT_DLL
+ NAMES nvToolsExt${NVTOOLSEXT_ARCH_FILE}_1
+ PATHS
+ ${NVTOOLSEXTSDK_PATH}/bin/${NVTOOLSEXT_ARCH_FOLDER}
+ )
+
+
+ SET(NVTOOLSEXT_INCLUDE_DIRS
+ ${NVTOOLSEXTSDK_PATH}/include
+ )
+
+ FIND_PACKAGE_HANDLE_STANDARD_ARGS(nvToolsExt DEFAULT_MSG NVTOOLSEXT_LIB NVTOOLSEXT_DLL NVTOOLSEXT_INCLUDE_DIRS)
+ELSE()
+ # Exclude the libraries for non-windows platforms
+ FIND_PACKAGE_HANDLE_STANDARD_ARGS(nvToolsExt DEFAULT_MSG NVTOOLSEXT_INCLUDE_DIRS)
+ENDIF()
+
+mark_as_advanced(NVTOOLSEXT_INCLUDE_DIRS NVTOOLSEXT_DLL NVTOOLSEXT_LIB) \ No newline at end of file
diff --git a/NvCloth/samples/external/CMakeModules/SetOutputPaths.cmake b/NvCloth/samples/external/CMakeModules/SetOutputPaths.cmake
new file mode 100644
index 0000000..a1be9f4
--- /dev/null
+++ b/NvCloth/samples/external/CMakeModules/SetOutputPaths.cmake
@@ -0,0 +1,95 @@
+FUNCTION(SetOutputPaths
+ OUTPUT_EXE_DIR
+ OUTPUT_DLL_DIR
+ OUTPUT_LIB_DIR)
+
+ SET(EXE_DIR ${OUTPUT_EXE_DIR})
+ SET(DLL_DIR ${OUTPUT_DLL_DIR})
+ SET(LIB_DIR ${OUTPUT_LIB_DIR})
+
+ # Override the default output directories for all configurations.
+ SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG ${EXE_DIR} PARENT_SCOPE)
+ SET(CMAKE_LIBRARY_OUTPUT_DIRECTORY_DEBUG ${DLL_DIR} PARENT_SCOPE)
+ SET(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_DEBUG ${LIB_DIR} PARENT_SCOPE)
+
+ SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY_CHECKED ${EXE_DIR} PARENT_SCOPE)
+ SET(CMAKE_LIBRARY_OUTPUT_DIRECTORY_CHECKED ${DLL_DIR} PARENT_SCOPE)
+ SET(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_CHECKED ${LIB_DIR} PARENT_SCOPE)
+
+ SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY_PROFILE ${EXE_DIR} PARENT_SCOPE)
+ SET(CMAKE_LIBRARY_OUTPUT_DIRECTORY_PROFILE ${DLL_DIR} PARENT_SCOPE)
+ SET(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_PROFILE ${LIB_DIR} PARENT_SCOPE)
+
+ SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE ${EXE_DIR} PARENT_SCOPE)
+ SET(CMAKE_LIBRARY_OUTPUT_DIRECTORY_RELEASE ${DLL_DIR} PARENT_SCOPE)
+ SET(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_RELEASE ${LIB_DIR} PARENT_SCOPE)
+
+ SET(CMAKE_COMPILE_PDB_OUTPUT_DIRECTORY ${LIB_DIR})
+
+ENDFUNCTION(SetOutputPaths)
+
+FUNCTION(SetExeOutputPath OUTPUT_EXE_DIR)
+
+ SET(EXE_DIR ${OUTPUT_EXE_DIR})
+
+ # Override the default output directories for all configurations.
+ SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG ${EXE_DIR} PARENT_SCOPE)
+ SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY_CHECKED ${EXE_DIR} PARENT_SCOPE)
+ SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY_PROFILE ${EXE_DIR} PARENT_SCOPE)
+ SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE ${EXE_DIR} PARENT_SCOPE)
+
+ENDFUNCTION(SetExeOutputPath)
+
+FUNCTION(SetDllOutputPath OUTPUT_DLL_DIR)
+
+ SET(DLL_DIR ${OUTPUT_DLL_DIR})
+
+ # Override the default output directories for all configurations.
+ SET(CMAKE_LIBRARY_OUTPUT_DIRECTORY_DEBUG ${DLL_DIR}/${ARGV1} PARENT_SCOPE)
+ SET(CMAKE_LIBRARY_OUTPUT_DIRECTORY_PROFILE ${DLL_DIR}/${ARGV2} PARENT_SCOPE)
+ SET(CMAKE_LIBRARY_OUTPUT_DIRECTORY_CHECKED ${DLL_DIR}/${ARGV3} PARENT_SCOPE)
+ SET(CMAKE_LIBRARY_OUTPUT_DIRECTORY_RELEASE ${DLL_DIR}/${ARGV4} PARENT_SCOPE)
+
+ENDFUNCTION(SetDllOutputPath)
+
+FUNCTION(SetLibOutputPath OUTPUT_LIB_DIR)
+
+ SET(LIB_DIR ${OUTPUT_LIB_DIR})
+
+ # Override the default output directories for all configurations.
+ SET(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_DEBUG ${LIB_DIR}/${ARGV1} PARENT_SCOPE)
+ SET(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_PROFILE ${LIB_DIR}/${ARGV2} PARENT_SCOPE)
+ SET(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_CHECKED ${LIB_DIR}/${ARGV3} PARENT_SCOPE)
+ SET(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_RELEASE ${LIB_DIR}/${ARGV4} PARENT_SCOPE)
+
+ SET(CMAKE_COMPILE_PDB_OUTPUT_DIRECTORY ${LIB_DIR})
+
+ENDFUNCTION(SetLibOutputPath)
+
+FUNCTION(SetSingleOutputPath OUTPUT_ALL_DIR)
+
+ SET(EXE_DIR ${OUTPUT_ALL_DIR})
+ SET(DLL_DIR ${OUTPUT_ALL_DIR})
+ SET(LIB_DIR ${OUTPUT_ALL_DIR})
+
+ # Override the default output directories for all configurations.
+ SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG ${EXE_DIR} PARENT_SCOPE)
+ SET(CMAKE_LIBRARY_OUTPUT_DIRECTORY_DEBUG ${DLL_DIR} PARENT_SCOPE)
+ SET(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_DEBUG ${LIB_DIR} PARENT_SCOPE)
+
+ SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY_CHECKED ${EXE_DIR} PARENT_SCOPE)
+ SET(CMAKE_LIBRARY_OUTPUT_DIRECTORY_CHECKED ${DLL_DIR} PARENT_SCOPE)
+ SET(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_CHECKED ${LIB_DIR} PARENT_SCOPE)
+
+ SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY_PROFILE ${EXE_DIR} PARENT_SCOPE)
+ SET(CMAKE_LIBRARY_OUTPUT_DIRECTORY_PROFILE ${DLL_DIR} PARENT_SCOPE)
+ SET(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_PROFILE ${LIB_DIR} PARENT_SCOPE)
+
+ SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE ${EXE_DIR} PARENT_SCOPE)
+ SET(CMAKE_LIBRARY_OUTPUT_DIRECTORY_RELEASE ${DLL_DIR} PARENT_SCOPE)
+ SET(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_RELEASE ${LIB_DIR} PARENT_SCOPE)
+
+ SET(CMAKE_COMPILE_PDB_OUTPUT_DIRECTORY ${LIB_DIR})
+
+ENDFUNCTION(SetSingleOutputPath)
+