Skip to content

Commit 727d090

Browse files
Update OpenSSL to version 3.0.16 (#233)
This updates OpenSSL to the latest version of the 3.0 release train, from the previous, very old, 3.0.7. It also moves to using CPM to download and patch the OpenSSL source code, which speeds up building different configurations from the same source tree, and eliminates some issues where reconfiguring caused issues with applying the patches.
1 parent 30756b2 commit 727d090

File tree

1 file changed

+15
-12
lines changed

1 file changed

+15
-12
lines changed

cmake/openssl.cmake

Lines changed: 15 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Based on https://stackoverflow.com/a/72187533
2-
set(OPENSSL_VERSION 3.0.7)
3-
set(OPENSSL_SOURCE_DIR ${CMAKE_BINARY_DIR}/deps-src/OpenSSL)
2+
set(OPENSSL_VERSION 3.0.16)
3+
set(OPENSSL_HASH "SHA256=57e03c50feab5d31b152af2b764f10379aecd8ee92f16c985983ce4a99f7ef86")
44
set(OPENSSL_INSTALL_DIR ${CMAKE_BINARY_DIR}/deps/OpenSSL)
55
set(OPENSSL_INCLUDE_DIR ${OPENSSL_INSTALL_DIR}/include)
66
include(ExternalProject)
@@ -11,21 +11,24 @@ else()
1111
find_program(MAKE_COMMAND NAMES make gmake)
1212
endif()
1313

14-
ExternalProject_Add(
14+
CPMAddPackage(NAME
1515
OpenSSL
16-
SOURCE_DIR ${OPENSSL_SOURCE_DIR}
1716
URL https://openssl.org/source/old/3.0/openssl-${OPENSSL_VERSION}.tar.gz
18-
URL_HASH SHA256=83049d042a260e696f62406ac5c08bf706fd84383f945cf21bd61e9ed95c396e
19-
USES_TERMINAL_DOWNLOAD TRUE
20-
PATCH_COMMAND
21-
patch -d ${OPENSSL_SOURCE_DIR} -t -p1 < ${CMAKE_CURRENT_SOURCE_DIR}/deps/patches/getuid.patch &&
22-
patch -d ${OPENSSL_SOURCE_DIR} -t -p1 < ${CMAKE_CURRENT_SOURCE_DIR}/deps/patches/rand.patch
17+
URL_HASH ${OPENSSL_HASH}
18+
PATCHES
19+
${CMAKE_CURRENT_SOURCE_DIR}/deps/patches/getuid.patch
20+
${CMAKE_CURRENT_SOURCE_DIR}/deps/patches/rand.patch
21+
DOWNLOAD_ONLY TRUE
22+
)
23+
ExternalProject_Add(
24+
OpenSSL
25+
SOURCE_DIR ${OpenSSL_SOURCE_DIR}
2326
CONFIGURE_COMMAND
24-
CC="clang" CFLAGS="--sysroot=${WASI_SDK_PREFIX}/share/wasi-sysroot" ${OPENSSL_SOURCE_DIR}/config
27+
CC="clang" CFLAGS="--sysroot=${WASI_SDK_PREFIX}/share/wasi-sysroot" ${OpenSSL_SOURCE_DIR}/config
2528
--prefix=${OPENSSL_INSTALL_DIR}
2629
--openssldir=${OPENSSL_INSTALL_DIR}
2730
-static -no-sock -no-asm -no-ui-console -no-egd
28-
-no-afalgeng -no-tests -no-stdio -no-threads
31+
-no-afalgeng -no-tests -no-stdio -no-threads no-dso
2932
-D_WASI_EMULATED_SIGNAL
3033
-D_WASI_EMULATED_PROCESS_CLOCKS
3134
-D_WASI_EMULATED_GETPID
@@ -51,5 +54,5 @@ file(MAKE_DIRECTORY ${OPENSSL_INCLUDE_DIR})
5154

5255
add_library(OpenSSL::Crypto STATIC IMPORTED GLOBAL)
5356
set_property(TARGET OpenSSL::Crypto PROPERTY IMPORTED_LOCATION ${OPENSSL_INSTALL_DIR}/libx32/libcrypto.a)
54-
set_property(TARGET OpenSSL::Crypto PROPERTY INTERFACE_INCLUDE_DIRECTORIES ${OPENSSL_INCLUDE_DIR})
57+
target_include_directories(OpenSSL::Crypto INTERFACE ${OPENSSL_INCLUDE_DIR})
5558
add_dependencies(OpenSSL::Crypto OpenSSL)

0 commit comments

Comments
 (0)