aboutsummaryrefslogtreecommitdiff
path: root/NvBlast/sdk/compiler/cmake/modules/FindPxSharedSDK.cmake
diff options
context:
space:
mode:
Diffstat (limited to 'NvBlast/sdk/compiler/cmake/modules/FindPxSharedSDK.cmake')
-rw-r--r--NvBlast/sdk/compiler/cmake/modules/FindPxSharedSDK.cmake293
1 files changed, 293 insertions, 0 deletions
diff --git a/NvBlast/sdk/compiler/cmake/modules/FindPxSharedSDK.cmake b/NvBlast/sdk/compiler/cmake/modules/FindPxSharedSDK.cmake
new file mode 100644
index 0000000..0f67f5c
--- /dev/null
+++ b/NvBlast/sdk/compiler/cmake/modules/FindPxSharedSDK.cmake
@@ -0,0 +1,293 @@
+# - Try to find PxShared binary SDK
+# - Sets PXSHAREDSDK_LIBS_DEBUG and PXSHAREDSDK_LIBS_RELEASE - lists of the libraries found
+# - Sets PXSHAREDSDK_INCLUDE_DIRS
+# - Sets PXSHAREDSDK_DLLS - List of the DLLs to copy to the bin directory of projects that depend on this
+
+include(FindPackageHandleStandardArgs)
+
+# Find the includes
+
+# TODO: Do the version stuff properly!
+find_path(PXSHAREDSDK_PATH include/foundation/Px.h
+ PATHS
+ ${GW_DEPS_ROOT}/$ENV{PM_PxShared_NAME}/${PxSharedSDK_FIND_VERSION}
+ ${GW_DEPS_ROOT}/PxShared/${PxSharedSDK_FIND_VERSION}
+)
+
+if (TARGET_BUILD_PLATFORM STREQUAL "Windows")
+ # If the project pulling in this dependency needs the static crt, then append that to the path.
+ if (STATIC_WINCRT)
+ SET(PXSHARED_CRT_SUFFIX "-staticcrt")
+ else()
+ SET(PXSHARED_CRT_SUFFIX "")
+ endif()
+
+ if (CMAKE_CL_64)
+ SET(PXSHARED_ARCH_FOLDER "win64")
+ SET(PXSHARED_ARCH_FILE "_x64")
+ else()
+ SET(PXSHARED_ARCH_FOLDER "win32")
+ SET(PXSHARED_ARCH_FILE "_x86")
+ endif()
+
+ # What compiler version do we want?
+
+ 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 "vc12")
+ elseif(CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 19.0.0.0)
+ SET(VS_STR "vc14")
+ else()
+ MESSAGE(FATAL_ERROR "Failed to find compatible PxSharedSDK - Only supporting VS2013 and VS2015")
+ endif()
+
+ SET(LIB_PATH ${PXSHAREDSDK_PATH}/lib/${VS_STR}${PXSHARED_ARCH_FOLDER}-cmake${PXSHARED_CRT_SUFFIX})
+ SET(CMAKE_FIND_LIBRARY_SUFFIXES ".lib" ".dll")
+
+elseif(TARGET_BUILD_PLATFORM STREQUAL "PS4")
+ SET(LIB_PATH ${PXSHAREDSDK_PATH}/lib/vc14ps4-cmake)
+ SET(CMAKE_FIND_LIBRARY_SUFFIXES ".a")
+ SET(CMAKE_FIND_LIBRARY_PREFIXES "lib")
+elseif(TARGET_BUILD_PLATFORM STREQUAL "XboxOne")
+ SET(LIB_PATH ${PXSHAREDSDK_PATH}/lib/vc14xboxone-cmake)
+ SET(CMAKE_FIND_LIBRARY_SUFFIXES ".a")
+ SET(CMAKE_FIND_LIBRARY_PREFIXES "lib")
+elseif(TARGET_BUILD_PLATFORM STREQUAL "linux")
+ SET(LIB_PATH ${PXSHAREDSDK_PATH}/lib/linux64-cmake)
+ SET(CMAKE_FIND_LIBRARY_SUFFIXES ".a")
+ SET(CMAKE_FIND_LIBRARY_PREFIXES "lib")
+ SET(PXSHARED_ARCH_FILE "_x64")
+endif()
+
+
+# Now find all of the PhysX libs in the lib directory
+
+
+find_library(PSFASTXML_LIB
+ NAMES PsFastXml${PXSHARED_ARCH_FILE}
+ PATHS ${LIB_PATH}
+)
+find_library(PXFOUNDATION_LIB
+ NAMES PxFoundation${PXSHARED_ARCH_FILE}
+ PATHS ${LIB_PATH}
+)
+find_library(PXPVDSDK_LIB
+ NAMES PxPvdSDK${PXSHARED_ARCH_FILE}
+ PATHS ${LIB_PATH}
+)
+find_library(PXTASK_LIB
+ NAMES PxTask${PXSHARED_ARCH_FILE}
+ PATHS ${LIB_PATH}
+)
+
+find_library(PSFASTXML_LIB_DEBUG
+ NAMES PsFastXmlDEBUG${PXSHARED_ARCH_FILE}
+ PATHS ${LIB_PATH}
+)
+find_library(PXFOUNDATION_LIB_DEBUG
+ NAMES PxFoundationDEBUG${PXSHARED_ARCH_FILE}
+ PATHS ${LIB_PATH}
+)
+find_library(PXPVDSDK_LIB_DEBUG
+ NAMES PxPvdSDKDEBUG${PXSHARED_ARCH_FILE}
+ PATHS ${LIB_PATH}
+)
+find_library(PXTASK_LIB_DEBUG
+ NAMES PxTaskDEBUG${PXSHARED_ARCH_FILE}
+ PATHS ${LIB_PATH}
+)
+
+find_library(PSFASTXML_LIB_CHECKED
+ NAMES PsFastXmlCHECKED${PXSHARED_ARCH_FILE}
+ PATHS ${LIB_PATH}
+)
+find_library(PXFOUNDATION_LIB_CHECKED
+ NAMES PxFoundationCHECKED${PXSHARED_ARCH_FILE}
+ PATHS ${LIB_PATH}
+)
+find_library(PXPVDSDK_LIB_CHECKED
+ NAMES PxPvdSDKCHECKED${PXSHARED_ARCH_FILE}
+ PATHS ${LIB_PATH}
+)
+find_library(PXTASK_LIB_CHECKED
+ NAMES PxTaskCHECKED${PXSHARED_ARCH_FILE}
+ PATHS ${LIB_PATH}
+)
+
+find_library(PSFASTXML_LIB_PROFILE
+ NAMES PsFastXmlPROFILE${PXSHARED_ARCH_FILE}
+ PATHS ${LIB_PATH}
+)
+find_library(PXFOUNDATION_LIB_PROFILE
+ NAMES PxFoundationPROFILE${PXSHARED_ARCH_FILE}
+ PATHS ${LIB_PATH}
+)
+find_library(PXPVDSDK_LIB_PROFILE
+ NAMES PxPvdSDKPROFILE${PXSHARED_ARCH_FILE}
+ PATHS ${LIB_PATH}
+)
+find_library(PXTASK_LIB_PROFILE
+ NAMES PxTaskPROFILE${PXSHARED_ARCH_FILE}
+ PATHS ${LIB_PATH}
+)
+
+if (TARGET_BUILD_PLATFORM STREQUAL "Windows")
+ SET(DLL_PATH ${PXSHAREDSDK_PATH}/bin/${VS_STR}${PXSHARED_ARCH_FOLDER}-cmake${PXSHARED_CRT_SUFFIX})
+
+ find_library(PXFOUNDATION_DLL
+ NAMES PxFoundation${PXSHARED_ARCH_FILE}
+ PATHS ${DLL_PATH}
+ )
+ find_library(PXPVDSDK_DLL
+ NAMES PxPvdSDK${PXSHARED_ARCH_FILE}
+ PATHS ${DLL_PATH}
+ )
+
+ find_library(PXFOUNDATION_DLL_DEBUG
+ NAMES PxFoundationDEBUG${PXSHARED_ARCH_FILE}
+ PATHS ${DLL_PATH}
+ )
+ find_library(PXPVDSDK_DLL_DEBUG
+ NAMES PxPvdSDKDEBUG${PXSHARED_ARCH_FILE}
+ PATHS ${DLL_PATH}
+ )
+
+ find_library(PXFOUNDATION_DLL_CHECKED
+ NAMES PxFoundationCHECKED${PXSHARED_ARCH_FILE}
+ PATHS ${DLL_PATH}
+ )
+ find_library(PXPVDSDK_DLL_CHECKED
+ NAMES PxPvdSDKCHECKED${PXSHARED_ARCH_FILE}
+ PATHS ${DLL_PATH}
+ )
+
+ find_library(PXFOUNDATION_DLL_PROFILE
+ NAMES PxFoundationPROFILE${PXSHARED_ARCH_FILE}
+ PATHS ${DLL_PATH}
+ )
+ find_library(PXPVDSDK_DLL_PROFILE
+ NAMES PxPvdSDKPROFILE${PXSHARED_ARCH_FILE}
+ PATHS ${DLL_PATH}
+ )
+
+ #Put the found dll variables in a list if we actually looked for them (windows)
+ SET(DLL_VAR_LIST
+ PXFOUNDATION_DLL
+ PXPVDSDK_DLL
+
+ PXFOUNDATION_DLL_DEBUG
+ PXPVDSDK_DLL_DEBUG
+
+ PXFOUNDATION_DLL_CHECKED
+ PXPVDSDK_DLL_CHECKED
+
+ PXFOUNDATION_DLL_PROFILE
+ PXPVDSDK_DLL_PROFILE
+
+ )
+endif()
+
+if (TARGET_BUILD_PLATFORM STREQUAL "linux")
+ SET(BIN_PATH ${PXSHAREDSDK_PATH}/bin/linux64-cmake)
+ SET(CMAKE_FIND_LIBRARY_SUFFIXES ".so")
+
+ find_library(PXFOUNDATION_LIB
+ NAMES PxFoundation${PXSHARED_ARCH_FILE}
+ PATHS ${BIN_PATH}
+ )
+ find_library(PXPVDSDK_LIB
+ NAMES PxPvdSDK${PXSHARED_ARCH_FILE}
+ PATHS ${BIN_PATH}
+ )
+
+ find_library(PXFOUNDATION_LIB_DEBUG
+ NAMES PxFoundationDEBUG${PXSHARED_ARCH_FILE}
+ PATHS ${BIN_PATH}
+ )
+ find_library(PXPVDSDK_LIB_DEBUG
+ NAMES PxPvdSDKDEBUG${PXSHARED_ARCH_FILE}
+ PATHS ${BIN_PATH}
+ )
+endif()
+
+FIND_PACKAGE_HANDLE_STANDARD_ARGS(PXSHAREDSDK
+ DEFAULT_MSG
+ PXSHAREDSDK_PATH
+
+ PSFASTXML_LIB
+ PXFOUNDATION_LIB
+ PXPVDSDK_LIB
+ PXTASK_LIB
+
+ PSFASTXML_LIB_DEBUG
+ PXFOUNDATION_LIB_DEBUG
+ PXPVDSDK_LIB_DEBUG
+ PXTASK_LIB_DEBUG
+
+# PSFASTXML_LIB_CHECKED
+# PXFOUNDATION_LIB_CHECKED
+# PXPVDSDK_LIB_CHECKED
+# PXTASK_LIB_CHECKED
+#
+# PSFASTXML_LIB_PROFILE
+# PXFOUNDATION_LIB_PROFILE
+# PXPVDSDK_LIB_PROFILE
+# PXTASK_LIB_PROFILE
+
+
+ ${DLL_VAR_LIST}
+)
+
+if (PXSHAREDSDK_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(PXSHAREDSDK_INCLUDE_DIRS
+ ${PXSHAREDSDK_PATH}/include
+ ${PXSHAREDSDK_PATH}/include/pvd
+ ${PXSHAREDSDK_PATH}/include/task
+ ${PXSHAREDSDK_PATH}/include/filebuf
+ ${PXSHAREDSDK_PATH}/include/foundation
+ ${PXSHAREDSDK_PATH}/src/foundation/include
+ ${PXSHAREDSDK_PATH}/src/filebuf/include
+ ${PXSHAREDSDK_PATH}/src/fastxml/include
+ )
+
+ SET(PXSHAREDSDK_LIBS_RELEASE ${PSFASTXML_LIB} ${PXFOUNDATION_LIB} ${PXPVDSDK_LIB} ${PXTASK_LIB}
+ CACHE STRING ""
+ )
+ SET(PXSHAREDSDK_LIBS_DEBUG ${PSFASTXML_LIB_DEBUG} ${PXFOUNDATION_LIB_DEBUG} ${PXPVDSDK_LIB_DEBUG} ${PXTASK_LIB_DEBUG}
+ CACHE STRING ""
+ )
+
+ SET(PXSHAREDSDK_LIBS_CHECKED ${PSFASTXML_LIB_CHECKED} ${PXFOUNDATION_LIB_CHECKED} ${PXPVDSDK_LIB_CHECKED} ${PXTASK_LIB_CHECKED}
+ CACHE STRING ""
+ )
+
+ SET(PXSHAREDSDK_LIBS_PROFILE ${PSFASTXML_LIB_PROFILE} ${PXFOUNDATION_LIB_PROFILE} ${PXPVDSDK_LIB_PROFILE} ${PXTASK_LIB_PROFILE}
+ CACHE STRING ""
+ )
+
+ SET(PXSHAREDSDK_DLLS
+ ${PXFOUNDATION_DLL}
+ ${PXPVDSDK_DLL}
+
+ ${PXFOUNDATION_DLL_DEBUG}
+ ${PXPVDSDK_DLL_DEBUG}
+
+ ${PXFOUNDATION_DLL_CHECKED}
+ ${PXPVDSDK_DLL_CHECKED}
+
+ ${PXFOUNDATION_DLL_PROFILE}
+ ${PXPVDSDK_DLL_PROFILE}
+ )
+
+ SET(PXSHAREDSDK_LIBRARIES "" CACHE STRING "")
+
+ foreach(x ${PXSHAREDSDK_LIBS_RELEASE})
+ list(APPEND PXSHAREDSDK_LIBRARIES optimized ${x})
+ endforeach()
+
+ foreach(x ${PXSHAREDSDK_LIBS_DEBUG})
+ list(APPEND PXSHAREDSDK_LIBRARIES debug ${x})
+ endforeach()
+endif()