diff options
Diffstat (limited to 'NvBlast/sdk/compiler/cmake/modules/FindPxSharedSDK.cmake')
| -rw-r--r-- | NvBlast/sdk/compiler/cmake/modules/FindPxSharedSDK.cmake | 293 |
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() |