|
|
@ -28,23 +28,23 @@ if (NOT DEFINED ARCHITECTURE) |
|
|
endif() |
|
|
endif() |
|
|
|
|
|
|
|
|
# Needed for FFmpeg w/ VAAPI and DRM |
|
|
# Needed for FFmpeg w/ VAAPI and DRM |
|
|
if (PLATFORM_OPENBSD) |
|
|
|
|
|
|
|
|
if (OPENBSD) |
|
|
# OpenBSD 7.8 broke libcxx when upgrading, so we must define the PSTL backend manually |
|
|
# OpenBSD 7.8 broke libcxx when upgrading, so we must define the PSTL backend manually |
|
|
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -I${CMAKE_SYSROOT}/usr/X11R6/include -D_LIBCPP_PSTL_BACKEND_SERIAL=1") |
|
|
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -I${CMAKE_SYSROOT}/usr/X11R6/include -D_LIBCPP_PSTL_BACKEND_SERIAL=1") |
|
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -I${CMAKE_SYSROOT}/usr/X11R6/include -D_LIBCPP_PSTL_BACKEND_SERIAL=1") |
|
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -I${CMAKE_SYSROOT}/usr/X11R6/include -D_LIBCPP_PSTL_BACKEND_SERIAL=1") |
|
|
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -L${CMAKE_SYSROOT}/usr/X11R6/lib") |
|
|
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -L${CMAKE_SYSROOT}/usr/X11R6/lib") |
|
|
elseif (PLATFORM_NETBSD) |
|
|
|
|
|
|
|
|
elseif (NETBSD) |
|
|
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -I${CMAKE_SYSROOT}/usr/X11R7/include -I${CMAKE_SYSROOT}/usr/pkg/include/c++/v1") |
|
|
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -I${CMAKE_SYSROOT}/usr/X11R7/include -I${CMAKE_SYSROOT}/usr/pkg/include/c++/v1") |
|
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -I${CMAKE_SYSROOT}/usr/X11R7/include -I${CMAKE_SYSROOT}/usr/pkg/include/c++/v1") |
|
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -I${CMAKE_SYSROOT}/usr/X11R7/include -I${CMAKE_SYSROOT}/usr/pkg/include/c++/v1") |
|
|
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -L${CMAKE_SYSROOT}/usr/X11R7/lib") |
|
|
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -L${CMAKE_SYSROOT}/usr/X11R7/lib") |
|
|
endif() |
|
|
endif() |
|
|
|
|
|
|
|
|
# NetBSD: Fun for the whole family! |
|
|
# NetBSD: Fun for the whole family! |
|
|
if (PLATFORM_NETBSD) |
|
|
|
|
|
|
|
|
if (NETBSD) |
|
|
set(ENV{PKG_CONFIG_PATH} "${PKG_CONFIG_PATH}:${CMAKE_SYSROOT}/usr/pkg/lib/ffmpeg7/pkgconfig") |
|
|
set(ENV{PKG_CONFIG_PATH} "${PKG_CONFIG_PATH}:${CMAKE_SYSROOT}/usr/pkg/lib/ffmpeg7/pkgconfig") |
|
|
endif() |
|
|
endif() |
|
|
|
|
|
|
|
|
cmake_dependent_option(YUZU_STATIC_ROOM "Build a static room executable only (CI only)" OFF "PLATFORM_LINUX" OFF) |
|
|
|
|
|
|
|
|
cmake_dependent_option(YUZU_STATIC_ROOM "Build a static room executable only (CI only)" OFF "LINUX" OFF) |
|
|
if (YUZU_STATIC_ROOM) |
|
|
if (YUZU_STATIC_ROOM) |
|
|
set(YUZU_ROOM ON) |
|
|
set(YUZU_ROOM ON) |
|
|
set(YUZU_ROOM_STANDALONE ON) |
|
|
set(YUZU_ROOM_STANDALONE ON) |
|
|
@ -210,7 +210,7 @@ endif() |
|
|
|
|
|
|
|
|
# ffmpeg |
|
|
# ffmpeg |
|
|
option(YUZU_USE_BUNDLED_FFMPEG "Download bundled FFmpeg" ${EXT_DEFAULT}) |
|
|
option(YUZU_USE_BUNDLED_FFMPEG "Download bundled FFmpeg" ${EXT_DEFAULT}) |
|
|
cmake_dependent_option(YUZU_USE_EXTERNAL_FFMPEG "Build FFmpeg from external source" "${PLATFORM_SUN}" "NOT WIN32 AND NOT ANDROID" OFF) |
|
|
|
|
|
|
|
|
cmake_dependent_option(YUZU_USE_EXTERNAL_FFMPEG "Build FFmpeg from external source" "${SOLARIS}" "NOT WIN32 AND NOT ANDROID" OFF) |
|
|
|
|
|
|
|
|
# sirit |
|
|
# sirit |
|
|
set(BUNDLED_SIRIT_DEFAULT OFF) |
|
|
set(BUNDLED_SIRIT_DEFAULT OFF) |
|
|
@ -221,7 +221,7 @@ endif() |
|
|
option(YUZU_USE_BUNDLED_SIRIT "Download bundled sirit" ${BUNDLED_SIRIT_DEFAULT}) |
|
|
option(YUZU_USE_BUNDLED_SIRIT "Download bundled sirit" ${BUNDLED_SIRIT_DEFAULT}) |
|
|
|
|
|
|
|
|
# FreeBSD 15+ has libusb, versions below should disable it |
|
|
# FreeBSD 15+ has libusb, versions below should disable it |
|
|
cmake_dependent_option(ENABLE_LIBUSB "Enable the use of LibUSB" ON "WIN32 OR PLATFORM_LINUX OR PLATFORM_FREEBSD OR APPLE" OFF) |
|
|
|
|
|
|
|
|
cmake_dependent_option(ENABLE_LIBUSB "Enable the use of LibUSB" ON "WIN32 OR LINUX OR FREEBSD OR APPLE" OFF) |
|
|
|
|
|
|
|
|
cmake_dependent_option(ENABLE_OPENGL "Enable OpenGL" ON "NOT (WIN32 AND ARCHITECTURE_arm64) AND NOT APPLE" OFF) |
|
|
cmake_dependent_option(ENABLE_OPENGL "Enable OpenGL" ON "NOT (WIN32 AND ARCHITECTURE_arm64) AND NOT APPLE" OFF) |
|
|
mark_as_advanced(FORCE ENABLE_OPENGL) |
|
|
mark_as_advanced(FORCE ENABLE_OPENGL) |
|
|
@ -235,7 +235,7 @@ option(YUZU_TESTS "Compile tests" "${BUILD_TESTING}") |
|
|
|
|
|
|
|
|
# Install udev rules on Linux (mainly for gyros) |
|
|
# Install udev rules on Linux (mainly for gyros) |
|
|
# Only acts on joysticks and nothing else. |
|
|
# Only acts on joysticks and nothing else. |
|
|
cmake_dependent_option(YUZU_INSTALL_UDEV_RULES "Install udev rules for gyro access" OFF "PLATFORM_LINUX" OFF) |
|
|
|
|
|
|
|
|
cmake_dependent_option(YUZU_INSTALL_UDEV_RULES "Install udev rules for gyro access" OFF "LINUX" OFF) |
|
|
|
|
|
|
|
|
option(YUZU_DOWNLOAD_ANDROID_VVL "Download validation layer binary for android" ON) |
|
|
option(YUZU_DOWNLOAD_ANDROID_VVL "Download validation layer binary for android" ON) |
|
|
|
|
|
|
|
|
@ -248,7 +248,7 @@ cmake_dependent_option(YUZU_ROOM_STANDALONE "Enable standalone room executable" |
|
|
|
|
|
|
|
|
cmake_dependent_option(YUZU_CMD "Compile the eden-cli executable" ON "NOT ANDROID" OFF) |
|
|
cmake_dependent_option(YUZU_CMD "Compile the eden-cli executable" ON "NOT ANDROID" OFF) |
|
|
|
|
|
|
|
|
cmake_dependent_option(YUZU_CRASH_DUMPS "Compile crash dump (Minidump) support" OFF "WIN32 OR PLATFORM_LINUX" OFF) |
|
|
|
|
|
|
|
|
cmake_dependent_option(YUZU_CRASH_DUMPS "Compile crash dump (Minidump) support" OFF "WIN32 OR LINUX" OFF) |
|
|
|
|
|
|
|
|
option(YUZU_DOWNLOAD_TIME_ZONE_DATA "Always download time zone binaries" ON) |
|
|
option(YUZU_DOWNLOAD_TIME_ZONE_DATA "Always download time zone binaries" ON) |
|
|
set(YUZU_TZDB_PATH "" CACHE STRING "Path to a pre-downloaded timezone database") |
|
|
set(YUZU_TZDB_PATH "" CACHE STRING "Path to a pre-downloaded timezone database") |
|
|
@ -258,7 +258,7 @@ cmake_dependent_option(YUZU_USE_BUNDLED_MOLTENVK "Download bundled MoltenVK lib" |
|
|
option(YUZU_DISABLE_LLVM "Disable LLVM (useful for CI)" OFF) |
|
|
option(YUZU_DISABLE_LLVM "Disable LLVM (useful for CI)" OFF) |
|
|
|
|
|
|
|
|
set(DEFAULT_YUZU_USE_BUNDLED_OPENSSL OFF) |
|
|
set(DEFAULT_YUZU_USE_BUNDLED_OPENSSL OFF) |
|
|
if (EXT_DEFAULT OR PLATFORM_SUN OR PLATFORM_OPENBSD) |
|
|
|
|
|
|
|
|
if (EXT_DEFAULT OR SOLARIS OR OPENBSD) |
|
|
set(DEFAULT_YUZU_USE_BUNDLED_OPENSSL ON) |
|
|
set(DEFAULT_YUZU_USE_BUNDLED_OPENSSL ON) |
|
|
endif() |
|
|
endif() |
|
|
|
|
|
|
|
|
@ -281,7 +281,7 @@ if(EXISTS ${PROJECT_SOURCE_DIR}/hooks/pre-commit AND NOT EXISTS ${PROJECT_SOURCE |
|
|
endif() |
|
|
endif() |
|
|
endif() |
|
|
endif() |
|
|
|
|
|
|
|
|
if (ARCHITECTURE_arm64 AND (ANDROID OR PLATFORM_LINUX)) |
|
|
|
|
|
|
|
|
if (ARCHITECTURE_arm64 AND (ANDROID OR LINUX)) |
|
|
set(HAS_NCE 1) |
|
|
set(HAS_NCE 1) |
|
|
add_compile_definitions(HAS_NCE=1) |
|
|
add_compile_definitions(HAS_NCE=1) |
|
|
endif() |
|
|
endif() |
|
|
@ -290,7 +290,7 @@ if (YUZU_ROOM) |
|
|
add_compile_definitions(YUZU_ROOM) |
|
|
add_compile_definitions(YUZU_ROOM) |
|
|
endif() |
|
|
endif() |
|
|
|
|
|
|
|
|
if (UNIX AND NOT (PLATFORM_LINUX OR WIN32)) |
|
|
|
|
|
|
|
|
if (UNIX AND NOT (LINUX OR WIN32)) |
|
|
if(CXX_APPLE OR CXX_CLANG) |
|
|
if(CXX_APPLE OR CXX_CLANG) |
|
|
# libc++ has stop_token and jthread as experimental |
|
|
# libc++ has stop_token and jthread as experimental |
|
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fexperimental-library") |
|
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fexperimental-library") |
|
|
@ -404,7 +404,7 @@ if (Boost_ADDED) |
|
|
|
|
|
|
|
|
if (NOT MSVC OR CXX_CLANG) |
|
|
if (NOT MSVC OR CXX_CLANG) |
|
|
# boost sucks |
|
|
# boost sucks |
|
|
if (PLATFORM_SUN) |
|
|
|
|
|
|
|
|
if (SOLARIS) |
|
|
add_compile_options($<$<COMPILE_LANGUAGE:C,CXX>:-pthreads>) |
|
|
add_compile_options($<$<COMPILE_LANGUAGE:C,CXX>:-pthreads>) |
|
|
endif() |
|
|
endif() |
|
|
|
|
|
|
|
|
@ -508,9 +508,9 @@ elseif (WIN32) |
|
|
# PSAPI is the Process Status API |
|
|
# PSAPI is the Process Status API |
|
|
set(PLATFORM_LIBRARIES ${PLATFORM_LIBRARIES} psapi imm32 version crypt32 rpcrt4 gdi32 wldap32 mswsock) |
|
|
set(PLATFORM_LIBRARIES ${PLATFORM_LIBRARIES} psapi imm32 version crypt32 rpcrt4 gdi32 wldap32 mswsock) |
|
|
endif() |
|
|
endif() |
|
|
elseif (PLATFORM_MANAGARM) |
|
|
|
|
|
|
|
|
elseif (MANAGARM) |
|
|
set(PLATFORM_LIBRARIES iconv intl) |
|
|
set(PLATFORM_LIBRARIES iconv intl) |
|
|
elseif (PLATFORM_HAIKU) |
|
|
|
|
|
|
|
|
elseif (HAIKUOS) |
|
|
# Haiku is so special :) |
|
|
# Haiku is so special :) |
|
|
set(PLATFORM_LIBRARIES bsd /boot/system/lib/libnetwork.so) |
|
|
set(PLATFORM_LIBRARIES bsd /boot/system/lib/libnetwork.so) |
|
|
elseif (CMAKE_SYSTEM_NAME MATCHES "^(Linux|kFreeBSD|GNU|SunOS)$") |
|
|
elseif (CMAKE_SYSTEM_NAME MATCHES "^(Linux|kFreeBSD|GNU|SunOS)$") |
|
|
@ -604,7 +604,7 @@ if (ENABLE_QT) |
|
|
|
|
|
|
|
|
# Best practice is to ask for all components at once, so they are from the same version |
|
|
# Best practice is to ask for all components at once, so they are from the same version |
|
|
set(YUZU_QT_COMPONENTS Core Widgets Charts Concurrent Gui) |
|
|
set(YUZU_QT_COMPONENTS Core Widgets Charts Concurrent Gui) |
|
|
if (PLATFORM_LINUX OR PLATFORM_FREEBSD) |
|
|
|
|
|
|
|
|
if (LINUX OR FREEBSD) |
|
|
list(APPEND YUZU_QT_COMPONENTS DBus) |
|
|
list(APPEND YUZU_QT_COMPONENTS DBus) |
|
|
# yes Qt, we get it |
|
|
# yes Qt, we get it |
|
|
set(QT_NO_PRIVATE_MODULE_WARNING ON) |
|
|
set(QT_NO_PRIVATE_MODULE_WARNING ON) |
|
|
|