This package defines and builds the AWS C++ SDK libarires for O3DE. It builds all core libraries and an opinionated subset of AWS client libraries. To add a new AWS Service client (or target) please use the example and instructions below.
Find and identify the service package(s) required from the package directory at aws/aws-sdk-cpp on GitHub. Refer to the AWS SDK for C++ Developer Guide for further help. The package name is the suffix of the directory name for the service.
aws-sdk-cpp\aws-cpp-sdk-<packageName> # Repo directory name and packageName
aws-sdk-cpp\aws-cpp-sdk-s3 # Example: Package name is s3
Note: If the AWS service package is not currently available in AWSNativeSDK, then please upgrade AWSNativeSDK version first.
Modify AWSNativeSDK build script by adding ElasticSearch as a build target. The example below uses the windows build script as a reference:
AWSNativeSDK build script (windows)
--- a/package-system/AWSNativeSDK/build_AWSNativeSDK_windows.cmd
+++ b/package-system/AWSNativeSDK/build_AWSNativeSDK_windows.cmd
@@ -58,7 +58,7 @@ call cmake -S %SRC_PATH% -B %BLD_PATH%\%BUILD_TYPE%_%LIB_TYPE% ^
-DTARGET_ARCH=WINDOWS ^
-DCMAKE_CXX_STANDARD=17 ^
-DCPP_STANDARD=17 ^
- -DBUILD_ONLY="access-management;cognito-identity;cognito-idp;core;devicefarm;dynamodb;gamelift;identity-management;kinesis;lambda;queues;s3;sns;sqs;sts;transfer" ^
+ -DBUILD_ONLY="access-management;cognito-identity;cognito-idp;core;devicefarm;dynamodb;es;gamelift;identity-management;kinesis;lambda;queues;s3;sns;sqs;sts;transfer" ^
-DENABLE_TESTING=OFF ^
-DENABLE_RTTI=ON ^
-DCUSTOM_MEMORY_MANAGEMENT=ON ^
aws-cpp-sdk-es shared and static libraries will be generated after AWSNativeSDK is built.
Modify FindAWSNativeSDK.cmake file by creating a new target for ElasticSearch, The example below uses the windows cmake file as a reference:
FindAWSNativeSDK.cmake.Windows
--- a/package-system/AWSNativeSDK/FindAWSNativeSDK.cmake.Windows
+++ b/package-system/AWSNativeSDK/FindAWSNativeSDK.cmake.Windows
@@ -272,6 +272,13 @@ ly_declare_aws_library(
aws-cpp-sdk-transfer
)
+#### ElasticSearch ####
+ly_declare_aws_library(
+ NAME
+ ElasticSearch
+ LIB_FILE
+ aws-cpp-sdk-es
+)
It is up to the consumer to pull aws-cpp-sdk-es shared and static libraries as build and runtime dependencies by using 3rdParty::AWSNativeSDK::ElasticSearch
target.
Modify build config and list file to bump AWSNativeSDK with correct version and revision value. The example below uses the windows build as a reference:
As current version is 1.9.50-rev2
, bump it to 1.9.50-rev3
for example
--- a/package-system/AWSNativeSDK/build_config.json
+++ b/package-system/AWSNativeSDK/build_config.json
@@ -12,7 +12,7 @@
"Platforms":{
"Windows":{
"Windows":{
- "package_version":"1.9.50-rev2",
+ "package_version":"1.9.50-rev3",
"patch_file":"AWSNativeSDK-1.9.50-windows.patch",
"cmake_find_source":"FindAWSNativeSDK.cmake.Windows",
"custom_build_cmd": [
package_build_list_host_windows.json
--- a/package_build_list_host_windows.json
+++ b/package_build_list_host_windows.json
@@ -4,7 +4,7 @@
"comment3" : "build_from_folder is package name --> folder containing built image of package",
"comment4" : "Note: Build from source occurs before build_from_folder",
"build_from_source": {
- "AWSNativeSDK-1.9.50-rev2-windows": "Scripts/extras/pull_and_build_from_git.py ../../package-system/AWSNativeSDK --platform-name Windows --package-root ../../package-system --clean",
+ "AWSNativeSDK-1.9.50-rev3-windows": "Scripts/extras/pull_and_build_from_git.py ../../package-system/AWSNativeSDK --platform-name Windows --package-root ../../package-system --clean",
"AWSNativeSDK-1.9.50-rev1-android": "Scripts/extras/pull_and_build_from_git.py ../../package-system/AWSNativeSDK --platform-name Android --package-root ../../package-system --clean",
"Blast-v1.1.7_rc2-9-geb169fe-rev2-windows": "package-system/Blast/build_package_image.py --platform-name windows",
"Crashpad-0.8.0-rev2-windows": "package-system/Crashpad/build_package_image.py",
@@ -51,7 +51,7 @@
"build_from_folder": {
"astc-encoder-3.2-rev2-windows" : "package-system/astc-encoder-windows",
"AWSGameLiftServerSDK-3.4.1-rev1-windows" : "package-system/AWSGameLiftServerSDK/windows",
- "AWSNativeSDK-1.9.50-rev2-windows": "package-system/AWSNativeSDK-windows",
+ "AWSNativeSDK-1.9.50-rev3-windows": "package-system/AWSNativeSDK-windows",
"AWSNativeSDK-1.9.50-rev1-android": "package-system/AWSNativeSDK-android",
"Blast-v1.1.7_rc2-9-geb169fe-rev1-windows": "package-system/Blast-windows",
"Crashpad-0.8.0-rev2-windows" : "package-system/Crashpad-windows",