@ -53,8 +53,7 @@ endif()
# S e t b u n d l e d s d l 2 / q t a s d e p e n d e n t o p t i o n s .
# O n L i n u x s y s t e m S D L 2 i s l i k e l y t o b e l a c k i n g H I D A P I s u p p o r t w h i c h h a v e d r a w b a c k s b u t i s n e e d e d f o r S D L m o t i o n
option ( ENABLE_SDL2 "Enable the SDL2 frontend" ON )
CMAKE_DEPENDENT_OPTION ( YUZU_USE_BUNDLED_SDL2 "Download bundled SDL2 binaries" ON "ENABLE_SDL2;MSVC" OFF )
CMAKE_DEPENDENT_OPTION ( ENABLE_SDL2 "Enable the SDL2 frontend" ON "NOT ANDROID" OFF )
if ( PLATFORM_FREEBSD )
CMAKE_DEPENDENT_OPTION ( YUZU_USE_EXTERNAL_SDL2 "Compile external SDL2" OFF "ENABLE_SDL2;NOT MSVC" OFF )
@ -126,7 +125,10 @@ option(YUZU_DOWNLOAD_ANDROID_VVL "Download validation layer binary for android"
option ( FORCE_DOWNLOAD_WIN_BUNDLES "Forcefully download bundled Windows dependencies (useful for CI)" OFF )
option ( FORCE_DOWNLOAD_OPENSSL "Forcefully download all bundled OpenSSL builds (useful for CI)" OFF )
if ( YUZU_USE_CPM AND ENABLE_SDL2 )
option ( YUZU_USE_BUNDLED_SDL2 "Download bundled SDL2 build" "${MSVC}" )
CMAKE_DEPENDENT_OPTION ( FORCE_DOWNLOAD_SDL2 "Forcefully download all bundled SDL2 builds (useful for CI)" OFF "YUZU_USE_BUNDLED_SDL2" OFF )
endif ( )
CMAKE_DEPENDENT_OPTION ( YUZU_ROOM "Enable dedicated room functionality" ON "NOT ANDROID" OFF )
@ -169,6 +171,11 @@ endif()
option ( ENABLE_OPENSSL "Enable OpenSSL backend for ISslConnection" ${ DEFAULT_ENABLE_OPENSSL } )
if ( YUZU_USE_CPM AND ENABLE_OPENSSL )
CMAKE_DEPENDENT_OPTION ( YUZU_USE_BUNDLED_OPENSSL "Download bundled OpenSSL build" "${MSVC}" "NOT ANDROID" ON )
CMAKE_DEPENDENT_OPTION ( FORCE_DOWNLOAD_OPENSSL "Forcefully download all bundled OpenSSL builds (useful for CI)" OFF "YUZU_USE_BUNDLED_OPENSSL" OFF )
endif ( )
if ( ANDROID AND YUZU_DOWNLOAD_ANDROID_VVL )
set ( vvl_version "sdk-1.3.261.1" )
set ( vvl_zip_file "${CMAKE_BINARY_DIR}/externals/vvl-android.zip" )
@ -398,183 +405,17 @@ if (YUZU_USE_CPM)
# o p e n s s l f u n n i n e s s
if ( ENABLE_OPENSSL )
set ( SSL_VERSION 3.5.2 )
if ( ( MSVC AND ARCHITECTURE_x86_64 ) OR FORCE_DOWNLOAD_OPENSSL )
set ( ARTIFACT openssl-windows-amd64- ${ SSL_VERSION } .tar.zst )
set ( KEY windows-amd64 )
if ( MSVC AND ARCHITECTURE_x86_64 )
set ( DOWNLOAD_ONLY OFF )
set ( BUILD_SHARED_LIBS OFF )
else ( )
set ( DOWNLOAD_ONLY ON )
endif ( )
AddPackage (
N A M E O p e n S S L - w i n d o w s - a m d 6 4
R E P O c r u e t e r / O p e n S S L - C I
T A G v $ { S S L _ V E R S I O N }
V E R S I O N $ { S S L _ V E R S I O N }
A R T I F A C T $ { A R T I F A C T }
K E Y $ { K E Y }
H A S H _ S U F F I X s h a 5 1 2 s u m
B U N D L E D _ P A C K A G E O N
D O W N L O A D _ O N L Y $ { D O W N L O A D _ O N L Y }
)
if ( NOT DOWNLOAD_ONLY )
set ( OPENSSL_DIR ${ OpenSSL-windows-amd64_SOURCE_DIR } )
endif ( )
message ( "OPENSSL ${DOWNLOAD_ONLY} ${OPENSSL_DIR}" )
endif ( )
if ( ( MSVC AND ARCHITECTURE_arm64 ) OR FORCE_DOWNLOAD_OPENSSL )
set ( ARTIFACT openssl-windows-arm64- ${ SSL_VERSION } .tar.zst )
set ( KEY windows-arm64 )
if ( MSVC AND ARCHITECTURE_arm64 )
set ( DOWNLOAD_ONLY OFF )
set ( BUILD_SHARED_LIBS OFF )
else ( )
set ( DOWNLOAD_ONLY ON )
endif ( )
AddPackage (
N A M E O p e n S S L - w i n d o w s - a r m 6 4
R E P O c r u e t e r / O p e n S S L - C I
T A G v $ { S S L _ V E R S I O N }
V E R S I O N $ { S S L _ V E R S I O N }
A R T I F A C T $ { A R T I F A C T }
K E Y $ { K E Y }
H A S H _ S U F F I X s h a 5 1 2 s u m
B U N D L E D _ P A C K A G E O N
D O W N L O A D _ O N L Y $ { D O W N L O A D _ O N L Y }
)
if ( NOT DOWNLOAD_ONLY )
set ( OPENSSL_DIR ${ OpenSSL-windows-arm64_SOURCE_DIR } )
endif ( )
endif ( )
if ( ANDROID OR FORCE_DOWNLOAD_OPENSSL )
if ( ANDROID )
set ( DOWNLOAD_ONLY OFF )
set ( BUILD_SHARED_LIBS OFF )
else ( )
set ( DOWNLOAD_ONLY ON )
endif ( )
AddPackage (
N A M E O p e n S S L - a n d r o i d
R E P O c r u e t e r / O p e n S S L - C I
T A G v $ { S S L _ V E R S I O N }
V E R S I O N $ { S S L _ V E R S I O N }
A R T I F A C T o p e n s s l - a n d r o i d - $ { S S L _ V E R S I O N } . t a r . z s t
K E Y a n d r o i d
H A S H _ S U F F I X s h a 5 1 2 s u m
B U N D L E D _ P A C K A G E O N
D O W N L O A D _ O N L Y $ { D O W N L O A D _ O N L Y }
)
if ( NOT DOWNLOAD_ONLY )
set ( OPENSSL_DIR ${ OpenSSL-android_SOURCE_DIR } )
endif ( )
endif ( )
if ( PLATFORM_SUN OR FORCE_DOWNLOAD_OPENSSL )
if ( PLATFORM_SUN )
set ( DOWNLOAD_ONLY OFF )
set ( BUILD_SHARED_LIBS OFF )
else ( )
set ( DOWNLOAD_ONLY ON )
endif ( )
AddPackage (
N A M E O p e n S S L - s o l a r i s
R E P O c r u e t e r / O p e n S S L - C I
T A G v $ { S S L _ V E R S I O N }
V E R S I O N $ { S S L _ V E R S I O N }
A R T I F A C T o p e n s s l - s o l a r i s - $ { S S L _ V E R S I O N } . t a r . z s t
K E Y s o l a r i s
H A S H _ S U F F I X s h a 5 1 2 s u m
B U N D L E D _ P A C K A G E O N
D O W N L O A D _ O N L Y $ { D O W N L O A D _ O N L Y }
if ( YUZU_USE_BUNDLED_OPENSSL )
AddCIPackage (
P A C K A G E O p e n S S L
N A M E o p e n s s l
R E P O c r u e t e r - c i / O p e n S S L
V E R S I O N 3 . 5 . 2
M I N _ V E R S I O N 1 . 1 . 1
)
if ( NOT DOWNLOAD_ONLY )
set ( OPENSSL_DIR ${ OpenSSL-solaris_SOURCE_DIR } )
endif ( )
endif ( )
if ( PLATFORM_FREEBSD OR FORCE_DOWNLOAD_OPENSSL )
if ( PLATFORM_FREEBSD )
set ( DOWNLOAD_ONLY OFF )
set ( BUILD_SHARED_LIBS OFF )
else ( )
set ( DOWNLOAD_ONLY ON )
endif ( )
AddPackage (
N A M E O p e n S S L - f r e e b s d
R E P O c r u e t e r / O p e n S S L - C I
T A G v $ { S S L _ V E R S I O N }
V E R S I O N $ { S S L _ V E R S I O N }
A R T I F A C T o p e n s s l - f r e e b s d - $ { S S L _ V E R S I O N } . t a r . z s t
K E Y f r e e b s d
H A S H _ S U F F I X s h a 5 1 2 s u m
B U N D L E D _ P A C K A G E O N
D O W N L O A D _ O N L Y $ { D O W N L O A D _ O N L Y }
)
if ( NOT DOWNLOAD_ONLY )
set ( OPENSSL_DIR ${ OpenSSL-freebsd_SOURCE_DIR } )
endif ( )
endif ( )
if ( PLATFORM_LINUX OR FORCE_DOWNLOAD_OPENSSL )
if ( PLATFORM_LINUX )
set ( DOWNLOAD_ONLY OFF )
set ( BUILD_SHARED_LIBS OFF )
else ( )
set ( DOWNLOAD_ONLY ON )
endif ( )
AddPackage (
N A M E O p e n S S L - l i n u x
R E P O c r u e t e r / O p e n S S L - C I
T A G v $ { S S L _ V E R S I O N }
V E R S I O N $ { S S L _ V E R S I O N }
A R T I F A C T o p e n s s l - l i n u x - $ { S S L _ V E R S I O N } . t a r . z s t
K E Y l i n u x
H A S H _ S U F F I X s h a 5 1 2 s u m
B U N D L E D _ P A C K A G E O N
D O W N L O A D _ O N L Y $ { D O W N L O A D _ O N L Y }
)
if ( NOT DOWNLOAD_ONLY )
set ( OPENSSL_DIR ${ OpenSSL-linux_SOURCE_DIR } )
endif ( )
endif ( )
if ( DEFINED OPENSSL_DIR )
include ( ${ OPENSSL_DIR } /openssl.cmake )
# O v e r r i d e s f i n d p a c k a g e
CPMAddPackage (
N A M E O p e n S S L
S O U R C E _ D I R $ { O P E N S S L _ D I R }
)
else ( )
find_package ( OpenSSL 1.1.1 REQUIRED )
endif ( )
find_package ( OpenSSL 1.1.1 REQUIRED )
endif ( )
# b o o s t
@ -837,30 +678,19 @@ endif()
# TODO ( crueter ) : c o m b i n e t h i s a l l w i t h C P M .
if ( ENABLE_SDL2 )
if ( YUZU_USE_BUNDLED_SDL2 )
# D e t e c t t o o l c h a i n a n d p l a t f o r m
if ( ( MSVC_VERSION GREATER_EQUAL 1920 ) AND ARCHITECTURE_x86_64 )
set ( SDL2_VER "SDL2-2.32.8" )
else ( )
message ( FATAL_ERROR "No bundled SDL2 binaries for your toolchain. Disable YUZU_USE_BUNDLED_SDL2 and provide your own." )
endif ( )
if ( DEFINED SDL2_VER )
download_bundled_external ( "sdl2/" ${ SDL2_VER } "sdl2-bundled" SDL2_PREFIX 2.32.8 )
endif ( )
set ( SDL2_FOUND YES )
set ( SDL2_INCLUDE_DIR "${SDL2_PREFIX}/include" CACHE PATH "Path to SDL2 headers" )
set ( SDL2_LIBRARY "${SDL2_PREFIX}/lib/x64/SDL2.lib" CACHE PATH "Path to SDL2 library" )
set ( SDL2_DLL_DIR "${SDL2_PREFIX}/lib/x64/" CACHE PATH "Path to SDL2.dll" )
add_library ( SDL2::SDL2 INTERFACE IMPORTED )
target_link_libraries ( SDL2::SDL2 INTERFACE "${SDL2_LIBRARY}" )
target_include_directories ( SDL2::SDL2 INTERFACE "${SDL2_INCLUDE_DIR}" )
AddCIPackage (
P A C K A G E S D L 2
N A M E S D L 2
R E P O c r u e t e r - c i / S D L 2
V E R S I O N 2 . 3 2 . 8
M I N _ V E R S I O N 2 . 2 6 . 4
D I S A B L E D _ P L A T F O R M S " s o l a r i s "
C M A K E _ F I L E N A M E s d l 2
)
elseif ( YUZU_USE_EXTERNAL_SDL2 )
message ( STATUS "Using SDL2 from externals." )
else ( )
find_package ( SDL2 2.26.4 REQUIRED )
endif ( )
find_package ( SDL2 2.26.4 REQUIRED )
endif ( )
# L i s t o f a l l F F m p e g c o m p o n e n t s r e q u i r e d
@ -903,7 +733,7 @@ if (ENABLE_WEB_SERVICE OR ENABLE_QT_UPDATE_CHECKER)
find_package ( cpp-jwt )
endif ( )
if ( NOT YUZU_USE_BUNDLED _SDL2)
if ( ENABLE _SDL2)
find_package ( SDL2 )
endif ( )