mirror of
https://github.com/microsoft/vcpkg.git
synced 2025-01-14 05:28:01 +08:00
[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:
parent
37a5a94f48
commit
f519430b0f
@ -1,5 +1,6 @@
|
||||
Source: aws-c-common
|
||||
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
|
||||
Description: AWS common library for C
|
||||
Supports: !(arm|uwp)
|
18
ports/aws-c-common/disable_outline_atomics.patch
Normal file
18
ports/aws-c-common/disable_outline_atomics.patch
Normal 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()
|
||||
|
@ -1,13 +1,14 @@
|
||||
vcpkg_from_github(
|
||||
OUT_SOURCE_PATH SOURCE_PATH
|
||||
REPO awslabs/aws-c-common
|
||||
REF 4a21a1c0757083a16497fea27886f5f20ccdf334 # v0.4.56
|
||||
REF 4a21a1c0757083a16497fea27886f5f20ccdf334 # v0.4.56
|
||||
SHA512 68898a8ac15d5490f45676eabfbe0df9e45370a74c543a28909fd0d85fed48dfcf4bcd6ea2d01d1a036dd352e2e4e0b08c48c63ab2a2b477fe150b46a827136e
|
||||
HEAD_REF master
|
||||
PATCHES
|
||||
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(
|
||||
|
@ -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--"
|
||||
|
@ -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": [
|
||||
|
@ -1,219 +1,278 @@
|
||||
cmake_minimum_required(VERSION 3.9)
|
||||
project(openssl C)
|
||||
|
||||
if(NOT SOURCE_PATH)
|
||||
message(FATAL_ERROR "Requires SOURCE_PATH")
|
||||
endif()
|
||||
|
||||
if(CMAKE_SYSTEM_NAME STREQUAL "Android" OR CMAKE_SYSTEM_NAME STREQUAL "Linux")
|
||||
if(CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
|
||||
set(PLATFORM linux-x86_64)
|
||||
else()
|
||||
set(PLATFORM linux-generic32)
|
||||
endif()
|
||||
elseif(CMAKE_SYSTEM_NAME STREQUAL "iOS")
|
||||
if(VCPKG_TARGET_ARCHITECTURE MATCHES "arm64")
|
||||
set(PLATFORM ios64-xcrun)
|
||||
elseif(VCPKG_TARGET_ARCHITECTURE MATCHES "arm")
|
||||
set(PLATFORM ios-xcrun)
|
||||
elseif(VCPKG_TARGET_ARCHITECTURE MATCHES "x86" OR
|
||||
VCPKG_TARGET_ARCHITECTURE MATCHES "x64")
|
||||
set(PLATFORM iossimulator-xcrun)
|
||||
else()
|
||||
message(FATAL_ERROR "Unknown iOS target architecture: ${VCPKG_TARGET_ARCHITECTURE}")
|
||||
endif()
|
||||
# disable that makes linkage error (e.g. require stderr usage)
|
||||
list(APPEND DISABLES no-stdio no-ui no-asm)
|
||||
elseif(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
|
||||
if(VCPKG_TARGET_ARCHITECTURE MATCHES "arm64")
|
||||
set(PLATFORM darwin64-arm64-cc)
|
||||
else()
|
||||
set(PLATFORM darwin64-x86_64-cc)
|
||||
endif()
|
||||
elseif(CMAKE_SYSTEM_NAME STREQUAL "FreeBSD")
|
||||
set(PLATFORM BSD-generic64)
|
||||
elseif(CMAKE_SYSTEM_NAME STREQUAL "OpenBSD")
|
||||
set(PLATFORM BSD-generic64)
|
||||
elseif(MINGW)
|
||||
if(CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
|
||||
set(PLATFORM mingw64)
|
||||
else()
|
||||
set(PLATFORM mingw)
|
||||
endif()
|
||||
else()
|
||||
message(FATAL_ERROR "Unknown platform")
|
||||
endif()
|
||||
|
||||
get_filename_component(COMPILER_ROOT "${CMAKE_C_COMPILER}" DIRECTORY)
|
||||
|
||||
message("CMAKE_C_COMPILER=${CMAKE_C_COMPILER}")
|
||||
message("COMPILER_ROOT=${COMPILER_ROOT}")
|
||||
message("CMAKE_SYSROOT=${CMAKE_SYSROOT}")
|
||||
message("CMAKE_OSX_SYSROOT=${CMAKE_OSX_SYSROOT}")
|
||||
message("CMAKE_OSX_DEPLOYMENT_TARGET=${CMAKE_OSX_DEPLOYMENT_TARGET}")
|
||||
message("CMAKE_C_FLAGS=${CMAKE_C_FLAGS}")
|
||||
message("CMAKE_C_FLAGS_RELEASE=${CMAKE_C_FLAGS_RELEASE}")
|
||||
message("CMAKE_C_FLAGS_DEBUG=${CMAKE_C_FLAGS_DEBUG}")
|
||||
message("CMAKE_INCLUDE_SYSTEM_FLAG_C=${CMAKE_INCLUDE_SYSTEM_FLAG_C}")
|
||||
message("CMAKE_C_OSX_DEPLOYMENT_TARGET_FLAG=${CMAKE_C_OSX_DEPLOYMENT_TARGET_FLAG}")
|
||||
|
||||
set(CFLAGS "${CMAKE_C_FLAGS}")
|
||||
if(CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
|
||||
set(CFLAGS "-Wno-error=unused-command-line-argument ${CMAKE_C_FLAGS}")
|
||||
endif()
|
||||
if(CMAKE_C_COMPILER_TARGET AND CMAKE_C_COMPILE_OPTIONS_TARGET)
|
||||
set(CFLAGS "${CFLAGS} ${CMAKE_C_COMPILE_OPTIONS_TARGET}${CMAKE_C_COMPILER_TARGET}")
|
||||
endif()
|
||||
if(CMAKE_C_COMPILER_EXTERNAL_TOOLCHAIN AND CMAKE_C_COMPILE_OPTIONS_EXTERNAL_TOOLCHAIN)
|
||||
set(CFLAGS "${CFLAGS} ${CMAKE_C_COMPILE_OPTIONS_EXTERNAL_TOOLCHAIN}${CMAKE_C_COMPILER_EXTERNAL_TOOLCHAIN}")
|
||||
endif()
|
||||
if(CMAKE_SYSROOT AND CMAKE_C_COMPILE_OPTIONS_SYSROOT)
|
||||
set(CFLAGS "${CFLAGS} ${CMAKE_C_COMPILE_OPTIONS_SYSROOT}${CMAKE_SYSROOT}")
|
||||
elseif(CMAKE_OSX_SYSROOT AND CMAKE_C_COMPILE_OPTIONS_SYSROOT)
|
||||
set(CFLAGS "${CFLAGS} ${CMAKE_C_COMPILE_OPTIONS_SYSROOT}${CMAKE_OSX_SYSROOT}")
|
||||
endif()
|
||||
if (CMAKE_OSX_DEPLOYMENT_TARGET AND CMAKE_C_OSX_DEPLOYMENT_TARGET_FLAG)
|
||||
set(CFLAGS "${CFLAGS} ${CMAKE_C_OSX_DEPLOYMENT_TARGET_FLAG}${CMAKE_OSX_DEPLOYMENT_TARGET}")
|
||||
endif()
|
||||
|
||||
string(REGEX REPLACE "^ " "" CFLAGS "${CFLAGS}")
|
||||
|
||||
if(CMAKE_HOST_WIN32)
|
||||
file(TO_NATIVE_PATH ENV_PATH "${COMPILER_ROOT};$ENV{PATH}")
|
||||
else()
|
||||
file(TO_NATIVE_PATH ENV_PATH "${COMPILER_ROOT}:$ENV{PATH}")
|
||||
endif()
|
||||
set(ENV{ANDROID_DEV} "${CMAKE_SYSROOT}/usr")
|
||||
set(ENV{CC} "${CMAKE_C_COMPILER}")
|
||||
|
||||
message("ENV{ANDROID_DEV}=$ENV{ANDROID_DEV}")
|
||||
|
||||
get_filename_component(SOURCE_PATH_NAME "${SOURCE_PATH}" NAME)
|
||||
set(BUILDDIR "${CMAKE_CURRENT_BINARY_DIR}/${SOURCE_PATH_NAME}")
|
||||
|
||||
if(NOT EXISTS "${BUILDDIR}")
|
||||
file(COPY ${SOURCE_PATH} DESTINATION ${CMAKE_CURRENT_BINARY_DIR})
|
||||
endif()
|
||||
|
||||
get_filename_component(MSYS_BIN_DIR "${MAKE}" DIRECTORY)
|
||||
|
||||
if(BUILD_SHARED_LIBS)
|
||||
set(SHARED shared)
|
||||
file(STRINGS "${BUILDDIR}/include/openssl/opensslv.h" SHLIB_VERSION
|
||||
REGEX "^#[\t ]*define[\t ]+SHLIB_VERSION_NUMBER[\t ]+\".*\".*")
|
||||
string(REGEX REPLACE "^.*SHLIB_VERSION_NUMBER[\t ]+\"([^\"]*)\".*$" "\\1"
|
||||
SHLIB_VERSION "${SHLIB_VERSION}")
|
||||
if(CMAKE_SYSTEM_NAME STREQUAL "Darwin" OR CMAKE_SYSTEM_NAME STREQUAL "iOS")
|
||||
set(LIB_EXT dylib)
|
||||
set(LIB_EXTS ${SHLIB_VERSION}.${LIB_EXT})
|
||||
elseif(MINGW)
|
||||
string(REPLACE "." "_" SHLIB_VERSION "${SHLIB_VERSION}")
|
||||
set(BIN_EXT dll)
|
||||
set(LIB_EXT dll.a)
|
||||
else()
|
||||
set(LIB_EXT so)
|
||||
set(LIB_EXTS ${LIB_EXT}.${SHLIB_VERSION})
|
||||
endif()
|
||||
list(APPEND BIN_EXTS ${BIN_EXT})
|
||||
list(APPEND LIB_EXTS ${LIB_EXT})
|
||||
else()
|
||||
set(SHARED no-shared)
|
||||
set(LIB_EXTS a)
|
||||
endif()
|
||||
foreach(lib ssl crypto)
|
||||
foreach(ext ${LIB_EXTS})
|
||||
list(APPEND INSTALL_LIBS "${BUILDDIR}/lib${lib}.${ext}")
|
||||
list(APPEND INSTALL_PKG_CONFIGS "${BUILDDIR}/lib${lib}.pc")
|
||||
endforeach()
|
||||
foreach(ext ${BIN_EXTS})
|
||||
# This might be wrong for targets which don't follow this naming scheme, but I'm not aware of any
|
||||
if(CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
|
||||
list(APPEND INSTALL_BINS "${BUILDDIR}/lib${lib}-${SHLIB_VERSION}-x64.${ext}")
|
||||
else()
|
||||
list(APPEND INSTALL_BINS "${BUILDDIR}/lib${lib}-${SHLIB_VERSION}.${ext}")
|
||||
endif()
|
||||
endforeach()
|
||||
endforeach()
|
||||
|
||||
if(CMAKE_HOST_WIN32)
|
||||
set(ENV_COMMAND set)
|
||||
set(PATH_VAR ";%PATH%")
|
||||
else()
|
||||
set(ENV_COMMAND export)
|
||||
set(PATH_VAR ":$ENV{PATH}")
|
||||
endif()
|
||||
|
||||
|
||||
|
||||
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 "${PERL}" Configure
|
||||
${SHARED}
|
||||
enable-static-engine
|
||||
no-zlib
|
||||
no-ssl2
|
||||
no-idea
|
||||
no-bf
|
||||
no-cast
|
||||
no-seed
|
||||
no-md2
|
||||
no-tests
|
||||
${DISABLES}
|
||||
${PLATFORM}
|
||||
"--prefix=${CMAKE_INSTALL_PREFIX}"
|
||||
"--openssldir=/etc/ssl"
|
||||
${CFLAGS}
|
||||
COMMAND "${CMAKE_COMMAND}" "-DDIR=${BUILDDIR}" -P "${CMAKE_CURRENT_LIST_DIR}/remove-deps.cmake"
|
||||
VERBATIM
|
||||
WORKING_DIRECTORY "${BUILDDIR}"
|
||||
)
|
||||
|
||||
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}" -j ${VCPKG_CONCURRENCY} build_libs
|
||||
VERBATIM
|
||||
WORKING_DIRECTORY "${BUILDDIR}"
|
||||
DEPENDS "${BUILDDIR}/Makefile"
|
||||
BYPRODUCTS ${INSTALL_LIBS}
|
||||
)
|
||||
|
||||
if((CMAKE_SYSTEM_NAME STREQUAL "Darwin" OR CMAKE_SYSTEM_NAME STREQUAL "iOS") AND BUILD_SHARED_LIBS)
|
||||
if(DEFINED CMAKE_INSTALL_NAME_DIR)
|
||||
set(ID_PREFIX "${CMAKE_INSTALL_NAME_DIR}")
|
||||
else()
|
||||
set(ID_PREFIX "@rpath")
|
||||
endif()
|
||||
|
||||
add_custom_command(
|
||||
TARGET build_libs
|
||||
COMMAND /usr/bin/install_name_tool -id "${ID_PREFIX}/libssl.${SHLIB_VERSION}.dylib"
|
||||
"${BUILDDIR}/libssl.${SHLIB_VERSION}.dylib"
|
||||
COMMAND /usr/bin/install_name_tool -id "${ID_PREFIX}/libcrypto.${SHLIB_VERSION}.dylib"
|
||||
"${BUILDDIR}/libcrypto.1.1.dylib"
|
||||
COMMAND /usr/bin/install_name_tool -change "${CMAKE_INSTALL_PREFIX}/lib/libcrypto.${SHLIB_VERSION}.dylib"
|
||||
"${ID_PREFIX}/libcrypto.${SHLIB_VERSION}.dylib"
|
||||
"${BUILDDIR}/libssl.${SHLIB_VERSION}.dylib"
|
||||
VERBATIM
|
||||
)
|
||||
endif()
|
||||
|
||||
install(
|
||||
FILES ${INSTALL_LIBS}
|
||||
DESTINATION lib
|
||||
)
|
||||
install(
|
||||
FILES ${INSTALL_BINS}
|
||||
DESTINATION bin
|
||||
)
|
||||
install(
|
||||
FILES ${INSTALL_PKG_CONFIGS}
|
||||
DESTINATION lib/pkgconfig
|
||||
)
|
||||
cmake_minimum_required(VERSION 3.9)
|
||||
project(openssl C)
|
||||
|
||||
if(NOT SOURCE_PATH)
|
||||
message(FATAL_ERROR "Requires SOURCE_PATH")
|
||||
endif()
|
||||
|
||||
if(CMAKE_SYSTEM_NAME STREQUAL "Android" OR CMAKE_SYSTEM_NAME STREQUAL "Linux")
|
||||
if(CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
|
||||
set(PLATFORM linux-x86_64)
|
||||
else()
|
||||
set(PLATFORM linux-generic32)
|
||||
endif()
|
||||
elseif(CMAKE_SYSTEM_NAME STREQUAL "iOS")
|
||||
if(VCPKG_TARGET_ARCHITECTURE MATCHES "arm64")
|
||||
set(PLATFORM ios64-xcrun)
|
||||
elseif(VCPKG_TARGET_ARCHITECTURE MATCHES "arm")
|
||||
set(PLATFORM ios-xcrun)
|
||||
elseif(VCPKG_TARGET_ARCHITECTURE MATCHES "x86" OR
|
||||
VCPKG_TARGET_ARCHITECTURE MATCHES "x64")
|
||||
set(PLATFORM iossimulator-xcrun)
|
||||
else()
|
||||
message(FATAL_ERROR "Unknown iOS target architecture: ${VCPKG_TARGET_ARCHITECTURE}")
|
||||
endif()
|
||||
# disable that makes linkage error (e.g. require stderr usage)
|
||||
list(APPEND DISABLES no-stdio no-ui no-asm)
|
||||
elseif(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
|
||||
if(VCPKG_TARGET_ARCHITECTURE MATCHES "arm64")
|
||||
set(PLATFORM darwin64-arm64-cc)
|
||||
else()
|
||||
set(PLATFORM darwin64-x86_64-cc)
|
||||
endif()
|
||||
elseif(CMAKE_SYSTEM_NAME STREQUAL "FreeBSD")
|
||||
set(PLATFORM BSD-generic64)
|
||||
elseif(CMAKE_SYSTEM_NAME STREQUAL "OpenBSD")
|
||||
set(PLATFORM BSD-generic64)
|
||||
elseif(MINGW)
|
||||
if(CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
|
||||
set(PLATFORM mingw64)
|
||||
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()
|
||||
|
||||
get_filename_component(COMPILER_ROOT "${CMAKE_C_COMPILER}" DIRECTORY)
|
||||
|
||||
message("CMAKE_C_COMPILER=${CMAKE_C_COMPILER}")
|
||||
message("COMPILER_ROOT=${COMPILER_ROOT}")
|
||||
message("CMAKE_SYSROOT=${CMAKE_SYSROOT}")
|
||||
message("CMAKE_OSX_SYSROOT=${CMAKE_OSX_SYSROOT}")
|
||||
message("CMAKE_OSX_DEPLOYMENT_TARGET=${CMAKE_OSX_DEPLOYMENT_TARGET}")
|
||||
message("CMAKE_C_FLAGS=${CMAKE_C_FLAGS}")
|
||||
message("CMAKE_C_FLAGS_RELEASE=${CMAKE_C_FLAGS_RELEASE}")
|
||||
message("CMAKE_C_FLAGS_DEBUG=${CMAKE_C_FLAGS_DEBUG}")
|
||||
message("CMAKE_INCLUDE_SYSTEM_FLAG_C=${CMAKE_INCLUDE_SYSTEM_FLAG_C}")
|
||||
message("CMAKE_C_OSX_DEPLOYMENT_TARGET_FLAG=${CMAKE_C_OSX_DEPLOYMENT_TARGET_FLAG}")
|
||||
|
||||
set(CFLAGS "${CMAKE_C_FLAGS}")
|
||||
if(CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
|
||||
set(CFLAGS "-Wno-error=unused-command-line-argument ${CMAKE_C_FLAGS}")
|
||||
endif()
|
||||
if(CMAKE_C_COMPILER_TARGET AND CMAKE_C_COMPILE_OPTIONS_TARGET)
|
||||
set(CFLAGS "${CFLAGS} ${CMAKE_C_COMPILE_OPTIONS_TARGET}${CMAKE_C_COMPILER_TARGET}")
|
||||
endif()
|
||||
if(CMAKE_C_COMPILER_EXTERNAL_TOOLCHAIN AND CMAKE_C_COMPILE_OPTIONS_EXTERNAL_TOOLCHAIN)
|
||||
set(CFLAGS "${CFLAGS} ${CMAKE_C_COMPILE_OPTIONS_EXTERNAL_TOOLCHAIN}${CMAKE_C_COMPILER_EXTERNAL_TOOLCHAIN}")
|
||||
endif()
|
||||
if(CMAKE_SYSROOT AND CMAKE_C_COMPILE_OPTIONS_SYSROOT)
|
||||
set(CFLAGS "${CFLAGS} ${CMAKE_C_COMPILE_OPTIONS_SYSROOT}${CMAKE_SYSROOT}")
|
||||
elseif(CMAKE_OSX_SYSROOT AND CMAKE_C_COMPILE_OPTIONS_SYSROOT)
|
||||
set(CFLAGS "${CFLAGS} ${CMAKE_C_COMPILE_OPTIONS_SYSROOT}${CMAKE_OSX_SYSROOT}")
|
||||
endif()
|
||||
if (CMAKE_OSX_DEPLOYMENT_TARGET AND CMAKE_C_OSX_DEPLOYMENT_TARGET_FLAG)
|
||||
set(CFLAGS "${CFLAGS} ${CMAKE_C_OSX_DEPLOYMENT_TARGET_FLAG}${CMAKE_OSX_DEPLOYMENT_TARGET}")
|
||||
endif()
|
||||
|
||||
string(REGEX REPLACE "^ " "" CFLAGS "${CFLAGS}")
|
||||
|
||||
if(CMAKE_HOST_WIN32)
|
||||
file(TO_NATIVE_PATH ENV_PATH "${COMPILER_ROOT};$ENV{PATH}")
|
||||
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}")
|
||||
|
||||
get_filename_component(SOURCE_PATH_NAME "${SOURCE_PATH}" NAME)
|
||||
set(BUILDDIR "${CMAKE_CURRENT_BINARY_DIR}/${SOURCE_PATH_NAME}")
|
||||
|
||||
if(NOT EXISTS "${BUILDDIR}")
|
||||
file(COPY ${SOURCE_PATH} DESTINATION ${CMAKE_CURRENT_BINARY_DIR})
|
||||
endif()
|
||||
|
||||
get_filename_component(MSYS_BIN_DIR "${MAKE}" DIRECTORY)
|
||||
|
||||
if(BUILD_SHARED_LIBS)
|
||||
set(SHARED shared)
|
||||
file(STRINGS "${BUILDDIR}/include/openssl/opensslv.h" SHLIB_VERSION
|
||||
REGEX "^#[\t ]*define[\t ]+SHLIB_VERSION_NUMBER[\t ]+\".*\".*")
|
||||
string(REGEX REPLACE "^.*SHLIB_VERSION_NUMBER[\t ]+\"([^\"]*)\".*$" "\\1"
|
||||
SHLIB_VERSION "${SHLIB_VERSION}")
|
||||
if(CMAKE_SYSTEM_NAME STREQUAL "Darwin" OR CMAKE_SYSTEM_NAME STREQUAL "iOS")
|
||||
set(LIB_EXT dylib)
|
||||
set(LIB_EXTS ${SHLIB_VERSION}.${LIB_EXT})
|
||||
elseif(MINGW)
|
||||
string(REPLACE "." "_" SHLIB_VERSION "${SHLIB_VERSION}")
|
||||
set(BIN_EXT dll)
|
||||
set(LIB_EXT dll.a)
|
||||
else()
|
||||
set(LIB_EXT so)
|
||||
set(LIB_EXTS ${LIB_EXT}.${SHLIB_VERSION})
|
||||
endif()
|
||||
list(APPEND BIN_EXTS ${BIN_EXT})
|
||||
list(APPEND LIB_EXTS ${LIB_EXT})
|
||||
else()
|
||||
set(SHARED no-shared)
|
||||
set(LIB_EXTS a)
|
||||
endif()
|
||||
foreach(lib ssl crypto)
|
||||
foreach(ext ${LIB_EXTS})
|
||||
list(APPEND INSTALL_LIBS "${BUILDDIR}/lib${lib}.${ext}")
|
||||
list(APPEND INSTALL_PKG_CONFIGS "${BUILDDIR}/lib${lib}.pc")
|
||||
endforeach()
|
||||
foreach(ext ${BIN_EXTS})
|
||||
# This might be wrong for targets which don't follow this naming scheme, but I'm not aware of any
|
||||
if(CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
|
||||
list(APPEND INSTALL_BINS "${BUILDDIR}/lib${lib}-${SHLIB_VERSION}-x64.${ext}")
|
||||
else()
|
||||
list(APPEND INSTALL_BINS "${BUILDDIR}/lib${lib}-${SHLIB_VERSION}.${ext}")
|
||||
endif()
|
||||
endforeach()
|
||||
endforeach()
|
||||
|
||||
if(CMAKE_HOST_WIN32)
|
||||
set(ENV_COMMAND set)
|
||||
set(PATH_VAR ";%PATH%")
|
||||
else()
|
||||
set(ENV_COMMAND export)
|
||||
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}
|
||||
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 "${PERL}" Configure
|
||||
${SHARED}
|
||||
enable-static-engine
|
||||
no-zlib
|
||||
no-ssl2
|
||||
no-idea
|
||||
no-bf
|
||||
no-cast
|
||||
no-seed
|
||||
no-md2
|
||||
no-tests
|
||||
${DISABLES}
|
||||
${PLATFORM}
|
||||
"--prefix=${CMAKE_INSTALL_PREFIX}"
|
||||
"--openssldir=/etc/ssl"
|
||||
${CFLAGS}
|
||||
COMMAND "${CMAKE_COMMAND}" "-DDIR=${BUILDDIR}" -P "${CMAKE_CURRENT_LIST_DIR}/remove-deps.cmake"
|
||||
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"
|
||||
COMMAND "${MAKE}" -j ${VCPKG_CONCURRENCY} build_libs
|
||||
VERBATIM
|
||||
WORKING_DIRECTORY "${BUILDDIR}"
|
||||
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)
|
||||
set(ID_PREFIX "${CMAKE_INSTALL_NAME_DIR}")
|
||||
else()
|
||||
set(ID_PREFIX "@rpath")
|
||||
endif()
|
||||
|
||||
add_custom_command(
|
||||
TARGET build_libs
|
||||
COMMAND /usr/bin/install_name_tool -id "${ID_PREFIX}/libssl.${SHLIB_VERSION}.dylib"
|
||||
"${BUILDDIR}/libssl.${SHLIB_VERSION}.dylib"
|
||||
COMMAND /usr/bin/install_name_tool -id "${ID_PREFIX}/libcrypto.${SHLIB_VERSION}.dylib"
|
||||
"${BUILDDIR}/libcrypto.1.1.dylib"
|
||||
COMMAND /usr/bin/install_name_tool -change "${CMAKE_INSTALL_PREFIX}/lib/libcrypto.${SHLIB_VERSION}.dylib"
|
||||
"${ID_PREFIX}/libcrypto.${SHLIB_VERSION}.dylib"
|
||||
"${BUILDDIR}/libssl.${SHLIB_VERSION}.dylib"
|
||||
VERBATIM
|
||||
)
|
||||
endif()
|
||||
|
||||
install(
|
||||
FILES ${INSTALL_LIBS}
|
||||
DESTINATION lib
|
||||
)
|
||||
install(
|
||||
FILES ${INSTALL_BINS}
|
||||
DESTINATION bin
|
||||
)
|
||||
install(
|
||||
FILES ${INSTALL_PKG_CONFIGS}
|
||||
DESTINATION lib/pkgconfig
|
||||
)
|
||||
|
@ -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"
|
||||
}
|
||||
|
@ -1,5 +1,10 @@
|
||||
{
|
||||
"versions": [
|
||||
{
|
||||
"git-tree": "afa3b695905711c9699c03d94a77f222396e3346",
|
||||
"version-string": "0.4.56",
|
||||
"port-version": 1
|
||||
},
|
||||
{
|
||||
"git-tree": "3b58ff9b212a0910118c979470d7e53925d1b705",
|
||||
"version-string": "0.4.56",
|
||||
|
@ -1,5 +1,10 @@
|
||||
{
|
||||
"versions": [
|
||||
{
|
||||
"git-tree": "c23d66191b235f6f388187395b62f38b8e6e35f5",
|
||||
"version": "1.8.126",
|
||||
"port-version": 9
|
||||
},
|
||||
{
|
||||
"git-tree": "e1cf5cdb2c16125d532b8281d6901839f11a25f5",
|
||||
"version": "1.8.126",
|
||||
|
@ -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",
|
||||
|
@ -1,5 +1,10 @@
|
||||
{
|
||||
"versions": [
|
||||
{
|
||||
"git-tree": "dcaa59e72471884bf333486e49be386dd4a3da4f",
|
||||
"version-string": "1.1.1k",
|
||||
"port-version": 2
|
||||
},
|
||||
{
|
||||
"git-tree": "24a9f866c10144f3dcce1b8972d43170cfad3201",
|
||||
"version-string": "1.1.1k",
|
||||
|
Loading…
x
Reference in New Issue
Block a user