aboutsummaryrefslogtreecommitdiff
path: root/NvBlast/sdk/compiler/cmake/modules/FindApexSDK.cmake
diff options
context:
space:
mode:
Diffstat (limited to 'NvBlast/sdk/compiler/cmake/modules/FindApexSDK.cmake')
-rw-r--r--NvBlast/sdk/compiler/cmake/modules/FindApexSDK.cmake399
1 files changed, 399 insertions, 0 deletions
diff --git a/NvBlast/sdk/compiler/cmake/modules/FindApexSDK.cmake b/NvBlast/sdk/compiler/cmake/modules/FindApexSDK.cmake
new file mode 100644
index 0000000..9910236
--- /dev/null
+++ b/NvBlast/sdk/compiler/cmake/modules/FindApexSDK.cmake
@@ -0,0 +1,399 @@
+# - Try to find Apex binary SDK
+# - Sets APEXSDK_LIBS_DEBUG and APEXSDK_LIBS_RELEASE - lists of the libraries found
+# - Sets APEXSDK_INCLUDE_DIRS
+# - Sets APEXSDK_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(APEXSDK_PATH include/Apex.h
+ PATHS
+ ${GW_DEPS_ROOT}/$ENV{PM_Apex_NAME}/${ApexSDK_FIND_VERSION}
+ ${GW_DEPS_ROOT}/Apex/${ApexSDK_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(APEX_ARCH_FOLDER "win64")
+ SET(APEX_ARCH_FILE "_x64")
+ else()
+ SET(APEX_ARCH_FOLDER "win32")
+ SET(APEX_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 ${APEXSDK_PATH}/lib/${VS_STR}${APEX_ARCH_FOLDER}-cmake${PHYSX_CRT_SUFFIX})
+ SET(CMAKE_FIND_LIBRARY_SUFFIXES ".lib" ".dll")
+
+elseif(TARGET_BUILD_PLATFORM STREQUAL "PS4")
+ SET(LIB_PATH ${APEXSDK_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 ${APEXSDK_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 ${APEXSDK_PATH}/lib/linux64-cmake)
+ SET(CMAKE_FIND_LIBRARY_SUFFIXES ".a")
+ SET(CMAKE_FIND_LIBRARY_PREFIXES "lib")
+endif()
+
+find_library(APEXCLOTHING_LIB
+ NAMES APEX_Clothing${APEX_ARCH_FILE}
+ PATHS ${LIB_PATH}
+)
+find_library(APEXDESTRUCTIBLE_LIB
+ NAMES APEX_Destructible${APEX_ARCH_FILE}
+ PATHS ${LIB_PATH}
+)
+find_library(APEXLEGACY_LIB
+ NAMES APEX_Legacy${APEX_ARCH_FILE}
+ PATHS ${LIB_PATH}
+)
+find_library(APEXLOADER_LIB
+ NAMES APEX_Loader${APEX_ARCH_FILE}
+ PATHS ${LIB_PATH}
+)
+find_library(APEXCOMMON_LIB
+ NAMES APEXCommon${APEX_ARCH_FILE}
+ PATHS ${LIB_PATH}
+)
+find_library(APEXFRAMEWORK_LIB
+ NAMES APEXFramework${APEX_ARCH_FILE}
+ PATHS ${LIB_PATH}
+)
+find_library(APEXSHARED_LIB
+ NAMES APEXShared${APEX_ARCH_FILE}
+ PATHS ${LIB_PATH}
+)
+
+find_library(APEXCLOTHING_LIB_DEBUG
+ NAMES APEX_ClothingDEBUG${APEX_ARCH_FILE}
+ PATHS ${LIB_PATH}
+)
+find_library(APEXDESTRUCTIBLE_LIB_DEBUG
+ NAMES APEX_DestructibleDEBUG${APEX_ARCH_FILE}
+ PATHS ${LIB_PATH}
+)
+find_library(APEXLEGACY_LIB_DEBUG
+ NAMES APEX_LegacyDEBUG${APEX_ARCH_FILE}
+ PATHS ${LIB_PATH}
+)
+find_library(APEXLOADER_LIB_DEBUG
+ NAMES APEX_LoaderDEBUG${APEX_ARCH_FILE}
+ PATHS ${LIB_PATH}
+)
+find_library(APEXCOMMON_LIB_DEBUG
+ NAMES APEXCommonDEBUG${APEX_ARCH_FILE}
+ PATHS ${LIB_PATH}
+)
+find_library(APEXFRAMEWORK_LIB_DEBUG
+ NAMES APEXFrameworkDEBUG${APEX_ARCH_FILE}
+ PATHS ${LIB_PATH}
+)
+find_library(APEXSHARED_LIB_DEBUG
+ NAMES APEXSharedDEBUG${APEX_ARCH_FILE}
+ PATHS ${LIB_PATH}
+)
+
+find_library(APEXCLOTHING_LIB_CHECKED
+ NAMES APEX_ClothingCHECKED${APEX_ARCH_FILE}
+ PATHS ${LIB_PATH}
+)
+find_library(APEXDESTRUCTIBLE_LIB_CHECKED
+ NAMES APEX_DestructibleCHECKED${APEX_ARCH_FILE}
+ PATHS ${LIB_PATH}
+)
+find_library(APEXLEGACY_LIB_CHECKED
+ NAMES APEX_LegacyCHECKED${APEX_ARCH_FILE}
+ PATHS ${LIB_PATH}
+)
+find_library(APEXLOADER_LIB_CHECKED
+ NAMES APEX_LoaderCHECKED${APEX_ARCH_FILE}
+ PATHS ${LIB_PATH}
+)
+find_library(APEXCOMMON_LIB_CHECKED
+ NAMES APEXCommonCHECKED${APEX_ARCH_FILE}
+ PATHS ${LIB_PATH}
+)
+find_library(APEXFRAMEWORK_LIB_CHECKED
+ NAMES APEXFrameworkCHECKED${APEX_ARCH_FILE}
+ PATHS ${LIB_PATH}
+)
+find_library(APEXSHARED_LIB_CHECKED
+ NAMES APEXSharedCHECKED${APEX_ARCH_FILE}
+ PATHS ${LIB_PATH}
+)
+
+find_library(APEXCLOTHING_LIB_PROFILE
+ NAMES APEX_ClothingPROFILE${APEX_ARCH_FILE}
+ PATHS ${LIB_PATH}
+)
+find_library(APEXDESTRUCTIBLE_LIB_PROFILE
+ NAMES APEX_DestructiblePROFILE${APEX_ARCH_FILE}
+ PATHS ${LIB_PATH}
+)
+find_library(APEXLEGACY_LIB_PROFILE
+ NAMES APEX_LegacyPROFILE${APEX_ARCH_FILE}
+ PATHS ${LIB_PATH}
+)
+find_library(APEXLOADER_LIB_PROFILE
+ NAMES APEX_LoaderPROFILE${APEX_ARCH_FILE}
+ PATHS ${LIB_PATH}
+)
+find_library(APEXCOMMON_LIB_PROFILE
+ NAMES APEXCommonPROFILE${APEX_ARCH_FILE}
+ PATHS ${LIB_PATH}
+)
+find_library(APEXFRAMEWORK_LIB_PROFILE
+ NAMES APEXFrameworkPROFILE${APEX_ARCH_FILE}
+ PATHS ${LIB_PATH}
+)
+find_library(APEXSHARED_LIB_PROFILE
+ NAMES APEXSharedPROFILE${APEX_ARCH_FILE}
+ PATHS ${LIB_PATH}
+)
+
+
+if (TARGET_BUILD_PLATFORM STREQUAL "Windows")
+
+ SET(DLL_PATH ${APEXSDK_PATH}/bin/${VS_STR}${APEX_ARCH_FOLDER}-cmake${APEX_CRT_SUFFIX})
+
+ find_library(APEXCLOTHING_DLL
+ NAMES APEX_Clothing${APEX_ARCH_FILE}
+ PATHS ${DLL_PATH}
+ )
+ find_library(APEXDESTRUCTIBLE_DLL
+ NAMES APEX_Destructible${APEX_ARCH_FILE}
+ PATHS ${DLL_PATH}
+ )
+ find_library(APEXLEGACY_DLL
+ NAMES APEX_Legacy${APEX_ARCH_FILE}
+ PATHS ${DLL_PATH}
+ )
+ find_library(APEXLOADER_DLL
+ NAMES APEX_Loader${APEX_ARCH_FILE}
+ PATHS ${DLL_PATH}
+ )
+ find_library(APEXFRAMEWORK_DLL
+ NAMES APEXFramework${APEX_ARCH_FILE}
+ PATHS ${DLL_PATH}
+ )
+
+ find_library(APEXCLOTHING_DLL_DEBUG
+ NAMES APEX_ClothingDEBUG${APEX_ARCH_FILE}
+ PATHS ${DLL_PATH}
+ )
+ find_library(APEXDESTRUCTIBLE_DLL_DEBUG
+ NAMES APEX_DestructibleDEBUG${APEX_ARCH_FILE}
+ PATHS ${DLL_PATH}
+ )
+ find_library(APEXLEGACY_DLL_DEBUG
+ NAMES APEX_LegacyDEBUG${APEX_ARCH_FILE}
+ PATHS ${DLL_PATH}
+ )
+ find_library(APEXLOADER_DLL_DEBUG
+ NAMES APEX_LoaderDEBUG${APEX_ARCH_FILE}
+ PATHS ${DLL_PATH}
+ )
+ find_library(APEXFRAMEWORK_DLL_DEBUG
+ NAMES APEXFrameworkDEBUG${APEX_ARCH_FILE}
+ PATHS ${DLL_PATH}
+ )
+
+ find_library(APEXCLOTHING_DLL_CHECKED
+ NAMES APEX_ClothingCHECKED${APEX_ARCH_FILE}
+ PATHS ${DLL_PATH}
+ )
+ find_library(APEXDESTRUCTIBLE_DLL_CHECKED
+ NAMES APEX_DestructibleCHECKED${APEX_ARCH_FILE}
+ PATHS ${DLL_PATH}
+ )
+ find_library(APEXLEGACY_DLL_CHECKED
+ NAMES APEX_LegacyCHECKED${APEX_ARCH_FILE}
+ PATHS ${DLL_PATH}
+ )
+ find_library(APEXLOADER_DLL_CHECKED
+ NAMES APEX_LoaderCHECKED${APEX_ARCH_FILE}
+ PATHS ${DLL_PATH}
+ )
+ find_library(APEXFRAMEWORK_DLL_CHECKED
+ NAMES APEXFrameworkCHECKED${APEX_ARCH_FILE}
+ PATHS ${DLL_PATH}
+ )
+
+ find_library(APEXCLOTHING_DLL_PROFILE
+ NAMES APEX_ClothingPROFILE${APEX_ARCH_FILE}
+ PATHS ${DLL_PATH}
+ )
+ find_library(APEXDESTRUCTIBLE_DLL_PROFILE
+ NAMES APEX_DestructiblePROFILE${APEX_ARCH_FILE}
+ PATHS ${DLL_PATH}
+ )
+ find_library(APEXLEGACY_DLL_PROFILE
+ NAMES APEX_LegacyPROFILE${APEX_ARCH_FILE}
+ PATHS ${DLL_PATH}
+ )
+ find_library(APEXLOADER_DLL_PROFILE
+ NAMES APEX_LoaderPROFILE${APEX_ARCH_FILE}
+ PATHS ${DLL_PATH}
+ )
+ find_library(APEXFRAMEWORK_DLL_PROFILE
+ NAMES APEXFrameworkPROFILE${APEX_ARCH_FILE}
+ PATHS ${DLL_PATH}
+ )
+
+
+ SET(DLL_VAR_LIST
+ APEXCLOTHING_DLL
+ APEXDESTRUCTIBLE_DLL
+ APEXLEGACY_DLL
+ APEXLOADER_DLL
+ APEXFRAMEWORK_DLL
+
+ APEXCLOTHING_DLL_DEBUG
+ APEXDESTRUCTIBLE_DLL_DEBUG
+ APEXLEGACY_DLL_DEBUG
+ APEXLOADER_DLL_DEBUG
+ APEXFRAMEWORK_DLL_DEBUG
+
+ APEXCLOTHING_DLL_CHECKED
+ APEXDESTRUCTIBLE_DLL_CHECKED
+ APEXLEGACY_DLL_CHECKED
+ APEXLOADER_DLL_CHECKED
+ APEXFRAMEWORK_DLL_CHECKED
+
+ APEXCLOTHING_DLL_PROFILE
+ APEXDESTRUCTIBLE_DLL_PROFILE
+ APEXLEGACY_DLL_PROFILE
+ APEXLOADER_DLL_PROFILE
+ APEXFRAMEWORK_DLL_PROFILE
+
+ )
+endif()
+
+FIND_PACKAGE_HANDLE_STANDARD_ARGS(APEXSDK
+ DEFAULT_MSG
+ APEXSDK_PATH
+
+ APEXCLOTHING_LIB
+ APEXDESTRUCTIBLE_LIB
+ APEXLEGACY_LIB
+ APEXLOADER_LIB
+ APEXCOMMON_LIB
+ APEXFRAMEWORK_LIB
+ APEXSHARED_LIB
+
+ APEXCLOTHING_LIB_DEBUG
+ APEXDESTRUCTIBLE_LIB_DEBUG
+ APEXLEGACY_LIB_DEBUG
+ APEXLOADER_LIB_DEBUG
+ APEXCOMMON_LIB_DEBUG
+ APEXFRAMEWORK_LIB_DEBUG
+ APEXSHARED_LIB_DEBUG
+
+ APEXCLOTHING_LIB_CHECKED
+ APEXDESTRUCTIBLE_LIB_CHECKED
+ APEXLEGACY_LIB_CHECKED
+ APEXLOADER_LIB_CHECKED
+ APEXCOMMON_LIB_CHECKED
+ APEXFRAMEWORK_LIB_CHECKED
+ APEXSHARED_LIB_CHECKED
+
+ APEXCLOTHING_LIB_PROFILE
+ APEXDESTRUCTIBLE_LIB_PROFILE
+ APEXLEGACY_LIB_PROFILE
+ APEXLOADER_LIB_PROFILE
+ APEXCOMMON_LIB_PROFILE
+ APEXFRAMEWORK_LIB_PROFILE
+ APEXSHARED_LIB_PROFILE
+
+ ${DLL_VAR_LIST}
+)
+
+if (APEXSDK_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(APEXSDK_INCLUDE_DIRS
+ ${APEXSDK_PATH}/public
+ ${APEXSDK_PATH}/include
+ ${APEXSDK_PATH}/common/include
+ ${APEXSDK_PATH}/common/include/autogen
+ ${APEXSDK_PATH}/NvParameterized/include
+ ${APEXSDK_PATH}/include/destructible
+ ${APEXSDK_PATH}/include/PhysX3
+ ${APEXSDK_PATH}/shared/external/include
+ ${APEXSDK_PATH}/shared/internal/include
+ ${APEXSDK_PATH}/shared/general/shared
+ ${APEXSDK_PATH}/shared/general/RenderDebug/public
+ )
+
+ SET(APEXSDK_LIBS_RELEASE ${APEXCLOTHING_LIB} ${APEXDESTRUCTIBLE_LIB} ${APEXLEGACY_LIB} ${APEXLOADER_LIB} ${APEXCOMMON_LIB} ${APEXFRAMEWORK_LIB} ${APEXSHARED_LIB}
+ CACHE STRING ""
+ )
+ SET(APEXSDK_LIBS_DEBUG ${APEXCLOTHING_LIB_DEBUG} ${APEXDESTRUCTIBLE_LIB_DEBUG} ${APEXLEGACY_LIB_DEBUG} ${APEXLOADER_LIB_DEBUG} ${APEXCOMMON_LIB_DEBUG} ${APEXFRAMEWORK_LIB_DEBUG} ${APEXSHARED_LIB_DEBUG}
+ CACHE STRING ""
+ )
+ SET(APEXSDK_LIBS_CHECKED ${APEXCLOTHING_LIB_CHECKED} ${APEXDESTRUCTIBLE_LIB_CHECKED} ${APEXLEGACY_LIB_CHECKED} ${APEXLOADER_LIB_CHECKED} ${APEXCOMMON_LIB_CHECKED} ${APEXFRAMEWORK_LIB_CHECKED} ${APEXSHARED_LIB_CHECKED}
+ CACHE STRING ""
+ )
+ SET(APEXSDK_LIBS_PROFILE ${APEXCLOTHING_LIB_PROFILE} ${APEXDESTRUCTIBLE_LIB_PROFILE} ${APEXLEGACY_LIB_PROFILE} ${APEXLOADER_LIB_PROFILE} ${APEXCOMMON_LIB_PROFILE} ${APEXFRAMEWORK_LIB_PROFILE} ${APEXSHARED_LIB_PROFILE}
+ CACHE STRING ""
+ )
+
+
+ SET(APEXSDK_DLLS
+ ${APEXCLOTHING_DLL}
+ ${APEXDESTRUCTIBLE_DLL}
+ ${APEXLEGACY_DLL}
+ ${APEXLOADER_DLL}
+ ${APEXFRAMEWORK_DLL}
+
+ ${APEXCLOTHING_DLL_DEBUG}
+ ${APEXDESTRUCTIBLE_DLL_DEBUG}
+ ${APEXLEGACY_DLL_DEBUG}
+ ${APEXLOADER_DLL_DEBUG}
+ ${APEXFRAMEWORK_DLL_DEBUG}
+
+ ${APEXCLOTHING_DLL_CHECKED}
+ ${APEXDESTRUCTIBLE_DLL_CHECKED}
+ ${APEXLEGACY_DLL_CHECKED}
+ ${APEXLOADER_DLL_CHECKED}
+ ${APEXFRAMEWORK_DLL_CHECKED}
+
+ ${APEXCLOTHING_DLL_PROFILE}
+ ${APEXDESTRUCTIBLE_DLL_PROFILE}
+ ${APEXLEGACY_DLL_PROFILE}
+ ${APEXLOADER_DLL_PROFILE}
+ ${APEXFRAMEWORK_DLL_PROFILE}
+ )
+
+ SET(APEXSDK_LIBRARIES "" CACHE STRING "")
+
+ foreach(x ${APEXSDK_LIBS_RELEASE})
+ list(APPEND APEXSDK_LIBRARIES optimized ${x})
+ endforeach()
+
+ foreach(x ${APEXSDK_LIBS_DEBUG})
+ list(APPEND APEXSDK_LIBRARIES debug ${x})
+ endforeach()
+endif()