@ -41,6 +41,37 @@ if (PLATFORM_NETBSD)
set ( ENV{PKG_CONFIG_PATH} "${PKG_CONFIG_PATH}:${CMAKE_SYSROOT}/usr/pkg/lib/ffmpeg7/pkgconfig" )
endif ( )
cmake_dependent_option ( YUZU_STATIC_ROOM "Build a static room executable only (CI only)" OFF "PLATFORM_LINUX" OFF )
if ( YUZU_STATIC_ROOM )
set ( YUZU_ROOM ON )
set ( YUZU_ROOM_STANDALONE ON )
# d i s a b l e e v e r y t h i n g
set ( ENABLE_QT OFF )
set ( ENABLE_SDL2 OFF )
set ( YUZU_CMD OFF )
set ( ENABLE_CUBEB OFF )
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 )
# a l l o w s t a t i c l i b s f o r b o o s t a n d m b e d t l s t h o u g h
set ( Boost_USE_STATIC_LIBS ON )
set ( CMAKE_FIND_LIBRARY_SUFFIXES ".a" )
set ( MBEDTLS_LIB_SUFFIX "_static" )
set ( YUZU_USE_CPM ON )
set ( zstd_FORCE_BUNDLED ON )
set ( fmt_FORCE_BUNDLED ON )
endif ( )
# c o m m o n n e t w o r k m b e d t l s
# c o m m o n : x b y a k ? b o o o s t f m t l z 4 z s t d
# n e t w o r k : e n e t b o o s t
# q t s t u f f
option ( ENABLE_QT "Enable the Qt frontend" ON )
option ( ENABLE_QT_TRANSLATION "Enable translations for the Qt frontend" OFF )
@ -226,12 +257,10 @@ endif()
option ( ENABLE_OPENSSL "Enable OpenSSL backend for ISslConnection" ${ DEFAULT_ENABLE_OPENSSL } )
if ( ENABLE_OPENSSL )
set ( DEFAULT_YUZU_USE_BUNDLED_OPENSSL OFF )
if ( EXT_DEFAULT OR PLATFORM_SUN )
set ( DEFAULT_YUZU_USE_BUNDLED_OPENSSL ON )
endif ( )
endif ( )
cmake_dependent_option ( YUZU_USE_BUNDLED_OPENSSL "Download bundled OpenSSL build" ${ DEFAULT_YUZU_USE_BUNDLED_OPENSSL } "ENABLE_OPENSSL" OFF )
@ -420,6 +449,15 @@ if (YUZU_USE_CPM)
add_library ( lz4::lz4 ALIAS lz4_static )
endif ( )
# z s t d
AddJsonPackage ( zstd )
if ( zstd_ADDED )
add_library ( zstd::zstd ALIAS libzstd_static )
add_library ( zstd::libzstd ALIAS libzstd_static )
endif ( )
if ( NOT YUZU_STATIC_ROOM )
# n l o h m a n n
AddJsonPackage ( nlohmann )
@ -430,14 +468,6 @@ if (YUZU_USE_CPM)
add_library ( ZLIB::ZLIB ALIAS zlibstatic )
endif ( )
# z s t d
AddJsonPackage ( zstd )
if ( zstd_ADDED )
add_library ( zstd::zstd ALIAS libzstd_static )
add_library ( zstd::libzstd ALIAS libzstd_static )
endif ( )
# O p u s
AddJsonPackage ( opus )
@ -452,6 +482,7 @@ if (YUZU_USE_CPM)
if ( NOT TARGET Opus::opus )
add_library ( Opus::opus ALIAS opus )
endif ( )
endif ( )
else ( )
# T O D O : w e c a n p r o b a b l y j u s t u s e C P M f o r t h i s . . . r i g h t ?
# E n f o r c e t h e s e a r c h m o d e o f n o n - r e q u i r e d p a c k a g e s f o r b e t t e r a n d s h o r t e r f a i l u r e m e s s a g e s
@ -537,10 +568,16 @@ message(STATUS "Platform Libraries: ${PLATFORM_LIBRARIES}")
add_subdirectory ( externals )
# p a s s t a r g e t s f r o m e x t e r n a l s
find_package ( libusb )
find_package ( VulkanMemoryAllocator )
find_package ( enet )
find_package ( MbedTLS )
if ( ARCHITECTURE_x86 OR ARCHITECTURE_x86_64 )
find_package ( xbyak )
endif ( )
if ( NOT YUZU_STATIC_ROOM )
find_package ( libusb )
find_package ( VulkanMemoryAllocator )
find_package ( VulkanUtilityLibraries )
find_package ( SimpleIni )
find_package ( SPIRV-Tools )
@ -552,10 +589,6 @@ if (ARCHITECTURE_riscv64)
find_package ( biscuit )
endif ( )
if ( ARCHITECTURE_x86 OR ARCHITECTURE_x86_64 )
find_package ( xbyak )
endif ( )
if ( ENABLE_WEB_SERVICE OR ENABLE_UPDATE_CHECKER )
find_package ( cpp-jwt )
endif ( )
@ -579,6 +612,7 @@ endif()
if ( YUZU_TESTS OR DYNARMIC_TESTS )
find_package ( Catch2 )
endif ( )
endif ( )
# Q t s t u f f
if ( ENABLE_QT )
@ -658,7 +692,7 @@ if (ENABLE_QT)
set_target_properties ( Qt6::Platform PROPERTIES INTERFACE_COMPILE_FEATURES "" )
endif ( )
if ( NOT ( YUZU_USE_BUNDLED_FFMPEG OR YUZU_USE_EXTERNAL_FFMPEG ) )
if ( NOT YUZU_STATIC_ROOM AND NOT ( YUZU_USE_BUNDLED_FFMPEG OR YUZU_USE_EXTERNAL_FFMPEG ) )
# U s e s y s t e m i n s t a l l e d F F m p e g
find_package ( FFmpeg REQUIRED QUIET COMPONENTS ${ FFmpeg_COMPONENTS } )