|
@@ -14,40 +14,51 @@ set(AWS_BASE_PATH ${CMAKE_CURRENT_LIST_DIR}/${AWSNATIVESDK_PACKAGE_NAME})
|
|
|
# Include Path
|
|
|
set(AWSNATIVESDK_INCLUDE_PATH ${AWS_BASE_PATH}/include)
|
|
|
|
|
|
-
|
|
|
# Determine the lib path and possible bin path
|
|
|
if (LY_MONOLITHIC_GAME)
|
|
|
-
|
|
|
- set(AWSNATIVESDK_COMPILE_DEFINITIONS AWS_CUSTOM_MEMORY_MANAGEMENT PLATFORM_SUPPORTS_AWS_NATIVE_SDK)
|
|
|
+ set(AWSNATIVESDK_COMPILE_DEFINITIONS
|
|
|
+ AWS_CUSTOM_MEMORY_MANAGEMENT
|
|
|
+ PLATFORM_SUPPORTS_AWS_NATIVE_SDK
|
|
|
+ )
|
|
|
set(AWSNATIVE_SDK_LIB_PATH ${AWS_BASE_PATH}/lib/$<IF:$<CONFIG:Debug>,Debug,Release>)
|
|
|
- unset(AWSNATIVE_SDK_BIN_PATH)
|
|
|
-
|
|
|
else()
|
|
|
-
|
|
|
- set(AWSNATIVESDK_COMPILE_DEFINITIONS AWS_CUSTOM_MEMORY_MANAGEMENT PLATFORM_SUPPORTS_AWS_NATIVE_SDK USE_IMPORT_EXPORT)
|
|
|
+ set(AWSNATIVESDK_COMPILE_DEFINITIONS
|
|
|
+ AWS_CUSTOM_MEMORY_MANAGEMENT
|
|
|
+ PLATFORM_SUPPORTS_AWS_NATIVE_SDK
|
|
|
+ USE_IMPORT_EXPORT
|
|
|
+ USE_WINDOWS_DLL_SEMANTICS
|
|
|
+ AWS_CRT_CPP_USE_IMPORT_EXPORT
|
|
|
+ AWS_HTTP_USE_IMPORT_EXPORT
|
|
|
+ AWS_IO_USE_IMPORT_EXPORT
|
|
|
+ AWS_USE_IO_COMPLETION_PORTS
|
|
|
+ AWS_COMMON_USE_IMPORT_EXPORT
|
|
|
+ AWS_CAL_USE_IMPORT_EXPORT
|
|
|
+ AWS_COMPRESSION_USE_IMPORT_EXPORT
|
|
|
+ AWS_MQTT_USE_IMPORT_EXPORT
|
|
|
+ AWS_MQTT_WITH_WEBSOCKETS
|
|
|
+ AWS_AUTH_USE_IMPORT_EXPORT
|
|
|
+ AWS_CHECKSUMS_USE_IMPORT_EXPORT
|
|
|
+ AWS_EVENT_STREAM_USE_IMPORT_EXPORT
|
|
|
+ AWS_S3_USE_IMPORT_EXPORT
|
|
|
+ )
|
|
|
set(AWSNATIVE_SDK_LIB_PATH ${AWS_BASE_PATH}/bin/$<IF:$<CONFIG:Debug>,Debug,Release>)
|
|
|
- set(AWSNATIVE_SDK_BIN_PATH ${AWS_BASE_PATH}/bin/$<IF:$<CONFIG:Debug>,Debug,Release>)
|
|
|
-
|
|
|
endif()
|
|
|
|
|
|
# Helper function to define individual AWSNativeSDK Libraries
|
|
|
function(ly_declare_aws_library)
|
|
|
-
|
|
|
set(options)
|
|
|
set(oneValueArgs NAME LIB_FILE)
|
|
|
- set(multiValueArgs BUILD_DEPENDENCIES)
|
|
|
-
|
|
|
+ set(multiValueArgs BUILD_DEPENDENCIES RUNTIME_DEPENDENCIES)
|
|
|
+
|
|
|
cmake_parse_arguments(ly_declare_aws_library "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
|
|
|
|
|
|
set(TARGET_WITH_NAMESPACE "3rdParty::${AWSNATIVESDK_PACKAGE_NAME}::${ly_declare_aws_library_NAME}")
|
|
|
if (NOT TARGET ${TARGET_WITH_NAMESPACE})
|
|
|
-
|
|
|
add_library(${TARGET_WITH_NAMESPACE} INTERFACE IMPORTED GLOBAL)
|
|
|
|
|
|
ly_target_include_system_directories(TARGET ${TARGET_WITH_NAMESPACE} INTERFACE ${AWSNATIVESDK_INCLUDE_PATH})
|
|
|
|
|
|
if (ly_declare_aws_library_LIB_FILE)
|
|
|
-
|
|
|
target_link_libraries(${TARGET_WITH_NAMESPACE}
|
|
|
INTERFACE
|
|
|
${AWSNATIVE_SDK_LIB_PATH}/${CMAKE_STATIC_LIBRARY_PREFIX}${ly_declare_aws_library_LIB_FILE}${CMAKE_STATIC_LIBRARY_SUFFIX}
|
|
@@ -55,69 +66,83 @@ function(ly_declare_aws_library)
|
|
|
)
|
|
|
|
|
|
if (NOT LY_MONOLITHIC_GAME)
|
|
|
- ly_add_dependencies(${TARGET_WITH_NAMESPACE} ${AWSNATIVE_SDK_BIN_PATH}/${CMAKE_SHARED_LIBRARY_PREFIX}${ly_declare_aws_library_LIB_FILE}${CMAKE_SHARED_LIBRARY_SUFFIX})
|
|
|
+ ly_add_dependencies(${TARGET_WITH_NAMESPACE} ${AWSNATIVE_SDK_LIB_PATH}/${CMAKE_SHARED_LIBRARY_PREFIX}${ly_declare_aws_library_LIB_FILE}${CMAKE_SHARED_LIBRARY_SUFFIX})
|
|
|
+
|
|
|
+ if (ly_declare_aws_library_RUNTIME_DEPENDENCIES)
|
|
|
+ ly_add_dependencies(${TARGET_WITH_NAMESPACE} ${ly_declare_aws_library_RUNTIME_DEPENDENCIES})
|
|
|
+ endif()
|
|
|
endif()
|
|
|
-
|
|
|
elseif (ly_declare_aws_library_BUILD_DEPENDENCIES)
|
|
|
target_link_libraries(${TARGET_WITH_NAMESPACE}
|
|
|
INTERFACE
|
|
|
${ly_declare_aws_library_BUILD_DEPENDENCIES}
|
|
|
)
|
|
|
endif()
|
|
|
-
|
|
|
- target_link_options(${TARGET_WITH_NAMESPACE} INTERFACE ${AWSNATIVESDK_LINK_OPTIONS})
|
|
|
|
|
|
+ target_link_options(${TARGET_WITH_NAMESPACE} INTERFACE ${AWSNATIVESDK_LINK_OPTIONS})
|
|
|
|
|
|
target_compile_definitions(${TARGET_WITH_NAMESPACE} INTERFACE ${AWSNATIVESDK_COMPILE_DEFINITIONS})
|
|
|
|
|
|
endif()
|
|
|
-
|
|
|
endfunction()
|
|
|
|
|
|
|
|
|
-#### Common ####
|
|
|
-ly_declare_aws_library(
|
|
|
- NAME
|
|
|
- Common
|
|
|
- LIB_FILE
|
|
|
- aws-c-common
|
|
|
- BUILD_DEPENDENCIES
|
|
|
- Bcrypt.lib
|
|
|
- Userenv.lib
|
|
|
- Version.lib
|
|
|
- Wininet.lib
|
|
|
- Winhttp.lib
|
|
|
- Ws2_32.lib
|
|
|
-)
|
|
|
-
|
|
|
-#### Checksums ####
|
|
|
-ly_declare_aws_library(
|
|
|
- NAME
|
|
|
- Checksums
|
|
|
- LIB_FILE
|
|
|
- aws-checksums
|
|
|
+#### Core ####
|
|
|
+set(CORE_STATIC_LIBS
|
|
|
+ ${AWSNATIVE_SDK_LIB_PATH}/aws-crt-cpp.lib
|
|
|
+ ${AWSNATIVE_SDK_LIB_PATH}/aws-c-s3.lib
|
|
|
+ ${AWSNATIVE_SDK_LIB_PATH}/aws-c-auth.lib
|
|
|
+ ${AWSNATIVE_SDK_LIB_PATH}/aws-c-mqtt.lib
|
|
|
+ ${AWSNATIVE_SDK_LIB_PATH}/aws-c-http.lib
|
|
|
+ ${AWSNATIVE_SDK_LIB_PATH}/aws-c-event-stream.lib
|
|
|
+ ${AWSNATIVE_SDK_LIB_PATH}/aws-c-io.lib
|
|
|
+ ${AWSNATIVE_SDK_LIB_PATH}/aws-checksums.lib
|
|
|
+ ${AWSNATIVE_SDK_LIB_PATH}/aws-c-compression.lib
|
|
|
+ ${AWSNATIVE_SDK_LIB_PATH}/aws-c-cal.lib
|
|
|
+ ${AWSNATIVE_SDK_LIB_PATH}/aws-c-common.lib
|
|
|
+ Ncrypt
|
|
|
+ Secur32
|
|
|
+ Shlwapi
|
|
|
+ Userenv
|
|
|
+ Wininet
|
|
|
+ Winhttp
|
|
|
)
|
|
|
|
|
|
-#### EventStream ####
|
|
|
-ly_declare_aws_library(
|
|
|
- NAME
|
|
|
- EventStream
|
|
|
- LIB_FILE
|
|
|
- aws-c-event-stream
|
|
|
- BUILD_DEPENDENCIES
|
|
|
- 3rdParty::AWSNativeSDK::Checksums
|
|
|
+set(CORE_SHARED_LIBS
|
|
|
+ ${AWSNATIVE_SDK_LIB_PATH}/aws-crt-cpp.dll
|
|
|
+ ${AWSNATIVE_SDK_LIB_PATH}/aws-c-s3.dll
|
|
|
+ ${AWSNATIVE_SDK_LIB_PATH}/aws-c-auth.dll
|
|
|
+ ${AWSNATIVE_SDK_LIB_PATH}/aws-c-mqtt.dll
|
|
|
+ ${AWSNATIVE_SDK_LIB_PATH}/aws-c-http.dll
|
|
|
+ ${AWSNATIVE_SDK_LIB_PATH}/aws-c-event-stream.dll
|
|
|
+ ${AWSNATIVE_SDK_LIB_PATH}/aws-c-io.dll
|
|
|
+ ${AWSNATIVE_SDK_LIB_PATH}/aws-checksums.dll
|
|
|
+ ${AWSNATIVE_SDK_LIB_PATH}/aws-c-compression.dll
|
|
|
+ ${AWSNATIVE_SDK_LIB_PATH}/aws-c-cal.dll
|
|
|
+ ${AWSNATIVE_SDK_LIB_PATH}/aws-c-common.dll
|
|
|
)
|
|
|
|
|
|
-#### Core ####
|
|
|
-ly_declare_aws_library(
|
|
|
- NAME
|
|
|
- Core
|
|
|
- LIB_FILE
|
|
|
- aws-cpp-sdk-core
|
|
|
- BUILD_DEPENDENCIES
|
|
|
- 3rdParty::AWSNativeSDK::Common
|
|
|
- 3rdParty::AWSNativeSDK::EventStream
|
|
|
-)
|
|
|
+if(LY_MONOLITHIC_GAME)
|
|
|
+ ly_declare_aws_library(
|
|
|
+ NAME
|
|
|
+ Core
|
|
|
+ LIB_FILE
|
|
|
+ aws-cpp-sdk-core
|
|
|
+ BUILD_DEPENDENCIES
|
|
|
+ ${CORE_STATIC_LIBS}
|
|
|
+ )
|
|
|
+else()
|
|
|
+ ly_declare_aws_library(
|
|
|
+ NAME
|
|
|
+ Core
|
|
|
+ LIB_FILE
|
|
|
+ aws-cpp-sdk-core
|
|
|
+ BUILD_DEPENDENCIES
|
|
|
+ ${CORE_STATIC_LIBS}
|
|
|
+ RUNTIME_DEPENDENCIES
|
|
|
+ ${CORE_SHARED_LIBS}
|
|
|
+ )
|
|
|
+endif()
|
|
|
|
|
|
#### AccessManagement ####
|
|
|
ly_declare_aws_library(
|
|
@@ -251,46 +276,6 @@ ly_declare_aws_library(
|
|
|
#########
|
|
|
######### Grouping Definitions #########
|
|
|
#########
|
|
|
-
|
|
|
-
|
|
|
-#### Dependencies ####
|
|
|
-ly_declare_aws_library(
|
|
|
- NAME
|
|
|
- Dependencies
|
|
|
- BUILD_DEPENDENCIES
|
|
|
- 3rdParty::AWSNativeSDK::Checksums
|
|
|
- 3rdParty::AWSNativeSDK::Common
|
|
|
- 3rdParty::AWSNativeSDK::EventStream
|
|
|
-)
|
|
|
-
|
|
|
-#### IdentityMetrics ####
|
|
|
-ly_declare_aws_library(
|
|
|
- NAME
|
|
|
- IdentityMetrics
|
|
|
- BUILD_DEPENDENCIES
|
|
|
- 3rdParty::AWSNativeSDK::Dependencies
|
|
|
- 3rdParty::AWSNativeSDK::CognitoIdentity
|
|
|
- 3rdParty::AWSNativeSDK::CognitoIdp
|
|
|
- 3rdParty::AWSNativeSDK::Core
|
|
|
- 3rdParty::AWSNativeSDK::IdentityManagement
|
|
|
- 3rdParty::AWSNativeSDK::STS
|
|
|
- 3rdParty::AWSNativeSDK::MobileAnalytics
|
|
|
-)
|
|
|
-
|
|
|
-#### IdentityLambda ####
|
|
|
-ly_declare_aws_library(
|
|
|
- NAME
|
|
|
- IdentityLambda
|
|
|
- BUILD_DEPENDENCIES
|
|
|
- 3rdParty::AWSNativeSDK::Dependencies
|
|
|
- 3rdParty::AWSNativeSDK::CognitoIdentity
|
|
|
- 3rdParty::AWSNativeSDK::CognitoIdp
|
|
|
- 3rdParty::AWSNativeSDK::Core
|
|
|
- 3rdParty::AWSNativeSDK::IdentityManagement
|
|
|
- 3rdParty::AWSNativeSDK::Lambda
|
|
|
- 3rdParty::AWSNativeSDK::STS
|
|
|
-)
|
|
|
-
|
|
|
#### GameLiftClient ####
|
|
|
ly_declare_aws_library(
|
|
|
NAME
|
|
@@ -298,7 +283,6 @@ ly_declare_aws_library(
|
|
|
BUILD_DEPENDENCIES
|
|
|
3rdParty::AWSNativeSDK::Core
|
|
|
3rdParty::AWSNativeSDK::GameLift
|
|
|
- 3rdParty::AWSNativeSDK::Dependencies
|
|
|
)
|
|
|
|
|
|
#### AWSClientAuth ####
|
|
@@ -306,7 +290,7 @@ ly_declare_aws_library(
|
|
|
NAME
|
|
|
AWSClientAuth
|
|
|
BUILD_DEPENDENCIES
|
|
|
- 3rdParty::AWSNativeSDK::Dependencies
|
|
|
+ 3rdParty::AWSNativeSDK::Core
|
|
|
3rdParty::AWSNativeSDK::CognitoIdentity
|
|
|
3rdParty::AWSNativeSDK::CognitoIdp
|
|
|
3rdParty::AWSNativeSDK::STS
|
|
@@ -319,10 +303,8 @@ ly_declare_aws_library(
|
|
|
NAME
|
|
|
AWSCore
|
|
|
BUILD_DEPENDENCIES
|
|
|
- 3rdParty::AWSNativeSDK::Dependencies
|
|
|
3rdParty::AWSNativeSDK::Core
|
|
|
3rdParty::AWSNativeSDK::DynamoDB
|
|
|
3rdParty::AWSNativeSDK::Lambda
|
|
|
3rdParty::AWSNativeSDK::S3
|
|
|
)
|
|
|
-
|