diff --git a/CMakeLists.txt b/CMakeLists.txt index b0a5ad9a51..fc988ac252 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -55,7 +55,6 @@ 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) @@ -245,30 +244,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 +378,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 1.1.1 REQUIRED) + if (YUZU_USE_CPM) message(STATUS "Fetching needed dependencies with CPM") @@ -510,10 +489,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) diff --git a/externals/CMakeLists.txt b/externals/CMakeLists.txt index 3b4627d48b..527d7de363 100644 --- a/externals/CMakeLists.txt +++ b/externals/CMakeLists.txt @@ -234,9 +234,7 @@ if (VulkanMemoryAllocator_ADDED) endif() # httplib -if (ENABLE_WEB_SERVICE OR ENABLE_UPDATE_CHECKER OR USE_DISCORD_PRESENCE OR ENABLE_OPENSSL) - AddJsonPackage(httplib) -endif() +AddJsonPackage(httplib) # cpp-jwt if (ENABLE_WEB_SERVICE OR ENABLE_UPDATE_CHECKER) diff --git a/src/core/CMakeLists.txt b/src/core/CMakeLists.txt index 4ac08726f7..0ff1b985d0 100644 --- a/src/core/CMakeLists.txt +++ b/src/core/CMakeLists.txt @@ -1223,9 +1223,7 @@ target_link_libraries(core PRIVATE MbedTLS::mbedcrypto${MBEDTLS_LIB_SUFFIX} MbedTLS::mbedtls${MBEDTLS_LIB_SUFFIX}) -if (ENABLE_WEB_SERVICE OR ENABLE_OPENSSL) - target_link_libraries(core PRIVATE httplib::httplib) -endif() +target_link_libraries(core PRIVATE httplib::httplib) if (ENABLE_WEB_SERVICE) target_compile_definitions(core PUBLIC ENABLE_WEB_SERVICE) @@ -1271,25 +1269,24 @@ if (ARCHITECTURE_x86_64 OR ARCHITECTURE_arm64) target_link_libraries(core PRIVATE dynarmic::dynarmic) endif() -if(ENABLE_OPENSSL) - target_sources(core PRIVATE - hle/service/ssl/ssl_backend_openssl.cpp) +target_sources(core PRIVATE hle/service/ssl/ssl_backend_openssl.cpp) - find_package(OpenSSL REQUIRED) +target_link_libraries(core PRIVATE OpenSSL::SSL OpenSSL::Crypto) +target_compile_definitions(core PRIVATE CPPHTTPLIB_OPENSSL_SUPPORT) - target_link_libraries(core PRIVATE OpenSSL::SSL OpenSSL::Crypto) - target_compile_definitions(core PRIVATE CPPHTTPLIB_OPENSSL_SUPPORT) -elseif (APPLE) - target_sources(core PRIVATE - hle/service/ssl/ssl_backend_securetransport.cpp) - target_link_libraries(core PRIVATE "-framework Security") -elseif (WIN32) - target_sources(core PRIVATE - hle/service/ssl/ssl_backend_schannel.cpp) - target_link_libraries(core PRIVATE crypt32 secur32) -else() - target_sources(core PRIVATE - hle/service/ssl/ssl_backend_none.cpp) -endif() +# TODO + +# elseif (APPLE) +# target_sources(core PRIVATE +# hle/service/ssl/ssl_backend_securetransport.cpp) +# target_link_libraries(core PRIVATE "-framework Security") +# elseif (WIN32) +# target_sources(core PRIVATE +# hle/service/ssl/ssl_backend_schannel.cpp) +# target_link_libraries(core PRIVATE crypt32 secur32) +# else() +# target_sources(core PRIVATE +# hle/service/ssl/ssl_backend_none.cpp) +# endif() create_target_directory_groups(core) diff --git a/src/dedicated_room/CMakeLists.txt b/src/dedicated_room/CMakeLists.txt index eb0b4f399e..ceedf10c74 100644 --- a/src/dedicated_room/CMakeLists.txt +++ b/src/dedicated_room/CMakeLists.txt @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project +# SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project # SPDX-License-Identifier: GPL-3.0-or-later # SPDX-FileCopyrightText: 2017 Citra Emulator Project @@ -16,7 +16,12 @@ if (ENABLE_WEB_SERVICE) target_link_libraries(yuzu-room PRIVATE web_service) endif() -target_link_libraries(yuzu-room PRIVATE MbedTLS::mbedcrypto${MBEDTLS_LIB_SUFFIX} MbedTLS::mbedtls${MBEDTLS_LIB_SUFFIX}) +target_link_libraries(yuzu-room PRIVATE + MbedTLS::mbedcrypto${MBEDTLS_LIB_SUFFIX} + MbedTLS::mbedtls${MBEDTLS_LIB_SUFFIX} + OpenSSL:SSL + OpenSSL::Crypto) + if (MSVC) target_link_libraries(yuzu-room PRIVATE getopt) endif() diff --git a/src/frontend_common/CMakeLists.txt b/src/frontend_common/CMakeLists.txt index 82993e45b6..a6d580cb18 100644 --- a/src/frontend_common/CMakeLists.txt +++ b/src/frontend_common/CMakeLists.txt @@ -23,11 +23,8 @@ if (ENABLE_UPDATE_CHECKER) update_checker.cpp update_checker.h) - if (ENABLE_OPENSSL) - target_compile_definitions(frontend_common PUBLIC CPPHTTPLIB_OPENSSL_SUPPORT) - target_link_libraries(frontend_common PRIVATE OpenSSL::SSL OpenSSL::Crypto) - endif() - + target_compile_definitions(frontend_common PUBLIC CPPHTTPLIB_OPENSSL_SUPPORT) + target_link_libraries(frontend_common PRIVATE OpenSSL::SSL OpenSSL::Crypto) endif() create_target_directory_groups(frontend_common) diff --git a/src/yuzu/CMakeLists.txt b/src/yuzu/CMakeLists.txt index 1fb87fe1f8..ce8d1a6615 100644 --- a/src/yuzu/CMakeLists.txt +++ b/src/yuzu/CMakeLists.txt @@ -361,10 +361,6 @@ target_sources(yuzu ${LANGUAGES} ${THEMES}) -if (ENABLE_OPENSSL) - target_link_libraries(yuzu PRIVATE OpenSSL::SSL OpenSSL::Crypto) -endif() - if (APPLE) # Normal icns set(MACOSX_ICON "${CMAKE_SOURCE_DIR}/dist/eden.icns") @@ -458,8 +454,6 @@ if (NOT MSVC AND (APPLE OR NOT YUZU_STATIC_BUILD)) endif() # Remember that the linker is incredibly stupid. -if (YUZU_STATIC_BUILD AND MINGW AND ARCHITECTURE_x86_64 AND ENABLE_OPENSSL) - target_link_libraries(yuzu PRIVATE OpenSSL::SSL OpenSSL::Crypto) -endif() +target_link_libraries(yuzu PRIVATE OpenSSL::SSL OpenSSL::Crypto) create_target_directory_groups(yuzu)