[externals] FFmpeg -> v8.0-be99d2c0b2, OpenSSL -> v3.6.0-e3608d80df, SDL2 -> 2.32.10-38e0094637 (#3003)
FFmpeg: - builds for FreeBSD, OpenBSD, Solaris - minsizerel - Proper system lib linking on MinGW - removed shared stuff entirely outside of android because their build system SUCKS OpenSSL: - macOS universal - Proper system lib linking on MinGW SDL2: - macOS universal Both are now based on branches/commits rather than tags (since their respective release branches have a ton of new stuff lol) Signed-off-by: crueter <crueter@eden-emu.dev> Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3003 Reviewed-by: Lizzie <lizzie@eden-emu.dev> Reviewed-by: CamilleLaVey <camillelavey99@gmail.com>
This commit is contained in:
@@ -119,6 +119,8 @@ endif()
|
||||
option(YUZU_STATIC_BUILD "Use static libraries and executables if available" OFF)
|
||||
|
||||
if (YUZU_STATIC_BUILD)
|
||||
include(StaticQtLibs)
|
||||
|
||||
# lol
|
||||
set(Boost_USE_STATIC_LIBS ON)
|
||||
set(BUILD_SHARED_LIBS OFF)
|
||||
@@ -136,7 +138,8 @@ if (YUZU_STATIC_BUILD)
|
||||
# simple hook to reject dynamic libs
|
||||
function(find_library var)
|
||||
# also skip previously-found libraries cuz... yaknow
|
||||
if (${var})
|
||||
# UNLESS they are dll.a :{
|
||||
if (${var} AND NOT ${var} MATCHES "dll\\.a$")
|
||||
return()
|
||||
endif()
|
||||
|
||||
@@ -155,17 +158,19 @@ if (YUZU_STATIC_BUILD)
|
||||
|
||||
set(YUZU_USE_BUNDLED_FFMPEG ON)
|
||||
set(YUZU_USE_BUNDLED_SDL2 ON)
|
||||
set(YUZU_USE_BUNDLED_OPENSSL ON)
|
||||
|
||||
set(HTTPLIB_USE_BROTLI_IF_AVAILABLE OFF)
|
||||
elseif(APPLE)
|
||||
# these libs do not properly provide static libs/let you do it with cmake
|
||||
set(YUZU_USE_CPM ON)
|
||||
|
||||
set(YUZU_USE_BUNDLED_FFMPEG ON)
|
||||
set(YUZU_USE_BUNDLED_SDL2 ON)
|
||||
set(YUZU_USE_BUNDLED_OPENSSL ON)
|
||||
|
||||
# IMPORTED_IMPLIB not set for imported target
|
||||
# TODO(crueter): wtf
|
||||
set(YUZU_USE_BUNDLED_FFMPEG ON)
|
||||
set(YUZU_USE_EXTERNAL_SDL2 ON)
|
||||
|
||||
set(fmt_FORCE_BUNDLED ON)
|
||||
set(SPIRV-Tools_FORCE_BUNDLED ON)
|
||||
set(SPIRV-Headers_FORCE_BUNDLED ON)
|
||||
@@ -419,7 +424,7 @@ if (ANDROID OR WIN32 OR APPLE OR PLATFORM_SUN)
|
||||
set(DEFAULT_ENABLE_OPENSSL OFF)
|
||||
endif()
|
||||
|
||||
if (ENABLE_WEB_SERVICE)
|
||||
if (ENABLE_WEB_SERVICE OR USE_DISCORD_PRESENCE)
|
||||
set(DEFAULT_ENABLE_OPENSSL ON)
|
||||
endif()
|
||||
|
||||
|
||||
31
CMakeModules/StaticQtLibs.cmake
Normal file
31
CMakeModules/StaticQtLibs.cmake
Normal file
@@ -0,0 +1,31 @@
|
||||
# SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
## When linking to a static Qt build on MinGW, certain additional libraries
|
||||
## must be statically linked to as well.
|
||||
|
||||
function(static_qt_link target)
|
||||
macro(extra_libs)
|
||||
foreach(lib ${ARGN})
|
||||
find_library(${lib}_LIBRARY ${lib} REQUIRED)
|
||||
target_link_libraries(${target} PRIVATE ${${lib}_LIBRARY})
|
||||
endforeach()
|
||||
endmacro()
|
||||
|
||||
# I am constantly impressed at how ridiculously stupid the linker is
|
||||
# NB: yes, we have to put them here twice. I have no idea why
|
||||
|
||||
# libtiff.a
|
||||
extra_libs(tiff jbig bz2 lzma deflate jpeg tiff)
|
||||
|
||||
# libfreetype.a
|
||||
extra_libs(freetype bz2 Lerc brotlidec brotlicommon freetype)
|
||||
|
||||
# libharfbuzz.a
|
||||
extra_libs(harfbuzz graphite2)
|
||||
|
||||
# sijfjkfnjkdfjsbjsbsdfhvbdf
|
||||
if (ENABLE_OPENSSL)
|
||||
target_link_libraries(${target} PRIVATE OpenSSL::SSL OpenSSL::Crypto)
|
||||
endif()
|
||||
endfunction()
|
||||
@@ -4,13 +4,8 @@
|
||||
"package": "OpenSSL",
|
||||
"name": "openssl",
|
||||
"repo": "crueter-ci/OpenSSL",
|
||||
"version": "3.6.0",
|
||||
"min_version": "1.1.1",
|
||||
"disabled_platforms": [
|
||||
"macos-universal",
|
||||
"mingw-amd64",
|
||||
"mingw-arm64"
|
||||
]
|
||||
"version": "3.6.0-e3608d80df",
|
||||
"min_version": "1.1.1"
|
||||
},
|
||||
"boost": {
|
||||
"package": "Boost",
|
||||
|
||||
7
externals/cpmfile.json
vendored
7
externals/cpmfile.json
vendored
@@ -167,11 +167,8 @@
|
||||
"package": "SDL2",
|
||||
"name": "SDL2",
|
||||
"repo": "crueter-ci/SDL2",
|
||||
"version": "2.32.10",
|
||||
"min_version": "2.26.4",
|
||||
"disabled_platforms": [
|
||||
"macos-universal"
|
||||
]
|
||||
"version": "2.32.10-38e0094637",
|
||||
"min_version": "2.26.4"
|
||||
},
|
||||
"catch2": {
|
||||
"package": "Catch2",
|
||||
|
||||
9
externals/ffmpeg/cpmfile.json
vendored
9
externals/ffmpeg/cpmfile.json
vendored
@@ -10,12 +10,7 @@
|
||||
"package": "FFmpeg",
|
||||
"name": "ffmpeg",
|
||||
"repo": "crueter-ci/FFmpeg",
|
||||
"version": "8.0",
|
||||
"min_version": "4.1",
|
||||
"disabled_platforms": [
|
||||
"freebsd-amd64",
|
||||
"solaris-amd64",
|
||||
"openbsd-amd64"
|
||||
]
|
||||
"version": "8.0-be99d2c0b2",
|
||||
"min_version": "4.1"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -25,7 +25,7 @@ if (ENABLE_UPDATE_CHECKER)
|
||||
|
||||
if (ENABLE_OPENSSL)
|
||||
target_compile_definitions(frontend_common PRIVATE CPPHTTPLIB_OPENSSL_SUPPORT)
|
||||
target_link_libraries(frontend_common PRIVATE OpenSSL::SSL)
|
||||
target_link_libraries(frontend_common PRIVATE OpenSSL::SSL OpenSSL::Crypto)
|
||||
endif()
|
||||
|
||||
endif()
|
||||
|
||||
@@ -42,10 +42,12 @@ if (USE_DISCORD_PRESENCE)
|
||||
discord/discord_impl.h
|
||||
)
|
||||
target_link_libraries(qt_common PUBLIC DiscordRPC::discord-rpc httplib::httplib)
|
||||
|
||||
if (YUZU_USE_BUNDLED_OPENSSL)
|
||||
target_link_libraries(qt_common PUBLIC OpenSSL::SSL)
|
||||
target_link_libraries(qt_common PUBLIC OpenSSL::SSL OpenSSL::Crypto)
|
||||
target_compile_definitions(qt_common PRIVATE CPPHTTPLIB_OPENSSL_SUPPORT)
|
||||
endif()
|
||||
|
||||
target_compile_definitions(qt_common PUBLIC USE_DISCORD_PRESENCE)
|
||||
endif()
|
||||
|
||||
|
||||
@@ -459,30 +459,8 @@ if (NOT MSVC AND (APPLE OR NOT YUZU_STATIC_BUILD))
|
||||
-Wno-missing-field-initializers)
|
||||
endif()
|
||||
|
||||
## certain libraries need extra static libs to be linked ##
|
||||
# I have no fucking clue why it ONLY has to be on yuzu
|
||||
# yuzu_cmd works totally fine but not this??????????
|
||||
if (YUZU_STATIC_BUILD AND MINGW)
|
||||
macro(extra_libs)
|
||||
foreach(lib ${ARGN})
|
||||
find_library(${lib}_LIBRARY ${lib} REQUIRED)
|
||||
target_link_libraries(yuzu PRIVATE ${${lib}_LIBRARY})
|
||||
endforeach()
|
||||
endmacro()
|
||||
|
||||
# I am constantly impressed at how ridiculously stupid the linker is
|
||||
# NB: yes, we have to put them here twice. I have no idea why
|
||||
|
||||
# libtiff.a
|
||||
extra_libs(tiff jbig bz2 lzma deflate jpeg tiff)
|
||||
|
||||
# libfreetype.a
|
||||
extra_libs(freetype bz2 Lerc brotlidec brotlicommon freetype)
|
||||
|
||||
# libharfbuzz.a
|
||||
extra_libs(harfbuzz graphite2)
|
||||
|
||||
extra_libs(wsock32 ws2_32 crypt32 mswsock wlanapi)
|
||||
static_qt_link(yuzu)
|
||||
endif()
|
||||
|
||||
create_target_directory_groups(yuzu)
|
||||
|
||||
@@ -67,7 +67,11 @@ while true; do
|
||||
|
||||
[ "$REPO" = null ] && continue
|
||||
[ "$GIT_HOST" != "github.com" ] && continue # TODO
|
||||
# shellcheck disable=SC2153
|
||||
|
||||
if [ "$CI" = "true" ]; then
|
||||
TAG="v$VERSION"
|
||||
fi
|
||||
|
||||
[ "$TAG" = null ] && continue
|
||||
|
||||
echo "-- Package $PACKAGE"
|
||||
|
||||
Reference in New Issue
Block a user