[openssl] [aws-c-common] Fix AWS SDK for C++ build on WASM32 and Android (#17348)

* Add curl try_compile parameters
Don't set compiler when compiling for iOS

* Update OpenSSL and AWS SDK for C++ port versions

* [vcpkg baseline][marble] Disable find I18n

* update version record

* Fix AWS C Common build for WASM32

* Fix OpenSSL build for WASM32

* Update AWS C Common and OpenSSL versions

* Update versions/a-/aws-sdk-cpp.json

* Update versions/o-/openssl.json

* Fix port-versions after merging master branch

* Fix port-versions after merging master branch

* Update versions/o-/openssl.json

* Update versions/a-/aws-sdk-cpp.json

* Update versions/o-/openssl.json

* Fix merge conflicts

* Fix merge conflicts

* Update ports/aws-c-common/portfile.cmake

Co-authored-by: Robert Schumacher <roschuma@microsoft.com>

* Update versions/a-/aws-c-common.json

* Update versions/o-/openssl.json

* Update versions/o-/openssl.json

* Update versions/o-/openssl.json

* Update ports/openssl/CONTROL

* Merge master branch and resolve merge conflicts

* Disable -moutline-atomics in Android also

* Revert line ending change

* Fix version info

Co-authored-by: Ahmed Yarub Hani Al Nuaimi <ahmed.alnuaimi@zwift.com>
Co-authored-by: JackBoosY <yuzaiyang@beyondsoft.com>
Co-authored-by: Jack·Boos·Yu <47264268+JackBoosY@users.noreply.github.com>
Co-authored-by: Robert Schumacher <roschuma@microsoft.com>
This commit is contained in:
Ahmed Yarub Hani Al Nuaimi 2021-05-26 18:03:32 -03:00 committed by GitHub
parent 37a5a94f48
commit f519430b0f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
11 changed files with 327 additions and 227 deletions

View File

@ -1,5 +1,6 @@
Source: aws-c-common
Version: 0.4.56
Port-Version: 1
Homepage: https://github.com/awslabs/aws-c-common
Description: AWS common library for C
Supports: !(arm|uwp)

View File

@ -0,0 +1,18 @@
diff --git a/cmake/AwsCFlags.cmake b/cmake/AwsCFlags.cmake
--- a/cmake/AwsCFlags.cmake (revision 4a21a1c0757083a16497fea27886f5f20ccdf334)
+++ b/cmake/AwsCFlags.cmake (date 1618758078727)
@@ -70,9 +70,11 @@
# -moutline-atomics generates code for both older load/store exclusive atomics and also
# Arm's Large System Extensions (LSE) which scale substantially better on large core count systems
- check_c_compiler_flag(-moutline-atomics HAS_MOUTLINE_ATOMICS)
- if (HAS_MOUTLINE_ATOMICS)
- list(APPEND AWS_C_FLAGS -moutline-atomics)
+ if(NOT EMSCRIPTEN AND NOT ANDROID)
+ check_c_compiler_flag(-moutline-atomics HAS_MOUTLINE_ATOMICS)
+ if (HAS_MOUTLINE_ATOMICS)
+ list(APPEND AWS_C_FLAGS -moutline-atomics)
+ endif()
endif()
endif()

View File

@ -8,6 +8,7 @@ vcpkg_from_github(
disable-error-4068.patch # This patch fixes dependency port compilation failure
disable-internal-crt-option.patch # Disable internal crt option because vcpkg contains crt processing flow
fix-cmake-target-path.patch # Shared libraries and static libraries are not built at the same time
disable_outline_atomics.patch # Disables -moutline-atomics flag which is not supported for wasm32 and Android
)
vcpkg_configure_cmake(

View File

@ -20,6 +20,12 @@ include(${CMAKE_CURRENT_LIST_DIR}/compute_build_only.cmake)
set(EXTRA_ARGS)
if(VCPKG_TARGET_IS_OSX OR VCPKG_TARGET_IS_IOS)
set(rpath "@loader_path")
set(EXTRA_ARGS
"-DCURL_HAS_H2_EXITCODE=0"
"-DCURL_HAS_H2_EXITCODE__TRYRUN_OUTPUT=\"\""
"-DCURL_HAS_TLS_PROXY_EXITCODE=0"
"-DCURL_HAS_TLS_PROXY_EXITCODE__TRYRUN_OUTPUT=\"\""
)
elseif (VCPKG_TARGET_IS_ANDROID)
set(EXTRA_ARGS "-DTARGET_ARCH=ANDROID"
"-DGIT_EXECUTABLE=--invalid-git-executable--"

View File

@ -1,7 +1,7 @@
{
"name": "aws-sdk-cpp",
"version": "1.8.126",
"port-version": 8,
"port-version": 9,
"description": "AWS SDK for C++",
"homepage": "https://github.com/aws/aws-sdk-cpp",
"dependencies": [

View File

@ -40,6 +40,9 @@ elseif(MINGW)
else()
set(PLATFORM mingw)
endif()
elseif(EMSCRIPTEN)
set(MAKE $ENV{EMSDK}/upstream/emscripten/emmake)
set(ENV{MAKE} $ENV{EMSDK}/upstream/emscripten/emmake)
else()
message(FATAL_ERROR "Unknown platform")
endif()
@ -84,7 +87,10 @@ else()
file(TO_NATIVE_PATH ENV_PATH "${COMPILER_ROOT}:$ENV{PATH}")
endif()
set(ENV{ANDROID_DEV} "${CMAKE_SYSROOT}/usr")
if(NOT IOS)
set(ENV{CC} "${CMAKE_C_COMPILER}")
endif()
message("ENV{ANDROID_DEV}=$ENV{ANDROID_DEV}")
@ -143,8 +149,47 @@ else()
set(PATH_VAR ":$ENV{PATH}")
endif()
if(IOS)
add_custom_command(
OUTPUT "${BUILDDIR}/Makefile"
COMMAND "${PERL}" Configure
${SHARED}
${DISABLES}
${PLATFORM}
"--prefix=${CMAKE_INSTALL_PREFIX}"
"--openssldir=/etc/ssl"
COMMAND "${CMAKE_COMMAND}" "-DDIR=${BUILDDIR}" -P "${CMAKE_CURRENT_LIST_DIR}/remove-deps.cmake"
VERBATIM
WORKING_DIRECTORY "${BUILDDIR}"
)
elseif(EMSCRIPTEN)
add_custom_command(
OUTPUT "${BUILDDIR}/Makefile"
COMMAND ${ENV_COMMAND} CC=${CMAKE_C_COMPILER}
COMMAND ${ENV_COMMAND} AR=${CMAKE_AR}
COMMAND ${ENV_COMMAND} LD=${CMAKE_LINKER}
COMMAND ${ENV_COMMAND} RANLIB=${CMAKE_RANLIB}
COMMAND ${ENV_COMMAND} MAKE=${MAKE}
COMMAND ${ENV_COMMAND} MAKEDEPPROG=${CMAKE_C_COMPILER}
COMMAND ${ENV_COMMAND} "PATH=${MSYS_BIN_DIR}${PATH_VAR}"
COMMAND "$ENV{EMSDK}/upstream/emscripten/emconfigure" ./config
${SHARED}
threads
no-engine
no-dso
no-asm
no-shared
no-sse2
no-srtp
${DISABLES}
"--prefix=${CMAKE_INSTALL_PREFIX}"
"--openssldir=/etc/ssl"
"--cross-compile-prefix=\"/\""
COMMAND "${CMAKE_COMMAND}" "-DDIR=${BUILDDIR}" -P "${CMAKE_CURRENT_LIST_DIR}/remove-deps.cmake"
VERBATIM
WORKING_DIRECTORY "${BUILDDIR}"
)
else()
add_custom_command(
OUTPUT "${BUILDDIR}/Makefile"
COMMAND ${ENV_COMMAND} CC=${CMAKE_C_COMPILER}
@ -174,7 +219,20 @@ add_custom_command(
VERBATIM
WORKING_DIRECTORY "${BUILDDIR}"
)
endif()
if(EMSCRIPTEN)
add_custom_target(build_libs ALL
COMMAND ${ENV_COMMAND} "PATH=${MSYS_BIN_DIR}${PATH_VAR}"
COMMAND "${CMAKE_COMMAND}" -E touch "${BUILDDIR}/krb5.h"
COMMAND "${MAKE}" make build_libs
COMMAND "${MAKE}" make -j ${VCPKG_CONCURRENCY} build_libs
VERBATIM
WORKING_DIRECTORY "${BUILDDIR}"
DEPENDS "${BUILDDIR}/Makefile"
BYPRODUCTS ${INSTALL_LIBS}
)
else()
add_custom_target(build_libs ALL
COMMAND ${ENV_COMMAND} "PATH=${MSYS_BIN_DIR}${PATH_VAR}"
COMMAND "${CMAKE_COMMAND}" -E touch "${BUILDDIR}/krb5.h"
@ -184,6 +242,7 @@ add_custom_target(build_libs ALL
DEPENDS "${BUILDDIR}/Makefile"
BYPRODUCTS ${INSTALL_LIBS}
)
endif()
if((CMAKE_SYSTEM_NAME STREQUAL "Darwin" OR CMAKE_SYSTEM_NAME STREQUAL "iOS") AND BUILD_SHARED_LIBS)
if(DEFINED CMAKE_INSTALL_NAME_DIR)

View File

@ -1,7 +1,7 @@
{
"name": "openssl",
"version-string": "1.1.1k",
"port-version": 1,
"port-version": 2,
"description": "OpenSSL is an open source project that provides a robust, commercial-grade, and full-featured toolkit for the Transport Layer Security (TLS) and Secure Sockets Layer (SSL) protocols. It is also a general-purpose cryptography library.",
"homepage": "https://www.openssl.org"
}

View File

@ -1,5 +1,10 @@
{
"versions": [
{
"git-tree": "afa3b695905711c9699c03d94a77f222396e3346",
"version-string": "0.4.56",
"port-version": 1
},
{
"git-tree": "3b58ff9b212a0910118c979470d7e53925d1b705",
"version-string": "0.4.56",

View File

@ -1,5 +1,10 @@
{
"versions": [
{
"git-tree": "c23d66191b235f6f388187395b62f38b8e6e35f5",
"version": "1.8.126",
"port-version": 9
},
{
"git-tree": "e1cf5cdb2c16125d532b8281d6901839f11a25f5",
"version": "1.8.126",

View File

@ -226,7 +226,7 @@
},
"aws-c-common": {
"baseline": "0.4.56",
"port-version": 0
"port-version": 1
},
"aws-c-event-stream": {
"baseline": "0.1.6",
@ -242,7 +242,7 @@
},
"aws-sdk-cpp": {
"baseline": "1.8.126",
"port-version": 8
"port-version": 9
},
"azmq": {
"baseline": "2020-03-03",
@ -4558,7 +4558,7 @@
},
"openssl": {
"baseline": "1.1.1k",
"port-version": 1
"port-version": 2
},
"openssl-unix": {
"baseline": "1.1.1h",

View File

@ -1,5 +1,10 @@
{
"versions": [
{
"git-tree": "dcaa59e72471884bf333486e49be386dd4a3da4f",
"version-string": "1.1.1k",
"port-version": 2
},
{
"git-tree": "24a9f866c10144f3dcce1b8972d43170cfad3201",
"version-string": "1.1.1k",