浏览代码

[LYN-4622] Upgrade iOS AWSNativeSDK to 1.9.50 (#61)

* [LYN-4622] Upgrade iOS AWSNativeSDK to 1.9.50
* Clean up cmake and update curl install with min ios version 14.0
* clean up build config
Vincent Liu 3 年之前
父节点
当前提交
a3d2548f5a

+ 40 - 0
package-system/AWSNativeSDK/AWSNativeSDK-1.9.50-ios.patch

@@ -0,0 +1,40 @@
+diff --git a/crt/aws-crt-cpp/include/aws/crt/io/TlsOptions.h b/crt/aws-crt-cpp/include/aws/crt/io/TlsOptions.h
+index 7205d8f..fa6a909 100644
+--- a/crt/aws-crt-cpp/include/aws/crt/io/TlsOptions.h
++++ b/crt/aws-crt-cpp/include/aws/crt/io/TlsOptions.h
+@@ -89,6 +89,7 @@ namespace Aws
+                     const char *pkcs12_pwd,
+                     Allocator *allocator = g_allocator) noexcept;
+ 
++#if !defined(AWS_OS_IOS)
+                 /**
+                  * By default the certificates and private keys are stored in the default keychain
+                  * of the account of the process. If you instead wish to provide your own keychain
+@@ -96,6 +97,8 @@ namespace Aws
+                  * NOTE: The password of your keychain must be empty.
+                  */
+                 bool SetKeychainPath(ByteCursor &keychain_path) noexcept;
++#endif /* !AWS_OS_IOS */
++
+ #endif
+ 
+ #ifdef _WIN32
+diff --git a/crt/aws-crt-cpp/source/io/TlsOptions.cpp b/crt/aws-crt-cpp/source/io/TlsOptions.cpp
+index b9305e5..f32f873 100644
+--- a/crt/aws-crt-cpp/source/io/TlsOptions.cpp
++++ b/crt/aws-crt-cpp/source/io/TlsOptions.cpp
+@@ -106,11 +106,14 @@ namespace Aws
+                 return ctxOptions;
+             }
+ 
++#if !defined(AWS_OS_IOS)
+             bool TlsContextOptions::SetKeychainPath(ByteCursor &keychain_path) noexcept
+             {
+                 AWS_ASSERT(m_isInit);
+                 return aws_tls_ctx_options_set_keychain_path(&m_options, &keychain_path) == 0;
+             }
++#endif /* !AWS_OS_IOS */
++
+ #endif /* AWS_OS_APPLE */
+ 
+ #ifdef _WIN32

+ 16 - 71
package-system/AWSNativeSDK/FindAWSNativeSDK.cmake.iOS

@@ -65,42 +65,29 @@ function(ly_declare_aws_library)
 endfunction()
 endfunction()
 
 
 
 
-#### Common ####
-ly_declare_aws_library(
-    NAME 
-        Common
-    LIB_FILE 
-        aws-c-common
-)       
-
-#### Checksums ####
-ly_declare_aws_library(
-    NAME 
-        Checksums
-    LIB_FILE 
-        aws-checksums
-)
-
-#### EventStream ####
-ly_declare_aws_library(
-    NAME 
-        EventStream
-    LIB_FILE 
-        aws-c-event-stream
-    BUILD_DEPENDENCIES
-        3rdParty::AWSNativeSDK::Checksums
+#### Core ####
+set(CORE_STATIC_LIBS
+    ${AWSNATIVE_SDK_LIB_PATH}/libaws-crt-cpp.a
+    ${AWSNATIVE_SDK_LIB_PATH}/libaws-c-s3.a
+    ${AWSNATIVE_SDK_LIB_PATH}/libaws-c-auth.a
+    ${AWSNATIVE_SDK_LIB_PATH}/libaws-c-mqtt.a
+    ${AWSNATIVE_SDK_LIB_PATH}/libaws-c-http.a
+    ${AWSNATIVE_SDK_LIB_PATH}/libaws-c-event-stream.a
+    ${AWSNATIVE_SDK_LIB_PATH}/libaws-c-io.a
+    ${AWSNATIVE_SDK_LIB_PATH}/libaws-checksums.a
+    ${AWSNATIVE_SDK_LIB_PATH}/libaws-c-compression.a
+    ${AWSNATIVE_SDK_LIB_PATH}/libaws-c-cal.a
+    ${AWSNATIVE_SDK_LIB_PATH}/libaws-c-common.a
+    ${AWSNATIVE_SDK_LIB_PATH}/libcurl.a
 )
 )
 
 
-#### Core ####
 ly_declare_aws_library(
 ly_declare_aws_library(
     NAME 
     NAME 
         Core
         Core
     LIB_FILE 
     LIB_FILE 
         aws-cpp-sdk-core
         aws-cpp-sdk-core
     BUILD_DEPENDENCIES
     BUILD_DEPENDENCIES
-        ${AWSNATIVE_SDK_LIB_PATH}/libcurl${CMAKE_STATIC_LIBRARY_SUFFIX}
-        3rdParty::AWSNativeSDK::Common
-        3rdParty::AWSNativeSDK::EventStream
+        ${CORE_STATIC_LIBS}
 )
 )
 
 
 #### AccessManagement ####
 #### AccessManagement ####
@@ -235,46 +222,6 @@ ly_declare_aws_library(
 #########
 #########
 ######### Grouping Definitions #########
 ######### 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 ####
 #### GameLiftClient ####
 ly_declare_aws_library(
 ly_declare_aws_library(
     NAME 
     NAME 
@@ -282,7 +229,6 @@ ly_declare_aws_library(
     BUILD_DEPENDENCIES 
     BUILD_DEPENDENCIES 
         3rdParty::AWSNativeSDK::Core
         3rdParty::AWSNativeSDK::Core
         3rdParty::AWSNativeSDK::GameLift
         3rdParty::AWSNativeSDK::GameLift
-        3rdParty::AWSNativeSDK::Dependencies
 )
 )
 
 
 #### AWSClientAuth ####
 #### AWSClientAuth ####
@@ -290,7 +236,7 @@ ly_declare_aws_library(
     NAME 
     NAME 
         AWSClientAuth
         AWSClientAuth
     BUILD_DEPENDENCIES 
     BUILD_DEPENDENCIES 
-        3rdParty::AWSNativeSDK::Dependencies
+        3rdParty::AWSNativeSDK::Core
         3rdParty::AWSNativeSDK::CognitoIdentity
         3rdParty::AWSNativeSDK::CognitoIdentity
         3rdParty::AWSNativeSDK::CognitoIdp
         3rdParty::AWSNativeSDK::CognitoIdp
         3rdParty::AWSNativeSDK::STS
         3rdParty::AWSNativeSDK::STS
@@ -303,7 +249,6 @@ ly_declare_aws_library(
     NAME 
     NAME 
         AWSCore
         AWSCore
     BUILD_DEPENDENCIES 
     BUILD_DEPENDENCIES 
-        3rdParty::AWSNativeSDK::Dependencies
         3rdParty::AWSNativeSDK::Core
         3rdParty::AWSNativeSDK::Core
         3rdParty::AWSNativeSDK::DynamoDB
         3rdParty::AWSNativeSDK::DynamoDB
         3rdParty::AWSNativeSDK::Lambda
         3rdParty::AWSNativeSDK::Lambda

+ 8 - 3
package-system/AWSNativeSDK/build_AWSNativeSDK_ios.sh

@@ -7,6 +7,10 @@
 
 
 src_path=temp/src
 src_path=temp/src
 bld_path=temp/build
 bld_path=temp/build
+inst_path=temp/install
+
+echo "Command: rm -rf $inst_path"
+rm -rf $inst_path || (echo "Command: rm -rf $inst_path failed" ; exit 1)
 
 
 configure_and_build_static() {
 configure_and_build_static() {
     build_type=$1
     build_type=$1
@@ -18,8 +22,9 @@ configure_and_build_static() {
           -DCMAKE_SYSTEM_NAME=Darwin \
           -DCMAKE_SYSTEM_NAME=Darwin \
           -DCMAKE_OSX_ARCHITECTURES="arm64" \
           -DCMAKE_OSX_ARCHITECTURES="arm64" \
           -DCMAKE_OSX_SYSROOT="/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk" \
           -DCMAKE_OSX_SYSROOT="/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk" \
-          -DCMAKE_OSX_DEPLOYMENT_TARGET=13.0 \
+          -DCMAKE_OSX_DEPLOYMENT_TARGET=14.0 \
           -DCMAKE_CXX_STANDARD=17 \
           -DCMAKE_CXX_STANDARD=17 \
+          -DCPP_STANDARD=17 \
           -DENABLE_TESTING=OFF \
           -DENABLE_TESTING=OFF \
           -DENABLE_RTTI=ON \
           -DENABLE_RTTI=ON \
           -DCUSTOM_MEMORY_MANAGEMENT=ON \
           -DCUSTOM_MEMORY_MANAGEMENT=ON \
@@ -28,7 +33,7 @@ configure_and_build_static() {
           -DCMAKE_BUILD_TYPE=$build_type \
           -DCMAKE_BUILD_TYPE=$build_type \
           -DCURL_LIBRARY="temp/curl_install/lib/libcurl.a" \
           -DCURL_LIBRARY="temp/curl_install/lib/libcurl.a" \
           -DCURL_INCLUDE_DIR="temp/curl_install/include" \
           -DCURL_INCLUDE_DIR="temp/curl_install/include" \
-          -DCMAKE_INSTALL_LIBDIR="lib/$build_type" || (echo "CMake Configure $build_type Static failed" ; exit 1)
+          -DCMAKE_INSTALL_LIBDIR="lib" || (echo "CMake Configure $build_type Static failed" ; exit 1)
 
 
     echo "CMake Build $build_type Static to $bld_path/${build_type}_Static"
     echo "CMake Build $build_type Static to $bld_path/${build_type}_Static"
     cmake --build "$bld_path/${build_type}_Static" --config $build_type -j 12 || (echo "CMake Build $build_type Static to $bld_path/${build_type}_Static failed" ; exit 1)
     cmake --build "$bld_path/${build_type}_Static" --config $build_type -j 12 || (echo "CMake Build $build_type Static to $bld_path/${build_type}_Static failed" ; exit 1)
@@ -44,7 +49,7 @@ make_configure_and_build_curl() {
   unzip  temp/curl-7.65.3.zip -d temp || exit 1
   unzip  temp/curl-7.65.3.zip -d temp || exit 1
 
 
   EXISTING_CFLAGS=$CFLAGS
   EXISTING_CFLAGS=$CFLAGS
-  export CFLAGS="-arch arm64 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk -miphoneos-version-min=13.0 -fPIC"
+  export CFLAGS="-arch arm64 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk -miphoneos-version-min=14.0 -fPIC"
 
 
   (cd temp/curl-7.65.3 && ./configure --disable-shared --enable-static --enable-ipv6 --with-secure-transport --host="arm-apple-darwin" --prefix=$(pwd)/../curl_install) || exit 1
   (cd temp/curl-7.65.3 && ./configure --disable-shared --enable-static --enable-ipv6 --with-secure-transport --host="arm-apple-darwin" --prefix=$(pwd)/../curl_install) || exit 1
   (cd temp/curl-7.65.3 && make) || exit 1
   (cd temp/curl-7.65.3 && make) || exit 1

+ 3 - 9
package-system/AWSNativeSDK/build_config.json

@@ -1,8 +1,8 @@
 {
 {
    "git_url":"https://github.com/aws/aws-sdk-cpp.git",
    "git_url":"https://github.com/aws/aws-sdk-cpp.git",
-   "git_tag":"1.7.167",
+   "git_tag":"1.9.50",
    "package_name":"AWSNativeSDK",
    "package_name":"AWSNativeSDK",
-   "package_version":"1.7.167-rev4",
+   "package_version":"1.9.50-rev1",
    "package_url":"https://github.com/aws/aws-sdk-cpp",
    "package_url":"https://github.com/aws/aws-sdk-cpp",
    "package_license":"Apache-2.0",
    "package_license":"Apache-2.0",
    "package_license_file":"LICENSE",
    "package_license_file":"LICENSE",
@@ -12,7 +12,6 @@
    "Platforms":{
    "Platforms":{
       "Windows":{
       "Windows":{
          "Windows":{
          "Windows":{
-            "git_tag":"1.9.50",
             "package_version":"1.9.50-rev2",
             "package_version":"1.9.50-rev2",
             "patch_file":"AWSNativeSDK-1.9.50-windows.patch",
             "patch_file":"AWSNativeSDK-1.9.50-windows.patch",
             "cmake_find_source":"FindAWSNativeSDK.cmake.Windows",
             "cmake_find_source":"FindAWSNativeSDK.cmake.Windows",
@@ -24,8 +23,6 @@
             ]
             ]
          },
          },
          "Android":{
          "Android":{
-            "git_tag":"1.9.50",
-            "package_version":"1.9.50-rev1",
             "cmake_find_source":"FindAWSNativeSDK.cmake.Android",
             "cmake_find_source":"FindAWSNativeSDK.cmake.Android",
             "custom_build_cmd": [
             "custom_build_cmd": [
                "build_AWSNativeSDK_android.cmd"
                "build_AWSNativeSDK_android.cmd"
@@ -37,8 +34,6 @@
       },
       },
       "Darwin":{
       "Darwin":{
          "Mac":{
          "Mac":{
-            "git_tag":"1.9.50",
-            "package_version":"1.9.50-rev1",
             "cmake_find_source":"FindAWSNativeSDK.cmake.Mac",
             "cmake_find_source":"FindAWSNativeSDK.cmake.Mac",
             "custom_build_cmd": [
             "custom_build_cmd": [
                "./build_AWSNativeSDK_mac.sh"
                "./build_AWSNativeSDK_mac.sh"
@@ -48,6 +43,7 @@
             ]
             ]
          },
          },
          "iOS":{
          "iOS":{
+            "patch_file":"AWSNativeSDK-1.9.50-ios.patch",
             "cmake_find_source":"FindAWSNativeSDK.cmake.iOS",
             "cmake_find_source":"FindAWSNativeSDK.cmake.iOS",
             "custom_build_cmd": [
             "custom_build_cmd": [
                "./build_AWSNativeSDK_ios.sh"
                "./build_AWSNativeSDK_ios.sh"
@@ -59,8 +55,6 @@
       },
       },
       "Linux":{
       "Linux":{
          "Linux":{
          "Linux":{
-            "git_tag":"1.9.50",
-            "package_version":"1.9.50-rev1",
             "cmake_find_source":"FindAWSNativeSDK.cmake.Linux",
             "cmake_find_source":"FindAWSNativeSDK.cmake.Linux",
             "custom_build_cmd": [
             "custom_build_cmd": [
                "./build_AWSNativeSDK_linux.sh"
                "./build_AWSNativeSDK_linux.sh"

+ 4 - 7
package-system/AWSNativeSDK/install_AWSNativeSDK_ios.sh

@@ -19,10 +19,7 @@ mkdir -p $out_lib_path/Release
 copy_static_libs() {
 copy_static_libs() {
     local bld_type=$1
     local bld_type=$1
     echo "Copying static .a to $out_lib_path/$bld_type"
     echo "Copying static .a to $out_lib_path/$bld_type"
-    cp -f "$inst_path/lib/$bld_type/"*".a" $out_lib_path/$bld_type/ || (echo "Copying static .a to $out_lib_path/$bld_type failed" ; exit 1)
-
-    echo "Copying 3rdParty static .a to $out_lib_path/$bld_type"
-    cp -f "$bld_path/${bld_type}_Static/.deps/install/lib/"*".a" $out_lib_path/$bld_type/ || (echo "Copying 3rdParty static .a to $out_lib_path/$bld_type failed" ; exit 1)
+    cp -f "$inst_path/${bld_type}_Static/lib/"*".a" $out_lib_path/$bld_type/ || (echo "Copying static .a to $out_lib_path/$bld_type failed" ; exit 1)
 
 
     echo "Copying Curl static .a to $out_lib_path/$bld_type"
     echo "Copying Curl static .a to $out_lib_path/$bld_type"
     cp -f "temp/curl_install/lib/"*".a" $out_lib_path/$bld_type/ || (echo "Copying Curl static .a to $out_lib_path/$bld_type failed" ; exit 1)
     cp -f "temp/curl_install/lib/"*".a" $out_lib_path/$bld_type/ || (echo "Copying Curl static .a to $out_lib_path/$bld_type failed" ; exit 1)
@@ -30,18 +27,18 @@ copy_static_libs() {
 
 
 # Debug
 # Debug
 echo "CMake Install Debug Static to $inst_path"
 echo "CMake Install Debug Static to $inst_path"
-cmake --install $bld_path/Debug_Static --prefix $inst_path --config Debug || (echo "CMake Install Debug Static to $inst_path failed" ; exit 1)
+cmake --install $bld_path/Debug_Static --prefix $inst_path/Debug_Static --config Debug || (echo "CMake Install Debug Static to $inst_path failed" ; exit 1)
 
 
 copy_static_libs Debug || exit 1
 copy_static_libs Debug || exit 1
 
 
 # Release
 # Release
 echo "CMake Install Release Static to $inst_path"
 echo "CMake Install Release Static to $inst_path"
-cmake --install $bld_path/Release_Static --prefix $inst_path --config Release || (echo "CMake Install Release Static to $inst_path failed" ; exit 1)
+cmake --install $bld_path/Release_Static --prefix $inst_path/Release_Static --config Release || (echo "CMake Install Release Static to $inst_path failed" ; exit 1)
 
 
 copy_static_libs Release || exit 1
 copy_static_libs Release || exit 1
 
 
 echo "Copying include headers to $out_include_path"
 echo "Copying include headers to $out_include_path"
-cp -f -R "$inst_path/include/"* $out_include_path/ || (echo "Copying include headers to $out_include_path failed" ; exit 1)
+cp -f -R "$inst_path/Release_Static/include/"* $out_include_path/ || (echo "Copying include headers to $out_include_path failed" ; exit 1)
 
 
 echo "Copying LICENSE.txt to $TARGET_INSTALL_ROOT"
 echo "Copying LICENSE.txt to $TARGET_INSTALL_ROOT"
 cp -f $src_path/LICENSE.txt $TARGET_INSTALL_ROOT/ || (echo "Copying LICENSE.txt to $TARGET_INSTALL_ROOT failed" ; exit 1)
 cp -f $src_path/LICENSE.txt $TARGET_INSTALL_ROOT/ || (echo "Copying LICENSE.txt to $TARGET_INSTALL_ROOT failed" ; exit 1)

+ 2 - 2
package_build_list_host_darwin.json

@@ -6,7 +6,7 @@
     "build_from_source": {
     "build_from_source": {
         "assimp-5.0.1-rev12-mac":  "Scripts/extras/pull_and_build_from_git.py ../../package-system/assimp --platform-name Mac --package-root ../../package-system --clean",
         "assimp-5.0.1-rev12-mac":  "Scripts/extras/pull_and_build_from_git.py ../../package-system/assimp --platform-name Mac --package-root ../../package-system --clean",
         "AWSNativeSDK-1.9.50-rev1-mac": "Scripts/extras/pull_and_build_from_git.py ../../package-system/AWSNativeSDK --platform-name Mac --package-root ../../package-system --clean",
         "AWSNativeSDK-1.9.50-rev1-mac": "Scripts/extras/pull_and_build_from_git.py ../../package-system/AWSNativeSDK --platform-name Mac --package-root ../../package-system --clean",
-        "AWSNativeSDK-1.7.167-rev4-ios": "Scripts/extras/pull_and_build_from_git.py ../../package-system/AWSNativeSDK --platform-name iOS --package-root ../../package-system --clean",
+        "AWSNativeSDK-1.9.50-rev1-ios": "Scripts/extras/pull_and_build_from_git.py ../../package-system/AWSNativeSDK --platform-name iOS --package-root ../../package-system --clean",
         "Lua-5.3.5-rev7-mac": "Scripts/extras/pull_and_build_from_git.py ../../package-system/Lua --platform-name Mac --package-root ../../package-system --clean",
         "Lua-5.3.5-rev7-mac": "Scripts/extras/pull_and_build_from_git.py ../../package-system/Lua --platform-name Mac --package-root ../../package-system --clean",
         "Lua-5.3.5-rev7-ios": "Scripts/extras/pull_and_build_from_git.py ../../package-system/Lua --platform-name iOS --package-root ../../package-system --clean",
         "Lua-5.3.5-rev7-ios": "Scripts/extras/pull_and_build_from_git.py ../../package-system/Lua --platform-name iOS --package-root ../../package-system --clean",
         "AwsIotDeviceSdkCpp-1.12.2-rev1-mac": "Scripts/extras/pull_and_build_from_git.py ../../package-system/AwsIotDeviceSdkCpp --platform-name Mac --package-root ../../package-system --clean",
         "AwsIotDeviceSdkCpp-1.12.2-rev1-mac": "Scripts/extras/pull_and_build_from_git.py ../../package-system/AwsIotDeviceSdkCpp --platform-name Mac --package-root ../../package-system --clean",
@@ -52,7 +52,7 @@
     "build_from_folder": {
     "build_from_folder": {
         "assimp-5.0.1-rev12-mac": "package-system/assimp-mac",
         "assimp-5.0.1-rev12-mac": "package-system/assimp-mac",
         "AWSNativeSDK-1.9.50-rev1-mac": "package-system/AWSNativeSDK-mac",
         "AWSNativeSDK-1.9.50-rev1-mac": "package-system/AWSNativeSDK-mac",
-        "AWSNativeSDK-1.7.167-rev4-ios": "package-system/AWSNativeSDK-ios",
+        "AWSNativeSDK-1.9.50-rev1-ios": "package-system/AWSNativeSDK-ios",
         "Lua-5.3.5-rev7-mac": "package-system/Lua-mac",
         "Lua-5.3.5-rev7-mac": "package-system/Lua-mac",
         "Lua-5.3.5-rev7-ios": "package-system/Lua-ios",
         "Lua-5.3.5-rev7-ios": "package-system/Lua-ios",
         "AwsIotDeviceSdkCpp-1.12.2-rev1-mac": "package-system/AwsIotDeviceSdkCpp-mac",
         "AwsIotDeviceSdkCpp-1.12.2-rev1-mac": "package-system/AwsIotDeviceSdkCpp-mac",