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/external/CMakeModules | |
| 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/external/CMakeModules')
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) + |