diff options
| author | Bryan Galdrikian <[email protected]> | 2017-02-24 09:32:20 -0800 |
|---|---|---|
| committer | Bryan Galdrikian <[email protected]> | 2017-02-24 09:32:20 -0800 |
| commit | e1bf674c16e3c8472b29574159c789cd3f0c64e0 (patch) | |
| tree | 9f0cfce09c71a2c27ff19589fcad6cd83504477c /sdk/compiler/cmake/modules | |
| parent | first commit (diff) | |
| download | blast-e1bf674c16e3c8472b29574159c789cd3f0c64e0.tar.xz blast-e1bf674c16e3c8472b29574159c789cd3f0c64e0.zip | |
Updating to [email protected] and [email protected] with a new directory structure.
NvBlast folder is gone, files have been moved to top level directory. README is changed to reflect this.
Diffstat (limited to 'sdk/compiler/cmake/modules')
| -rw-r--r-- | sdk/compiler/cmake/modules/CapnProtoGenerate.cmake | 108 | ||||
| -rw-r--r-- | sdk/compiler/cmake/modules/FindApexSDK.cmake | 399 | ||||
| -rw-r--r-- | sdk/compiler/cmake/modules/FindCapnProtoSDK.cmake | 111 | ||||
| -rw-r--r-- | sdk/compiler/cmake/modules/FindFBXSDK.cmake | 71 | ||||
| -rw-r--r-- | sdk/compiler/cmake/modules/FindGoogleTestNV.cmake | 131 | ||||
| -rw-r--r-- | sdk/compiler/cmake/modules/FindPhysXSDK.cmake | 566 | ||||
| -rw-r--r-- | sdk/compiler/cmake/modules/FindPxSharedSDK.cmake | 293 | ||||
| -rw-r--r-- | sdk/compiler/cmake/modules/FindXDK.cmake | 257 |
8 files changed, 1936 insertions, 0 deletions
diff --git a/sdk/compiler/cmake/modules/CapnProtoGenerate.cmake b/sdk/compiler/cmake/modules/CapnProtoGenerate.cmake new file mode 100644 index 0000000..3579784 --- /dev/null +++ b/sdk/compiler/cmake/modules/CapnProtoGenerate.cmake @@ -0,0 +1,108 @@ +# Configuration variables (optional): +# CAPNPC_OUTPUT_DIR +# Directory to place compiled schema sources (default: the same directory as the schema file). +# CAPNPC_IMPORT_DIRS +# List of additional include directories for the schema compiler. +# (CMAKE_CURRENT_SOURCE_DIR and CAPNP_INCLUDE_DIRS are always included.) +# CAPNPC_SRC_PREFIX +# Schema file source prefix (default: CMAKE_CURRENT_SOURCE_DIR). +# CAPNPC_FLAGS +# Additional flags to pass to the schema compiler. +# Example usage: +# +# capnp_generate_cpp(CAPNP_SRCS CAPNP_HDRS schema.capnp) +# add_executable(a a.cc ${CAPNP_SRCS} ${CAPNP_HDRS}) +# target_link_library(a ${CAPNP_LIBRARIES}) +# +# For out-of-source builds: +# +# set(CAPNPC_OUTPUT_DIR ${CMAKE_CURRENT_BINARY_DIR}) +# include_directories(${CAPNPC_OUTPUT_DIR}) +# capnp_generate_cpp(...) + +function(CAPNP_GENERATE_CPP SOURCES HEADERS) + if(NOT ARGN) + message(SEND_ERROR "CAPNP_GENERATE_CPP() called without any source files.") + endif() + if(NOT CAPNP_EXECUTABLE) + message(SEND_ERROR "Could not locate capnp executable (CAPNP_EXECUTABLE).") + endif() + if(NOT CAPNPC_CXX_EXECUTABLE) + message(SEND_ERROR "Could not locate capnpc-c++ executable (CAPNPC_CXX_EXECUTABLE).") + endif() + if(NOT CAPNP_INCLUDE_DIRS) + message(SEND_ERROR "Could not locate capnp header files (CAPNP_INCLUDE_DIRS).") + endif() + + # Default compiler includes + set(include_path -I ${CMAKE_CURRENT_SOURCE_DIR} -I ${CAPNP_INCLUDE_DIRS}) + + if(DEFINED CAPNPC_IMPORT_DIRS) + # Append each directory as a series of '-I' flags in ${include_path} + foreach(directory ${CAPNPC_IMPORT_DIRS}) + get_filename_component(absolute_path "${directory}" ABSOLUTE) + list(APPEND include_path -I ${absolute_path}) + endforeach() + endif() + + if(DEFINED CAPNPC_OUTPUT_DIR) + # Prepend a ':' to get the format for the '-o' flag right + set(output_dir ":${CAPNPC_OUTPUT_DIR}") + else() + set(output_dir ":.") + endif() + + if(NOT DEFINED CAPNPC_SRC_PREFIX) + set(CAPNPC_SRC_PREFIX "${CMAKE_CURRENT_SOURCE_DIR}") + endif() + get_filename_component(CAPNPC_SRC_PREFIX "${CAPNPC_SRC_PREFIX}" ABSOLUTE) + + set(${SOURCES}) + set(${HEADERS}) + foreach(schema_file ${ARGN}) + get_filename_component(file_path "${schema_file}" ABSOLUTE) + get_filename_component(file_dir "${file_path}" PATH) + + # Figure out where the output files will go + if (NOT DEFINED CAPNPC_OUTPUT_DIR) + set(output_base "${file_path}") + else() + # Output files are placed in CAPNPC_OUTPUT_DIR, at a location as if they were + # relative to CAPNPC_SRC_PREFIX. + string(LENGTH "${CAPNPC_SRC_PREFIX}" prefix_len) + string(SUBSTRING "${file_path}" 0 ${prefix_len} output_prefix) + if(NOT "${CAPNPC_SRC_PREFIX}" STREQUAL "${output_prefix}") + message(SEND_ERROR "Could not determine output path for '${schema_file}' ('${file_path}') with source prefix '${CAPNPC_SRC_PREFIX}' into '${CAPNPC_OUTPUT_DIR}'.") + endif() + + string(SUBSTRING "${file_path}" ${prefix_len} -1 output_path) + set(output_base "${CAPNPC_OUTPUT_DIR}${output_path}") + endif() + + MESSAGE("Output base: " ${output_base}) + MESSAGE("Output path: " ${output_path}) + MESSAGE("Output dir: " ${output_dir}) + MESSAGE("Src prefix: " ${CAPNPC_SRC_PREFIX}) + + add_custom_command( + OUTPUT "${output_base}.c++" "${output_base}.h" + COMMAND "${CAPNP_EXECUTABLE}" + ARGS compile + -o ${CAPNPC_CXX_EXECUTABLE}${output_dir} + --verbose + --src-prefix ${CAPNPC_SRC_PREFIX} + ${include_path} + ${CAPNPC_FLAGS} + ${file_path} + DEPENDS "${schema_file}" + COMMENT "Compiling Cap'n Proto schema ${schema_file}" + VERBATIM + ) + list(APPEND ${SOURCES} "${output_base}.c++") + list(APPEND ${HEADERS} "${output_base}.h") + endforeach() + + set_source_files_properties(${${SOURCES}} ${${HEADERS}} PROPERTIES GENERATED TRUE) + set(${SOURCES} ${${SOURCES}} PARENT_SCOPE) + set(${HEADERS} ${${HEADERS}} PARENT_SCOPE) +endfunction()
\ No newline at end of file diff --git a/sdk/compiler/cmake/modules/FindApexSDK.cmake b/sdk/compiler/cmake/modules/FindApexSDK.cmake new file mode 100644 index 0000000..9910236 --- /dev/null +++ b/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() diff --git a/sdk/compiler/cmake/modules/FindCapnProtoSDK.cmake b/sdk/compiler/cmake/modules/FindCapnProtoSDK.cmake new file mode 100644 index 0000000..dcf5190 --- /dev/null +++ b/sdk/compiler/cmake/modules/FindCapnProtoSDK.cmake @@ -0,0 +1,111 @@ +# - Try to find CapnProto SDK +# - Sets CAPNPROTOSDK_LIBRARIES - list of the libraries found +# - Sets CAPNPROTOSDK_INCLUDE_DIRS + +include(FindPackageHandleStandardArgs) + +# Find the includes + +# TODO: Do the version stuff properly! +find_path(CAPNPROTOSDK_PATH src/capnp/message.h + PATHS ${GW_DEPS_ROOT}/$ENV{PM_CapnProto_NAME}/${CapnProtoSDK_FIND_VERSION} +) + +if (TARGET_BUILD_PLATFORM STREQUAL "Windows") + + if (STATIC_WINCRT) + SET(CAPNPROTOSDK_CRT_SUFFIX "-mt") + else() + SET(CAPNPROTOSDK_CRT_SUFFIX "-md") + endif() + + + # If the project pulling in this dependency needs the static crt, then append that to the path. + if (CMAKE_CL_64) + SET(CAPNPROTOSDK_ARCH_FOLDER "win64") + else() + SET(CAPNPROTOSDK_ARCH_FOLDER "win32") + endif() + + SET(LIB_PATH ${CAPNPROTOSDK_PATH}/bin/${CAPNPROTOSDK_ARCH_FOLDER}) + SET(EXE_PATH ${CAPNPROTOSDK_PATH}/tools/win32) + + +elseif(TARGET_BUILD_PLATFORM STREQUAL "PS4") + SET(LIB_PATH ${CAPNPROTOSDK_PATH}/bin/ps4) + SET(EXE_PATH ${CAPNPROTOSDK_PATH}/tools/win32) + SET(CMAKE_FIND_LIBRARY_SUFFIXES ".a") + SET(CMAKE_FIND_LIBRARY_PREFIXES "lib") +elseif(TARGET_BUILD_PLATFORM STREQUAL "XboxOne") + SET(LIB_PATH ${CAPNPROTOSDK_PATH}/bin/xboxone) + SET(EXE_PATH ${CAPNPROTOSDK_PATH}/tools/win32) + SET(CMAKE_FIND_LIBRARY_SUFFIXES ".a") + SET(CMAKE_FIND_LIBRARY_PREFIXES "lib") +elseif(TARGET_BUILD_PLATFORM STREQUAL "linux") + SET(LIB_PATH ${CAPNPROTOSDK_PATH}/bin/ubuntu64) + SET(EXE_PATH ${CAPNPROTOSDK_PATH}/tools/ubuntu64) + SET(CMAKE_FIND_LIBRARY_SUFFIXES ".a") + SET(CMAKE_FIND_LIBRARY_PREFIXES "lib") +endif() + +find_library(CAPNPROTO_LIB + NAMES capnp${CAPNPROTOSDK_CRT_SUFFIX} + PATHS ${LIB_PATH}/Release +) +find_library(CAPNPROTO_LIB_DEBUG + NAMES capnp${CAPNPROTOSDK_CRT_SUFFIX} + PATHS ${LIB_PATH}/Debug +) + +find_library(KJ_LIB + NAMES kj${CAPNPROTOSDK_CRT_SUFFIX} + PATHS ${LIB_PATH}/Release +) +find_library(KJ_LIB_DEBUG + NAMES kj${CAPNPROTOSDK_CRT_SUFFIX} + PATHS ${LIB_PATH}/Debug +) + +find_program(CAPNP_EXECUTABLE + NAMES capnp + DOC "Cap'n Proto Command-line Tool" + PATHS ${EXE_PATH} +) + +find_program(CAPNPC_CXX_EXECUTABLE + NAMES capnpc-c++ + DOC "Capn'n Proto C++ Compiler" + PATHS ${EXE_PATH} +) + +FIND_PACKAGE_HANDLE_STANDARD_ARGS(CAPNPROTOSDK + DEFAULT_MSG + CAPNPROTOSDK_PATH + + CAPNP_EXECUTABLE + CAPNPC_CXX_EXECUTABLE + + CAPNPROTO_LIB + KJ_LIB + + CAPNPROTO_LIB_DEBUG + KJ_LIB_DEBUG +) + +if (CAPNPROTOSDK_FOUND) + + SET(CAPNPROTOSDK_INCLUDE_DIRS + ${CAPNPROTOSDK_PATH}/src/ + ) + + SET(CAPNP_INCLUDE_DIRS + ${CAPNPROTOSDK_INCLUDE_DIRS} + ) + + SET(CAPNPROTOSDK_LIBRARIES "" CACHE STRING "") + + LIST(APPEND CAPNPROTOSDK_LIBRARIES + optimized ${CAPNPROTO_LIB} debug ${CAPNPROTO_LIB_DEBUG} + optimized ${KJ_LIB} debug ${KJ_LIB_DEBUG} + ) +endif() diff --git a/sdk/compiler/cmake/modules/FindFBXSDK.cmake b/sdk/compiler/cmake/modules/FindFBXSDK.cmake new file mode 100644 index 0000000..7e1bfb4 --- /dev/null +++ b/sdk/compiler/cmake/modules/FindFBXSDK.cmake @@ -0,0 +1,71 @@ +# - Try to find FBX SDK +# - Sets FBXSDK_LIBRARIES - list of the libraries found +# - Sets FBXSDK_INCLUDE_DIRS +# - Sets FBXSDK_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(FBXSDK_PATH include/fbxsdk.h + PATHS ${GW_DEPS_ROOT}/FBXSDK/${FBXSDK_FIND_VERSION} +) + +if (STATIC_WINCRT) + SET(FBXSDK_CRT_SUFFIX "mt") +else() + SET(FBXSDK_CRT_SUFFIX "md") +endif() + + +# If the project pulling in this dependency needs the static crt, then append that to the path. +if (CMAKE_CL_64) + SET(FBXSDK_ARCH_FOLDER "x64") +else() + SET(FBXSDK_ARCH_FOLDER "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 "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() + +# Now find all of the PhysX libs in the lib directory + +SET(LIB_PATH ${FBXSDK_PATH}/lib/${VS_STR}/${FBXSDK_ARCH_FOLDER}) + +find_library(FBX_LIB + NAMES libfbxsdk-${FBXSDK_CRT_SUFFIX} + PATHS ${LIB_PATH}/release +) +find_library(FBX_LIB_DEBUG + NAMES libfbxsdk-${FBXSDK_CRT_SUFFIX} + PATHS ${LIB_PATH}/debug +) + +FIND_PACKAGE_HANDLE_STANDARD_ARGS(FBXSDK + DEFAULT_MSG + FBXSDK_PATH + FBX_LIB + + FBX_LIB_DEBUG +) + +if (FBXSDK_FOUND) + + SET(FBXSDK_INCLUDE_DIRS + ${FBXSDK_PATH}/include + ${FBXSDK_PATH}/include/fbxsdk + ) + + SET(FBXSDK_LIBRARIES "" CACHE STRING "") + + LIST(APPEND FBXSDK_LIBRARIES optimized ${FBX_LIB} debug ${FBX_LIB_DEBUG}) +endif() diff --git a/sdk/compiler/cmake/modules/FindGoogleTestNV.cmake b/sdk/compiler/cmake/modules/FindGoogleTestNV.cmake new file mode 100644 index 0000000..50e7edd --- /dev/null +++ b/sdk/compiler/cmake/modules/FindGoogleTestNV.cmake @@ -0,0 +1,131 @@ +# - Try to find GoogleTest SDK +# - Sets GOOGLETEST_LIBRARIES - lists of the libraries found +# - Sets GOOGLETEST_INCLUDE_DIRS + +include(FindPackageHandleStandardArgs) + +# Find the includes + +# TODO: Do the version stuff properly! +find_path(GOOGLETEST_PATH include/gtest/gtest.h + PATHS ${GW_DEPS_ROOT}/$ENV{PM_googletest_NAME}/${GoogleTestNV_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(GOOGLETEST_CRT_SUFFIX "-staticcrt") + else() + SET(GOOGLETEST_CRT_SUFFIX "") + endif() + + if (CMAKE_CL_64) + SET(GOOGLETEST_ARCH_FOLDER "win64") + else() + SET(GOOGLETEST_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 "vc12") + elseif(CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 19.0.0.0) + SET(VS_STR "vc14") + else() + MESSAGE(FATAL_ERROR "Failed to find compatible FBXSDK - Only supporting VS2013 and VS2015") + endif() + + + # Now find all of the PhysX libs in the lib directory + + SET(LIB_PATH ${GOOGLETEST_PATH}/lib/${VS_STR}${GOOGLETEST_ARCH_FOLDER}-cmake${GOOGLETEST_CRT_SUFFIX}) + +elseif(TARGET_BUILD_PLATFORM STREQUAL "PS4") + SET(LIB_PATH ${GOOGLETEST_PATH}/lib/PS4) + SET(CMAKE_FIND_LIBRARY_SUFFIXES ".a") + SET(CMAKE_FIND_LIBRARY_PREFIXES "lib") +elseif(TARGET_BUILD_PLATFORM STREQUAL "XboxOne") + SET(LIB_PATH ${GOOGLETEST_PATH}/lib/xboxone-${XDK_VERSION}) + SET(CMAKE_FIND_LIBRARY_SUFFIXES ".a") + SET(CMAKE_FIND_LIBRARY_PREFIXES "lib") +elseif(TARGET_BUILD_PLATFORM STREQUAL "linux") + if(CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 5.0) + SET(LIB_PATH ${GOOGLETEST_PATH}/lib/gcc-5.4) + else() + SET(LIB_PATH ${GOOGLETEST_PATH}/lib/gcc-4.8) + endif() + SET(CMAKE_FIND_LIBRARY_SUFFIXES ".a") + SET(CMAKE_FIND_LIBRARY_PREFIXES "lib") +endif() + +MESSAGE("GTEst libpath:" ${LIB_PATH}) + +if(TARGET_BUILD_PLATFORM STREQUAL "linux") + find_library(GTEST_LIB + NAMES gtest + PATHS ${LIB_PATH} + ) + + find_library(GTEST_MAIN_LIB + NAMES gtest_main + PATHS ${LIB_PATH} + ) + + SET(GTEST_LIB_DEBUG ${GTEST_LIB}) + SET(GTEST_MAIN_LIB_DEBUG ${GTEST_MAIN_LIB}) +else() + find_library(GTEST_LIB + NAMES gtest + PATHS ${LIB_PATH}/Release + ) + + find_library(GTEST_LIB_DEBUG + NAMES gtest + PATHS ${LIB_PATH}/Debug + ) + + find_library(GTEST_MAIN_LIB + NAMES gtest_main + PATHS ${LIB_PATH}/Release + ) + + find_library(GTEST_MAIN_LIB_DEBUG + NAMES gtest_main + PATHS ${LIB_PATH}/Debug + ) +endif() + +FIND_PACKAGE_HANDLE_STANDARD_ARGS(GOOGLETEST + DEFAULT_MSG + GOOGLETEST_PATH + + GTEST_LIB + GTEST_MAIN_LIB + GTEST_LIB_DEBUG + GTEST_MAIN_LIB_DEBUG +) + +if (GOOGLETEST_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(GOOGLETEST_INCLUDE_DIRS + ${GOOGLETEST_PATH}/include + ${GOOGLETEST_PATH}/include/gtest + ) + + SET(GOOGLETEST_LIBS_RELEASE ${GTEST_LIB} ${GTEST_MAIN_LIB} + CACHE STRING "" + ) + SET(GOOGLETEST_LIBS_DEBUG ${GTEST_LIB_DEBUG} ${GTEST_MAIN_LIB_DEBUG} + CACHE STRING "" + ) + + SET(GOOGLETEST_LIBRARIES "" CACHE STRING "") + + foreach(x ${GOOGLETEST_LIBS_RELEASE}) + list(APPEND GOOGLETEST_LIBRARIES optimized ${x}) + endforeach() + + foreach(x ${GOOGLETEST_LIBS_DEBUG}) + list(APPEND GOOGLETEST_LIBRARIES debug ${x}) + endforeach() +endif() diff --git a/sdk/compiler/cmake/modules/FindPhysXSDK.cmake b/sdk/compiler/cmake/modules/FindPhysXSDK.cmake new file mode 100644 index 0000000..830e6c5 --- /dev/null +++ b/sdk/compiler/cmake/modules/FindPhysXSDK.cmake @@ -0,0 +1,566 @@ +# - Try to find PhysX binary SDK +# - Sets PHYSXSDK_LIBS_DEBUG, PHYSXSDK_LIBS_RELEASE, PHYSXSDK_LIBS_CHECKED, PHYSXSDK_LIBS_PROFILE - lists of the libraries found +# - Sets PHYSXSDK_INCLUDE_DIRS +# - Sets PHYSXSDK_DLLS - List of the DLLs to copy to the bin directory of projects that depend on this + +include(FindPackageHandleStandardArgs) + +MESSAGE("Looking for PhysXSDK ${PhysXSDK_FIND_VERSION} Cached path: ${PHYSXSDK_PATH}") +# TODO: Do the version stuff properly! +find_path(PHYSXSDK_PATH Include/PxActor.h + PATHS + ${GW_DEPS_ROOT}/$ENV{PM_PhysX_NAME}/${PhysXSDK_FIND_VERSION} + ${GW_DEPS_ROOT}/PhysX/${PhysXSDK_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(PHYSX_ARCH_FOLDER "win64") + SET(PHYSX_ARCH_FILE "_x64") + else() + SET(PHYSX_ARCH_FOLDER "win32") + SET(PHYSX_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 ${PHYSXSDK_PATH}/lib/${VS_STR}${PHYSX_ARCH_FOLDER}-cmake${PHYSX_CRT_SUFFIX}) + SET(CMAKE_FIND_LIBRARY_SUFFIXES ".lib" ".dll") + +elseif(TARGET_BUILD_PLATFORM STREQUAL "PS4") + SET(LIB_PATH ${PHYSXSDK_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 ${PHYSXSDK_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 ${PHYSXSDK_PATH}/lib/linux64-cmake) + SET(CMAKE_FIND_LIBRARY_SUFFIXES ".a") + SET(CMAKE_FIND_LIBRARY_PREFIXES "lib") + SET(PHYSX_ARCH_FILE "_x64") +endif() + +# Now find all of the PhysX libs in the lib directory + +find_library(PHYSX3_LIB + NAMES PhysX3${PHYSX_ARCH_FILE} + PATHS ${LIB_PATH} +) +find_library(PHYSX3EXTENSIONS_LIB + NAMES PhysX3Extensions${PHYSX_ARCH_FILE} + PATHS ${LIB_PATH} +) +find_library(PHYSX3CHARACTERKINEMATIC_LIB + NAMES PhysX3CharacterKinematic${PHYSX_ARCH_FILE} + PATHS ${LIB_PATH} +) +find_library(PHYSX3COMMON_LIB + NAMES PhysX3Common${PHYSX_ARCH_FILE} + PATHS ${LIB_PATH} +) +find_library(PHYSX3COOKING_LIB + NAMES PhysX3Cooking${PHYSX_ARCH_FILE} + PATHS ${LIB_PATH} +) +find_library(LOWLEVEL_LIB + NAMES LowLevel${PHYSX_ARCH_FILE} + PATHS ${LIB_PATH} +) +find_library(LOWLEVELAABB_LIB + NAMES LowLevelAABB${PHYSX_ARCH_FILE} + PATHS ${LIB_PATH} +) +find_library(LOWLEVELCLOTH_LIB + NAMES LowLevelCloth${PHYSX_ARCH_FILE} + PATHS ${LIB_PATH} +) +find_library(LOWLEVELDYNAMICS_LIB + NAMES LowLevelDynamics${PHYSX_ARCH_FILE} + PATHS ${LIB_PATH} +) +find_library(LOWLEVELPARTICLES_LIB + NAMES LowLevelParticles${PHYSX_ARCH_FILE} + PATHS ${LIB_PATH} +) +find_library(SCENEQUERY_LIB + NAMES SceneQuery${PHYSX_ARCH_FILE} + PATHS ${LIB_PATH} +) +find_library(SIMULATIONCONTROLLER_LIB + NAMES SimulationController${PHYSX_ARCH_FILE} + PATHS ${LIB_PATH} +) + + +find_library(PHYSX3_LIB_DEBUG + NAMES PhysX3DEBUG${PHYSX_ARCH_FILE} + PATHS ${LIB_PATH} +) +find_library(PHYSX3EXTENSIONS_LIB_DEBUG + NAMES PhysX3ExtensionsDEBUG${PHYSX_ARCH_FILE} + PATHS ${LIB_PATH} +) +find_library(PHYSX3CHARACTERKINEMATIC_LIB_DEBUG + NAMES PhysX3CharacterKinematicDEBUG${PHYSX_ARCH_FILE} + PATHS ${LIB_PATH} +) +find_library(PHYSX3COMMON_LIB_DEBUG + NAMES PhysX3CommonDEBUG${PHYSX_ARCH_FILE} + PATHS ${LIB_PATH} +) +find_library(PHYSX3COOKING_LIB_DEBUG + NAMES PhysX3CookingDEBUG${PHYSX_ARCH_FILE} + PATHS ${LIB_PATH} +) +find_library(LOWLEVEL_LIB_DEBUG + NAMES LowLevelDEBUG${PHYSX_ARCH_FILE} + PATHS ${LIB_PATH} +) +find_library(LOWLEVELAABB_LIB_DEBUG + NAMES LowLevelAABBDEBUG${PHYSX_ARCH_FILE} + PATHS ${LIB_PATH} +) +find_library(LOWLEVELCLOTH_LIB_DEBUG + NAMES LowLevelClothDEBUG${PHYSX_ARCH_FILE} + PATHS ${LIB_PATH} +) +find_library(LOWLEVELDYNAMICS_LIB_DEBUG + NAMES LowLevelDynamicsDEBUG${PHYSX_ARCH_FILE} + PATHS ${LIB_PATH} +) +find_library(LOWLEVELPARTICLES_LIB_DEBUG + NAMES LowLevelParticlesDEBUG${PHYSX_ARCH_FILE} + PATHS ${LIB_PATH} +) +find_library(SCENEQUERY_LIB_DEBUG + NAMES SceneQueryDEBUG${PHYSX_ARCH_FILE} + PATHS ${LIB_PATH} +) +find_library(SIMULATIONCONTROLLER_LIB_DEBUG + NAMES SimulationControllerDEBUG${PHYSX_ARCH_FILE} + PATHS ${LIB_PATH} +) + +find_library(PHYSX3_LIB_CHECKED + NAMES PhysX3CHECKED${PHYSX_ARCH_FILE} + PATHS ${LIB_PATH} +) +find_library(PHYSX3EXTENSIONS_LIB_CHECKED + NAMES PhysX3ExtensionsCHECKED${PHYSX_ARCH_FILE} + PATHS ${LIB_PATH} +) +find_library(PHYSX3CHARACTERKINEMATIC_LIB_CHECKED + NAMES PhysX3CharacterKinematicCHECKED${PHYSX_ARCH_FILE} + PATHS ${LIB_PATH} +) +find_library(PHYSX3COMMON_LIB_CHECKED + NAMES PhysX3CommonCHECKED${PHYSX_ARCH_FILE} + PATHS ${LIB_PATH} +) +find_library(PHYSX3COOKING_LIB_CHECKED + NAMES PhysX3CookingCHECKED${PHYSX_ARCH_FILE} + PATHS ${LIB_PATH} +) +find_library(LOWLEVEL_LIB_CHECKED + NAMES LowLevelCHECKED${PHYSX_ARCH_FILE} + PATHS ${LIB_PATH} +) +find_library(LOWLEVELAABB_LIB_CHECKED + NAMES LowLevelAABBCHECKED${PHYSX_ARCH_FILE} + PATHS ${LIB_PATH} +) +find_library(LOWLEVELCLOTH_LIB_CHECKED + NAMES LowLevelClothCHECKED${PHYSX_ARCH_FILE} + PATHS ${LIB_PATH} +) +find_library(LOWLEVELDYNAMICS_LIB_CHECKED + NAMES LowLevelDynamicsCHECKED${PHYSX_ARCH_FILE} + PATHS ${LIB_PATH} +) +find_library(LOWLEVELPARTICLES_LIB_CHECKED + NAMES LowLevelParticlesCHECKED${PHYSX_ARCH_FILE} + PATHS ${LIB_PATH} +) +find_library(SCENEQUERY_LIB_CHECKED + NAMES SceneQueryCHECKED${PHYSX_ARCH_FILE} + PATHS ${LIB_PATH} +) +find_library(SIMULATIONCONTROLLER_LIB_CHECKED + NAMES SimulationControllerCHECKED${PHYSX_ARCH_FILE} + PATHS ${LIB_PATH} +) + +find_library(PHYSX3_LIB_PROFILE + NAMES PhysX3PROFILE${PHYSX_ARCH_FILE} + PATHS ${LIB_PATH} +) +find_library(PHYSX3EXTENSIONS_LIB_PROFILE + NAMES PhysX3ExtensionsPROFILE${PHYSX_ARCH_FILE} + PATHS ${LIB_PATH} +) +find_library(PHYSX3CHARACTERKINEMATIC_LIB_PROFILE + NAMES PhysX3CharacterKinematicPROFILE${PHYSX_ARCH_FILE} + PATHS ${LIB_PATH} +) +find_library(PHYSX3COMMON_LIB_PROFILE + NAMES PhysX3CommonPROFILE${PHYSX_ARCH_FILE} + PATHS ${LIB_PATH} +) +find_library(PHYSX3COOKING_LIB_PROFILE + NAMES PhysX3CookingPROFILE${PHYSX_ARCH_FILE} + PATHS ${LIB_PATH} +) +find_library(LOWLEVEL_LIB_PROFILE + NAMES LowLevelPROFILE${PHYSX_ARCH_FILE} + PATHS ${LIB_PATH} +) +find_library(LOWLEVELAABB_LIB_PROFILE + NAMES LowLevelAABBPROFILE${PHYSX_ARCH_FILE} + PATHS ${LIB_PATH} +) +find_library(LOWLEVELCLOTH_LIB_PROFILE + NAMES LowLevelClothPROFILE${PHYSX_ARCH_FILE} + PATHS ${LIB_PATH} +) +find_library(LOWLEVELDYNAMICS_LIB_PROFILE + NAMES LowLevelDynamicsPROFILE${PHYSX_ARCH_FILE} + PATHS ${LIB_PATH} +) +find_library(LOWLEVELPARTICLES_LIB_PROFILE + NAMES LowLevelParticlesPROFILE${PHYSX_ARCH_FILE} + PATHS ${LIB_PATH} +) +find_library(SCENEQUERY_LIB_PROFILE + NAMES SceneQueryPROFILE${PHYSX_ARCH_FILE} + PATHS ${LIB_PATH} +) +find_library(SIMULATIONCONTROLLER_LIB_PROFILE + NAMES SimulationControllerPROFILE${PHYSX_ARCH_FILE} + PATHS ${LIB_PATH} +) + +if (TARGET_BUILD_PLATFORM STREQUAL "Windows") + + find_library(PHYSX3GPU_LIB + NAMES PhysX3Gpu${PHYSX_ARCH_FILE} + PATHS ${LIB_PATH} + ) + find_library(PHYSX3GPU_LIB_DEBUG + NAMES PhysX3GpuDEBUG${PHYSX_ARCH_FILE} + PATHS ${LIB_PATH} + ) + + + SET(DLL_PATH ${PHYSXSDK_PATH}/bin/${VS_STR}${PHYSX_ARCH_FOLDER}-cmake${PHYSX_CRT_SUFFIX}) + + find_library(PHYSX3_DLL + NAMES PhysX3${PHYSX_ARCH_FILE} + PATHS ${DLL_PATH} + ) + find_library(PHYSX3CHARACTERKINEMATIC_DLL + NAMES PhysX3CharacterKinematic${PHYSX_ARCH_FILE} + PATHS ${DLL_PATH} + ) + find_library(PHYSX3COMMON_DLL + NAMES PhysX3Common${PHYSX_ARCH_FILE} + PATHS ${DLL_PATH} + ) + find_library(PHYSX3COOKING_DLL + NAMES PhysX3Cooking${PHYSX_ARCH_FILE} + PATHS ${DLL_PATH} + ) + find_library(PHYSX3GPU_DLL + NAMES PhysX3Gpu${PHYSX_ARCH_FILE} + PATHS ${DLL_PATH} + ) + + + find_library(PHYSX3_DLL_DEBUG + NAMES PhysX3DEBUG${PHYSX_ARCH_FILE} + PATHS ${DLL_PATH} + ) + find_library(PHYSX3CHARACTERKINEMATIC_DLL_DEBUG + NAMES PhysX3CharacterKinematicDEBUG${PHYSX_ARCH_FILE} + PATHS ${DLL_PATH} + ) + find_library(PHYSX3COMMON_DLL_DEBUG + NAMES PhysX3CommonDEBUG${PHYSX_ARCH_FILE} + PATHS ${DLL_PATH} + ) + find_library(PHYSX3COOKING_DLL_DEBUG + NAMES PhysX3CookingDEBUG${PHYSX_ARCH_FILE} + PATHS ${DLL_PATH} + ) + # NOTE - GPU dlls not included in required dlls or libs as they're optional. + find_library(PHYSX3GPU_DLL_DEBUG + NAMES PhysX3GpuDEBUG${PHYSX_ARCH_FILE} + PATHS ${DLL_PATH} + ) + + find_library(PHYSX3_DLL_PROFILE + NAMES PhysX3PROFILE${PHYSX_ARCH_FILE} + PATHS ${DLL_PATH} + ) + find_library(PHYSX3CHARACTERKINEMATIC_DLL_PROFILE + NAMES PhysX3CharacterKinematicPROFILE${PHYSX_ARCH_FILE} + PATHS ${DLL_PATH} + ) + find_library(PHYSX3COMMON_DLL_PROFILE + NAMES PhysX3CommonPROFILE${PHYSX_ARCH_FILE} + PATHS ${DLL_PATH} + ) + find_library(PHYSX3COOKING_DLL_PROFILE + NAMES PhysX3CookingPROFILE${PHYSX_ARCH_FILE} + PATHS ${DLL_PATH} + ) + # NOTE - GPU dlls not included in required dlls or libs as they're optional. + find_library(PHYSX3GPU_DLL_PROFILE + NAMES PhysX3GpuPROFILE${PHYSX_ARCH_FILE} + PATHS ${DLL_PATH} + ) + + find_library(PHYSX3_DLL_CHECKED + NAMES PhysX3CHECKED${PHYSX_ARCH_FILE} + PATHS ${DLL_PATH} + ) + find_library(PHYSX3CHARACTERKINEMATIC_DLL_CHECKED + NAMES PhysX3CharacterKinematicCHECKED${PHYSX_ARCH_FILE} + PATHS ${DLL_PATH} + ) + find_library(PHYSX3COMMON_DLL_CHECKED + NAMES PhysX3CommonCHECKED${PHYSX_ARCH_FILE} + PATHS ${DLL_PATH} + ) + find_library(PHYSX3COOKING_DLL_CHECKED + NAMES PhysX3CookingCHECKED${PHYSX_ARCH_FILE} + PATHS ${DLL_PATH} + ) + # NOTE - GPU dlls not included in required dlls or libs as they're optional. + find_library(PHYSX3GPU_DLL_CHECKED + NAMES PhysX3GpuCHECKED${PHYSX_ARCH_FILE} + PATHS ${DLL_PATH} + ) + + # Create this list to check for found dlls below + SET(DLL_VAR_LIST + PHYSX3_DLL + PHYSX3CHARACTERKINEMATIC_DLL + PHYSX3COMMON_DLL + PHYSX3COOKING_DLL + + PHYSX3_DLL_DEBUG + PHYSX3CHARACTERKINEMATIC_DLL_DEBUG + PHYSX3COMMON_DLL_DEBUG + PHYSX3COOKING_DLL_DEBUG + + PHYSX3_DLL_PROFILE + PHYSX3CHARACTERKINEMATIC_DLL_PROFILE + PHYSX3COMMON_DLL_PROFILE + PHYSX3COOKING_DLL_PROFILE + + PHYSX3_DLL_CHECKED + PHYSX3CHARACTERKINEMATIC_DLL_CHECKED + PHYSX3COMMON_DLL_CHECKED + PHYSX3COOKING_DLL_CHECKED + + ) +endif() + +if (TARGET_BUILD_PLATFORM STREQUAL "linux") + SET(BIN_PATH ${PHYSXSDK_PATH}/bin/linux64-cmake) + SET(CMAKE_FIND_LIBRARY_SUFFIXES ".so") + + find_library(PHYSX3_LIB + NAMES PhysX3${PHYSX_ARCH_FILE} + PATHS ${BIN_PATH} + ) + find_library(PHYSX3COOKING_LIB + NAMES PhysX3Cooking${PHYSX_ARCH_FILE} + PATHS ${BIN_PATH} + ) + find_library(PHYSX3CHARACTERKINEMATIC_LIB + NAMES PhysX3CharacterKinematic${PHYSX_ARCH_FILE} + PATHS ${BIN_PATH} + ) + find_library(PHYSX3COMMON_LIB + NAMES PhysX3Common${PHYSX_ARCH_FILE} + PATHS ${BIN_PATH} + ) + + find_library(PHYSX3_LIB_DEBUG + NAMES PhysX3DEBUG${PHYSX_ARCH_FILE} + PATHS ${BIN_PATH} + ) + find_library(PHYSX3COOKING_LIB_DEBUG + NAMES PhysX3CookingDEBUG${PHYSX_ARCH_FILE} + PATHS ${BIN_PATH} + ) + find_library(PHYSX3CHARACTERKINEMATIC_LIB_DEBUG + NAMES PhysX3CharacterKinematicDEBUG${PHYSX_ARCH_FILE} + PATHS ${BIN_PATH} + ) + find_library(PHYSX3COMMON_LIB_DEBUG + NAMES PhysX3CommonDEBUG${PHYSX_ARCH_FILE} + PATHS ${BIN_PATH} + ) + + find_library(PHYSX3_LIB_CHECKED + NAMES PhysX3CHECKED${PHYSX_ARCH_FILE} + PATHS ${BIN_PATH} + ) + find_library(PHYSX3COOKING_LIB_CHECKED + NAMES PhysX3CookingCHECKED${PHYSX_ARCH_FILE} + PATHS ${BIN_PATH} + ) + find_library(PHYSX3CHARACTERKINEMATIC_LIB_CHECKED + NAMES PhysX3CharacterKinematicCHECKED${PHYSX_ARCH_FILE} + PATHS ${BIN_PATH} + ) + find_library(PHYSX3COMMON_LIB_CHECKED + NAMES PhysX3CommonCHECKED${PHYSX_ARCH_FILE} + PATHS ${BIN_PATH} + ) + + find_library(PHYSX3_LIB_PROFILE + NAMES PhysX3PROFILE${PHYSX_ARCH_FILE} + PATHS ${BIN_PATH} + ) + find_library(PHYSX3COOKING_LIB_PROFILE + NAMES PhysX3CookingPROFILE${PHYSX_ARCH_FILE} + PATHS ${BIN_PATH} + ) + find_library(PHYSX3CHARACTERKINEMATIC_LIB_PROFILE + NAMES PhysX3CharacterKinematicPROFILE${PHYSX_ARCH_FILE} + PATHS ${BIN_PATH} + ) + find_library(PHYSX3COMMON_LIB_PROFILE + NAMES PhysX3CommonPROFILE${PHYSX_ARCH_FILE} + PATHS ${BIN_PATH} + ) + +endif() + + +FIND_PACKAGE_HANDLE_STANDARD_ARGS(PHYSXSDK + DEFAULT_MSG + PHYSXSDK_PATH + + PHYSX3_LIB + PHYSX3EXTENSIONS_LIB + PHYSX3CHARACTERKINEMATIC_LIB + PHYSX3COMMON_LIB + PHYSX3COOKING_LIB + LOWLEVEL_LIB + LOWLEVELAABB_LIB + LOWLEVELCLOTH_LIB + LOWLEVELDYNAMICS_LIB + LOWLEVELPARTICLES_LIB + SCENEQUERY_LIB + SIMULATIONCONTROLLER_LIB + + PHYSX3_LIB_DEBUG + PHYSX3EXTENSIONS_LIB_DEBUG + PHYSX3CHARACTERKINEMATIC_LIB_DEBUG + PHYSX3COMMON_LIB_DEBUG + PHYSX3COOKING_LIB_DEBUG + LOWLEVEL_LIB_DEBUG + LOWLEVELAABB_LIB_DEBUG + LOWLEVELCLOTH_LIB_DEBUG + LOWLEVELDYNAMICS_LIB_DEBUG + LOWLEVELPARTICLES_LIB_DEBUG + SCENEQUERY_LIB_DEBUG + SIMULATIONCONTROLLER_LIB_DEBUG + +# PHYSX3_LIB_CHECKED +# PHYSX3EXTENSIONS_LIB_CHECKED +# PHYSX3CHARACTERKINEMATIC_LIB_CHECKED +# PHYSX3COMMON_LIB_CHECKED +# PHYSX3COOKING_LIB_CHECKED +# LOWLEVEL_LIB_CHECKED +# LOWLEVELAABB_LIB_CHECKED +# LOWLEVELCLOTH_LIB_CHECKED +# LOWLEVELDYNAMICS_LIB_CHECKED +# LOWLEVELPARTICLES_LIB_CHECKED +# SCENEQUERY_LIB_CHECKED +# SIMULATIONCONTROLLER_LIB_CHECKED +# +# PHYSX3_LIB_PROFILE +# PHYSX3EXTENSIONS_LIB_PROFILE +# PHYSX3CHARACTERKINEMATIC_LIB_PROFILE +# PHYSX3COMMON_LIB_PROFILE +# PHYSX3COOKING_LIB_PROFILE +# LOWLEVEL_LIB_PROFILE +# LOWLEVELAABB_LIB_PROFILE +# LOWLEVELCLOTH_LIB_PROFILE +# LOWLEVELDYNAMICS_LIB_PROFILE +# LOWLEVELPARTICLES_LIB_PROFILE +# SCENEQUERY_LIB_PROFILE +# SIMULATIONCONTROLLER_LIB_PROFILE + + ${DLL_VAR_LIST} +) + +if (PHYSXSDK_FOUND) + + SET(PHYSXSDK_INCLUDE_DIRS + ${PHYSXSDK_PATH}/Include + ${PHYSXSDK_PATH}/Include/common + ${PHYSXSDK_PATH}/Include/cooking + ${PHYSXSDK_PATH}/Include/extensions + ${PHYSXSDK_PATH}/Include/geometry + ${PHYSXSDK_PATH}/Include/gpu + ${PHYSXSDK_PATH}/Include/deformable + ${PHYSXSDK_PATH}/Include/particles + ${PHYSXSDK_PATH}/Include/characterkinematic + ${PHYSXSDK_PATH}/Include/characterdynamic + ${PHYSXSDK_PATH}/Include/vehicle + ) + + SET(PHYSXSDK_LIBS_RELEASE ${PHYSX3_LIB} ${PHYSX3EXTENSIONS_LIB} ${PHYSX3CHARACTERKINEMATIC_LIB} ${PHYSX3COMMON_LIB} ${PHYSX3COOKING_LIB} ${PHYSX3GPU_LIB} ${LOWLEVEL_LIB} ${LOWLEVELAABB_LIB} ${LOWLEVELCLOTH_LIB} ${LOWLEVELDYNAMICS_LIB} ${LOWLEVELPARTICLES_LIB} ${SCENEQUERY_LIB} ${SIMULATIONCONTROLLER_LIB} + CACHE STRING "" + ) + SET(PHYSXSDK_LIBS_DEBUG ${PHYSX3_LIB_DEBUG} ${PHYSX3EXTENSIONS_LIB_DEBUG} ${PHYSX3CHARACTERKINEMATIC_LIB_DEBUG} ${PHYSX3COMMON_LIB_DEBUG} ${PHYSX3COOKING_LIB_DEBUG} ${PHYSX3GPU_LIB_DEBUG} ${LOWLEVEL_LIB_DEBUG} ${LOWLEVELAABB_LIB_DEBUG} ${LOWLEVELCLOTH_LIB_DEBUG} ${LOWLEVELDYNAMICS_LIB_DEBUG} ${LOWLEVELPARTICLES_LIB_DEBUG} ${SCENEQUERY_LIB_DEBUG} ${SIMULATIONCONTROLLER_LIB_DEBUG} + CACHE STRING "" + ) + SET(PHYSXSDK_LIBS_CHECKED ${PHYSX3_LIB_CHECKED} ${PHYSX3EXTENSIONS_LIB_CHECKED} ${PHYSX3CHARACTERKINEMATIC_LIB_CHECKED} ${PHYSX3COMMON_LIB_CHECKED} ${PHYSX3COOKING_LIB_CHECKED} ${PHYSX3GPU_LIB_CHECKED} ${LOWLEVEL_LIB_CHECKED} ${LOWLEVELAABB_LIB_CHECKED} ${LOWLEVELCLOTH_LIB_CHECKED} ${LOWLEVELDYNAMICS_LIB_CHECKED} ${LOWLEVELPARTICLES_LIB_CHECKED} ${SCENEQUERY_LIB_CHECKED} ${SIMULATIONCONTROLLER_LIB_CHECKED} + CACHE STRING "" + ) + SET(PHYSXSDK_LIBS_PROFILE ${PHYSX3_LIB_PROFILE} ${PHYSX3EXTENSIONS_LIB_PROFILE} ${PHYSX3CHARACTERKINEMATIC_LIB_PROFILE} ${PHYSX3COMMON_LIB_PROFILE} ${PHYSX3COOKING_LIB_PROFILE} ${PHYSX3GPU_LIB_PROFILE} ${LOWLEVEL_LIB_PROFILE} ${LOWLEVELAABB_LIB_PROFILE} ${LOWLEVELCLOTH_LIB_PROFILE} ${LOWLEVELDYNAMICS_LIB_PROFILE} ${LOWLEVELPARTICLES_LIB_PROFILE} ${SCENEQUERY_LIB_PROFILE} ${SIMULATIONCONTROLLER_LIB_PROFILE} + CACHE STRING "" + ) + + #NOTE: This is all dll configs, might need to be split. + SET(PHYSXSDK_DLLS + ${PHYSX3_DLL} ${PHYSX3CHARACTERKINEMATIC_DLL} ${PHYSX3COMMON_DLL} ${PHYSX3COOKING_DLL} ${PHYSX3GPU_DLL} + ${PHYSX3_DLL_DEBUG} ${PHYSX3CHARACTERKINEMATIC_DLL_DEBUG} ${PHYSX3COMMON_DLL_DEBUG} ${PHYSX3COOKING_DLL_DEBUG} ${PHYSX3GPU_DLL_DEBUG} + ${PHYSX3_DLL_PROFILE} ${PHYSX3CHARACTERKINEMATIC_DLL_PROFILE} ${PHYSX3COMMON_DLL_PROFILE} ${PHYSX3COOKING_DLL_PROFILE} ${PHYSX3GPU_DLL_PROFILE} + ${PHYSX3_DLL_CHECKED} ${PHYSX3CHARACTERKINEMATIC_DLL_CHECKED} ${PHYSX3COMMON_DLL_CHECKED} ${PHYSX3COOKING_DLL_CHECKED} ${PHYSX3GPU_DLL_CHECKED} + ) + + SET(PHYSXSDK_LIBRARIES "" CACHE STRING "") + + foreach(x ${PHYSXSDK_LIBS_RELEASE}) + list(APPEND PHYSXSDK_LIBRARIES optimized ${x}) + endforeach() + + foreach(x ${PHYSXSDK_LIBS_DEBUG}) + list(APPEND PHYSXSDK_LIBRARIES debug ${x}) + endforeach() +endif() diff --git a/sdk/compiler/cmake/modules/FindPxSharedSDK.cmake b/sdk/compiler/cmake/modules/FindPxSharedSDK.cmake new file mode 100644 index 0000000..0f67f5c --- /dev/null +++ b/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() diff --git a/sdk/compiler/cmake/modules/FindXDK.cmake b/sdk/compiler/cmake/modules/FindXDK.cmake new file mode 100644 index 0000000..601dd8f --- /dev/null +++ b/sdk/compiler/cmake/modules/FindXDK.cmake @@ -0,0 +1,257 @@ +# - Try to find XDLK +# - Sets XDK_LIBRARIES - list of the libraries found +# - Sets XDK_INCLUDE_DIRS + +include(FindPackageHandleStandardArgs) + +# Find the includes + +# TODO: Do the version stuff properly! +# TODO: Handle a binary dep version of the XDK +find_path(XDK_PATH include/winrt/Windows.Xbox.UI.h + PATHS + $ENV{XboxOneXDKLatest}/xdk +) + +SET(LIB_PATH ${XDK_PATH}/Lib/amd64/) +SET(CMAKE_FIND_LIBRARY_PREFIXES "") +SET(CMAKE_FIND_LIBRARY_SUFFIXES ".lib") + +MESSAGE("XDK LIB PATH: ${LIB_PATH}") + +find_library(ACPHAL_LIB + NAMES acphal + PATHS ${LIB_PATH} +) + +find_library(APPMODEL_LIB + NAMES appmodel + PATHS ${LIB_PATH} +) + +find_library(BCRYPT_LIB + NAMES bcrypt + PATHS ${LIB_PATH} +) + +find_library(COMBASE_LIB + NAMES combase + PATHS ${LIB_PATH} +) + +find_library(CONSOLEID_LIB + NAMES consoleid + PATHS ${LIB_PATH} +) + +find_library(D3D11_X_LIB + NAMES d3d11_x + PATHS ${LIB_PATH} +) + +find_library(D3D12_X_LIB + NAMES d3d12_x + PATHS ${LIB_PATH} +) + +find_library(D3DCOMPILER_LIB + NAMES d3dcompiler + PATHS ${LIB_PATH} +) + +find_library(DXGUID_LIB + NAMES dxguid + PATHS ${LIB_PATH} +) + +find_library(ETWPLUS_LIB + NAMES etwplus + PATHS ${LIB_PATH} +) + +find_library(IXMLHTTPREQUEST2_LIB + NAMES ixmlhttprequest2 + PATHS ${LIB_PATH} +) + +find_library(KERNELX_LIB + NAMES kernelx + PATHS ${LIB_PATH} +) + +find_library(KSTUDIOCLIENT_LIB + NAMES kstudioclient + PATHS ${LIB_PATH} +) + +find_library(MFPLAT_LIB + NAMES mfplat + PATHS ${LIB_PATH} +) + +find_library(MFREADWRITE_LIB + NAMES mfreadwrite + PATHS ${LIB_PATH} +) + +find_library(MFUUID_LIB + NAMES mfuuid + PATHS ${LIB_PATH} +) + +find_library(MMDEVAPI_LIB + NAMES mmdevapi + PATHS ${LIB_PATH} +) + +find_library(PIXEVT_LIB + NAMES PIXEvt + PATHS ${LIB_PATH} +) + +find_library(RPCRT4_LIB + NAMES rpcrt4 + PATHS ${LIB_PATH} +) + +find_library(SMARTGLASSINTEROP_LIB + NAMES smartglassinterop + PATHS ${LIB_PATH} +) + +find_library(STRMIIDS_LIB + NAMES strmiids + PATHS ${LIB_PATH} +) + +find_library(TOOLHELPX_LIB + NAMES toolhelpx + PATHS ${LIB_PATH} +) + +find_library(UUID_LIB + NAMES uuid + PATHS ${LIB_PATH} +) + +find_library(WINDOWSCODECS_LIB + NAMES windowscodecs + PATHS ${LIB_PATH} +) + +find_library(WMCODECDSPUUID_LIB + NAMES wmcodecdspuuid + PATHS ${LIB_PATH} +) + +find_library(WS2_32_LIB + NAMES ws2_32 + PATHS ${LIB_PATH} +) + +find_library(XAPOBASE_LIB + NAMES xapobase + PATHS ${LIB_PATH} +) + +find_library(XAUDIO2_LIB + NAMES xaudio2 + PATHS ${LIB_PATH} +) + +find_library(XG_X_LIB + NAMES xg_x + PATHS ${LIB_PATH} +) + +find_library(XI_LIB + NAMES xi + PATHS ${LIB_PATH} +) + +find_library(XSTUDIOCLIENT_LIB + NAMES xstudioclient + PATHS ${LIB_PATH} +) + + + +FIND_PACKAGE_HANDLE_STANDARD_ARGS(XDK + DEFAULT_MSG + XDK_PATH + + ACPHAL_LIB + APPMODEL_LIB + BCRYPT_LIB + COMBASE_LIB + CONSOLEID_LIB + D3D11_X_LIB + D3D12_X_LIB + D3DCOMPILER_LIB + DXGUID_LIB + ETWPLUS_LIB + IXMLHTTPREQUEST2_LIB + KERNELX_LIB + KSTUDIOCLIENT_LIB + MFPLAT_LIB + MFREADWRITE_LIB + MFUUID_LIB + MMDEVAPI_LIB + PIXEVT_LIB + RPCRT4_LIB + SMARTGLASSINTEROP_LIB + STRMIIDS_LIB + TOOLHELPX_LIB + UUID_LIB + WINDOWSCODECS_LIB + WMCODECDSPUUID_LIB + WS2_32_LIB + XAPOBASE_LIB + XAUDIO2_LIB + XG_X_LIB + XI_LIB + XSTUDIOCLIENT_LIB +) + +if (XDK_FOUND) + SET(XDK_INCLUDE_DIRS + ${XDK_PATH}/Include + ${XDK_PATH}/Include/shared + ${XDK_PATH}/Include/um + ${XDK_PATH}/Include/winrt + ) + + SET(XDK_LIBRARIES + ${ACPHAL_LIB} + ${APPMODEL_LIB} + ${BCRYPT_LIB} + ${COMBASE_LIB} + ${CONSOLEID_LIB} + ${D3D11_X_LIB} + ${D3D12_X_LIB} + ${D3DCOMPILER_LIB} + ${DXGUID_LIB} + ${ETWPLUS_LIB} + ${IXMLHTTPREQUEST2_LIB} + ${KERNELX_LIB} + ${KSTUDIOCLIENT_LIB} + ${MFPLAT_LIB} + ${MFREADWRITE_LIB} + ${MFUUID_LIB} + ${MMDEVAPI_LIB} + ${PIXEVT_LIB} + ${RPCRT4_LIB} + ${SMARTGLASSINTEROP_LIB} + ${STRMIIDS_LIB} + ${TOOLHELPX_LIB} + ${UUID_LIB} + ${WINDOWSCODECS_LIB} + ${WMCODECDSPUUID_LIB} + ${WS2_32_LIB} + ${XAPOBASE_LIB} + ${XAUDIO2_LIB} + ${XG_X_LIB} + ${XI_LIB} + ${XSTUDIOCLIENT_LIB} + ) +endif() |