aboutsummaryrefslogtreecommitdiff
path: root/CMakeLists.txt
diff options
context:
space:
mode:
authorlizzie <lizzie@eden-emu.dev>2026-02-23 02:50:13 +0100
committercrueter <crueter@eden-emu.dev>2026-02-23 02:50:13 +0100
commit0a687b82d49f5b944379ce2522c8f7778150b034 (patch)
treec25b49f40b6864a44f312f70578d6d3c86b6ac26 /CMakeLists.txt
parent80d6172084cea72688c1663d676f0df9ba2839bb (diff)
[crypto] Atomize all traces of MbedTLS, and require OpenSSL 3+ (#3606)
Closes #3137 Closes #3465 - Replace all mbedtls usage with OpenSSL - require OpenSSL - Up OpenSSL version to 3, cuz that's what we actually need... CAVEATS: - httplib also now required - other ssl backends for svc are unused, maybe remove later * To be fair, our CI never used them anyways. And we never tested those TESTERS PLEASE TEST: - All games and applets boot - Boot, load, exit, etc. times Co-authored-by: crueter <crueter@eden-emu.dev> Signed-off-by: lizzie <lizzie@eden-emu.dev> Co-authored-by: crueter <crueter@eden-emu.dev> Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3606 Reviewed-by: crueter <crueter@eden-emu.dev> Reviewed-by: MaranBr <maranbr@eden-emu.dev> Reviewed-by: DraVee <dravee@eden-emu.dev> Co-authored-by: lizzie <lizzie@eden-emu.dev> Co-committed-by: lizzie <lizzie@eden-emu.dev>
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r--CMakeLists.txt55
1 files changed, 11 insertions, 44 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index b0a5ad9a51..dc46cdf817 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -55,24 +55,19 @@ if (YUZU_STATIC_ROOM)
set(ENABLE_UPDATE_CHECKER OFF)
set(USE_DISCORD_PRESENCE OFF)
set(BUILD_TESTING OFF)
- set(ENABLE_OPENSSL OFF)
set(ENABLE_WEB_SERVICE OFF)
set(ENABLE_LIBUSB OFF)
- # allow static libs for boost and mbedtls though
+ # allow static libs for boost though
set(Boost_USE_STATIC_LIBS ON)
set(CMAKE_FIND_LIBRARY_SUFFIXES ".a")
- set(MBEDTLS_LIB_SUFFIX "_static")
+ set(OPENSSL_USE_STATIC_LIBS ON)
set(YUZU_USE_CPM ON)
set(zstd_FORCE_BUNDLED ON)
set(fmt_FORCE_BUNDLED ON)
endif()
-# common network mbedtls
-# common: xbyak? booost fmt lz4 zstd
-# network: enet boost
-
# qt stuff
option(ENABLE_QT "Enable the Qt frontend" ON)
option(ENABLE_QT_TRANSLATION "Enable translations for the Qt frontend" OFF)
@@ -130,9 +125,6 @@ if (YUZU_STATIC_BUILD)
set(YUZU_USE_BUNDLED_OPENSSL ON)
set(HTTPLIB_USE_BROTLI_IF_AVAILABLE OFF)
-
- ## some libraries define a Library::Name_static alternative ##
- set(MBEDTLS_LIB_SUFFIX _static)
elseif(APPLE)
set(YUZU_USE_CPM ON)
@@ -145,7 +137,6 @@ if (YUZU_STATIC_BUILD)
set(SPIRV-Tools_FORCE_BUNDLED ON)
set(SPIRV-Headers_FORCE_BUNDLED ON)
set(zstd_FORCE_BUNDLED ON)
- set(MbedTLS_FORCE_BUNDLED ON)
endif()
endif()
@@ -245,30 +236,12 @@ cmake_dependent_option(YUZU_USE_BUNDLED_MOLTENVK "Download bundled MoltenVK lib"
option(YUZU_DISABLE_LLVM "Disable LLVM (useful for CI)" OFF)
-set(DEFAULT_ENABLE_OPENSSL ON)
-if (ANDROID OR WIN32 OR APPLE OR PLATFORM_SUN OR PLATFORM_OPENBSD)
- # - Windows defaults to the Schannel backend.
- # - macOS defaults to the SecureTransport backend.
- # - Android currently has no SSL backend as the NDK doesn't include any SSL
- # library; a proper 'native' backend would have to go through Java.
- # - Solaris and OpenBSD have too old backends
- # But you can force builds for those platforms to use OpenSSL if you have
- # your own copy of it.
- set(DEFAULT_ENABLE_OPENSSL OFF)
-endif()
-
-if (ENABLE_WEB_SERVICE OR USE_DISCORD_PRESENCE)
- set(DEFAULT_ENABLE_OPENSSL ON)
-endif()
-
-option(ENABLE_OPENSSL "Enable OpenSSL backend for ISslConnection" ${DEFAULT_ENABLE_OPENSSL})
-
set(DEFAULT_YUZU_USE_BUNDLED_OPENSSL OFF)
if (EXT_DEFAULT OR PLATFORM_SUN OR PLATFORM_OPENBSD)
set(DEFAULT_YUZU_USE_BUNDLED_OPENSSL ON)
endif()
-cmake_dependent_option(YUZU_USE_BUNDLED_OPENSSL "Download bundled OpenSSL build" ${DEFAULT_YUZU_USE_BUNDLED_OPENSSL} "ENABLE_OPENSSL" OFF)
+option(YUZU_USE_BUNDLED_OPENSSL "Download bundled OpenSSL build" ${DEFAULT_YUZU_USE_BUNDLED_OPENSSL})
if (ANDROID AND YUZU_DOWNLOAD_ANDROID_VVL)
AddJsonPackage(vulkan-validation-layers)
@@ -397,18 +370,16 @@ set(THREADS_PREFER_PTHREAD_FLAG ON)
find_package(Threads REQUIRED)
# openssl funniness
-if (ENABLE_OPENSSL)
- if (YUZU_USE_BUNDLED_OPENSSL)
- set(BUILD_SHARED_LIBS OFF)
- AddJsonPackage(openssl)
- if (OpenSSL_ADDED)
- add_compile_definitions(YUZU_BUNDLED_OPENSSL)
- endif()
+if (YUZU_USE_BUNDLED_OPENSSL)
+ set(BUILD_SHARED_LIBS OFF)
+ AddJsonPackage(openssl)
+ if (OpenSSL_ADDED)
+ add_compile_definitions(YUZU_BUNDLED_OPENSSL)
endif()
-
- find_package(OpenSSL 1.1.1 REQUIRED)
endif()
+find_package(OpenSSL 3 REQUIRED)
+
if (YUZU_USE_CPM)
message(STATUS "Fetching needed dependencies with CPM")
@@ -510,10 +481,6 @@ else()
# wow
find_package(Boost 1.57.0 CONFIG REQUIRED OPTIONAL_COMPONENTS headers context system fiber filesystem)
-
- if (ENABLE_OPENSSL)
- find_package(OpenSSL 1.1.1 REQUIRED)
- endif()
endif()
if(NOT TARGET Boost::headers)
@@ -574,8 +541,8 @@ message(STATUS "Platform Libraries: ${PLATFORM_LIBRARIES}")
add_subdirectory(externals)
# pass targets from externals
+# TODO(crueter): CPMUtil Propagate func?
find_package(enet)
-find_package(MbedTLS)
find_package(unordered_dense REQUIRED)
if (ARCHITECTURE_x86 OR ARCHITECTURE_x86_64)