@ -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,11 +257,9 @@ 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 ( )
set ( DEFAULT_YUZU_USE_BUNDLED_OPENSSL OFF )
if ( EXT_DEFAULT OR PLATFORM_SUN )
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 )
@ -420,16 +449,6 @@ if (YUZU_USE_CPM)
add_library ( lz4::lz4 ALIAS lz4_static )
endif ( )
# n l o h m a n n
AddJsonPackage ( nlohmann )
# z l i b
AddJsonPackage ( zlib )
if ( ZLIB_ADDED )
add_library ( ZLIB::ZLIB ALIAS zlibstatic )
endif ( )
# z s t d
AddJsonPackage ( zstd )
@ -438,19 +457,31 @@ if (YUZU_USE_CPM)
add_library ( zstd::libzstd ALIAS libzstd_static )
endif ( )
# O p u s
AddJsonPackage ( opus )
if ( NOT YUZU_STATIC_ROOM )
# n l o h m a n n
AddJsonPackage ( nlohmann )
# z l i b
AddJsonPackage ( zlib )
if ( Opus_ADDED )
if ( MSVC AND CXX_CLANG )
target_compile_options ( opus PRIVATE
- W n o - i m p l i c i t - f u n c t i o n - d e c l a r a t i o n
)
if ( ZLIB_ADDED )
add_library ( ZLIB::ZLIB ALIAS zlibstatic )
endif ( )
endif ( )
if ( NOT TARGET Opus::opus )
add_library ( Opus::opus ALIAS opus )
# O p u s
AddJsonPackage ( opus )
if ( Opus_ADDED )
if ( MSVC AND CXX_CLANG )
target_compile_options ( opus PRIVATE
- W n o - i m p l i c i t - f u n c t i o n - d e c l a r a t i o n
)
endif ( )
endif ( )
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 ?
@ -537,47 +568,50 @@ 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 )
find_package ( VulkanUtilityLibraries )
find_package ( SimpleIni )
find_package ( SPIRV-Tools )
find_package ( sirit )
find_package ( gamemode )
find_package ( mcl )
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 ( )
if ( NOT YUZU_STATIC_ROOM )
find_package ( libusb )
find_package ( VulkanMemoryAllocator )
find_package ( VulkanUtilityLibraries )
find_package ( SimpleIni )
find_package ( SPIRV-Tools )
find_package ( sirit )
find_package ( gamemode )
find_package ( mcl )
if ( ARCHITECTURE_arm64 OR DYNARMIC_TESTS )
find_package ( oaknut )
endif ( )
if ( ARCHITECTURE_riscv64 )
find_package ( biscui t)
endif ( )
if ( ENABLE_SDL2 )
find_package ( SDL2 )
endif ( )
if ( ENABLE_WEB_SERVICE OR ENABLE_UPDATE_CHECKER )
find_package ( cpp-jwt )
endif ( )
if ( USE_DISCORD_PRESENCE )
find_package ( DiscordRPC )
endif ( )
if ( ARCHITECTURE_arm64 OR DYNARMIC_TESTS )
find_package ( oaknut )
endif ( )
if ( ENABLE_CUBEB )
find_package ( cubeb )
endif ( )
if ( ENABLE_SDL2 )
find_package ( SDL2 )
endif ( )
if ( YUZU_TESTS OR DYNARMIC_TESTS )
find_package ( Catch2 )
if ( USE_DISCORD_PRESENCE )
find_package ( DiscordRPC )
endif ( )
if ( ENABLE_CUBEB )
find_package ( cubeb )
endif ( )
if ( YUZU_TESTS OR DYNARMIC_TESTS )
find_package ( Catch2 )
endif ( )
endif ( )
# Q t s t u f f
@ -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 } )