Compare commits

...

11 Commits

Author SHA1 Message Date
lizzie 58123ef9c9 let openbsd be fucked then i guess (FOR NOW) 2026-08-09 16:12:22 +00:00
lizzie 63f2278c96 fx 2026-08-09 15:15:44 +00:00
lizzie d7300e2f6f qt diffs 2026-08-09 15:15:44 +00:00
lizzie 671fe8ca3f oops stray file 2026-08-09 15:15:44 +00:00
lizzie 4792e6705e oh, we were the ones doing it wrong, ok 2026-08-09 15:15:44 +00:00
lizzie 7fd12c3ae6 correct qt6 instructions 2026-08-09 15:15:44 +00:00
lizzie 68499cad1a ok x11 fine 2026-08-09 15:15:44 +00:00
lizzie cb92bc64b0 nvm not x11::x11 2026-08-09 15:15:44 +00:00
lizzie 89d03fc719 better x11 2026-08-09 15:15:44 +00:00
lizzie f34a73e5fe ok gcc14 2026-08-09 15:15:44 +00:00
lizzie eb511eacb0 [dynarmic] fix NetBSD builds on gcc14
Signed-off-by: lizzie <lizzie@eden-emu.dev>
2026-08-09 15:15:44 +00:00
6 changed files with 29 additions and 18 deletions
+5 -13
View File
@@ -23,20 +23,12 @@ include(CMakeDependentOption)
include(CTest)
include(CPMUtil)
if (NOT DEFINED ARCHITECTURE)
message(FATAL_ERROR "Architecture didn't make it out of scope, did you delete DetectArchitecture.cmake?")
if (CXX_GCC AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS "14.0")
message(FATAL_ERROR "You must use gcc14 (or newer) feel free to fix clang yourself otherwise.")
endif()
# Needed for FFmpeg w/ VAAPI and DRM
if (PLATFORM_OPENBSD)
# 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_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")
elseif (PLATFORM_NETBSD)
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_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -L${CMAKE_SYSROOT}/usr/X11R7/lib")
if (NOT DEFINED ARCHITECTURE)
message(FATAL_ERROR "Architecture didn't make it out of scope, did you delete DetectArchitecture.cmake?")
endif()
# NetBSD: Fun for the whole family!
@@ -618,7 +610,7 @@ if (ENABLE_QT)
# 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)
if (PLATFORM_LINUX OR PLATFORM_FREEBSD)
if (NOT WIN32 AND NOT APPLE)
list(APPEND YUZU_QT_COMPONENTS DBus)
# yes Qt, we get it
set(QT_NO_PRIVATE_MODULE_WARNING ON)
+3 -1
View File
@@ -71,7 +71,7 @@ export LIBGL_ALWAYS_SOFTWARE=1
Install `developer/gcc14` on OmniOS using pkgsrc.
Since so many dependencies are missing on `OmniOS`, you may wish to use `-DCPMUTIL_FORCE_BUNDLED=ON`
Since so many dependencies are missing on `OmniOS`, you may wish to use `-DCPMUTIL_FORCE_BUNDLED=ON` and `-DYUZU_USE_BUNDLED_OPENSSL=OFF`.
For OmniOS you are required to build glslang yourself:
```sh
@@ -92,6 +92,8 @@ You may also need to install `gmake` in order to properly build FFmpeg, this is
If it wasn't obvious already, you require a X11 server to properly run the emulator within OmniOS, [this guide](https://web.archive.org/web/20260424200928/https://geekblood.wordpress.com/2017/10/26/installing-x11-and-a-desktop-environment-on-omnios/) is a great starting point for that, the links to pkgsrc are outdated so follow [this exemplar](https://pkgsrc.smartos.org/install-on-illumos/) as well:
For Solaris based OSes, `${CMAKE_SYSTEM_NAME}` isn't properly set on CMake (it's set to i686 on AMD64), you may find issues when building OpenSSL from `openssl-cmake`.
## HaikuOS
It's recommended to do a `pkgman full-sync` before installing. See [HaikuOS: Installing applications](https://www.haiku-os.org/guides/daily-tasks/install-applications/). Sometimes the process may be interrupted by an error like "Interrupted syscall". Simply firing the command again fixes the issue. By default `g++` is included on the default installation.
+1 -1
View File
@@ -273,7 +273,7 @@ If using FreeBSD 12 or prior, use `devel/pkg-config` instead.
For NetBSD +10.1:
```sh
pkgin install git cmake boost fmtlib SDL3 catch2 libjwt spirv-headers spirv-tools ffmpeg7 libva nlohmann-json jq libopus qt6 cpp-httplib lz4 vulkan-headers nasm autoconf enet pkg-config libusb1 libcxx frozen
pkgin install git cmake boost fmtlib SDL3 catch2 libjwt spirv-headers spirv-tools ffmpeg7 libva nlohmann-json jq libopus qt6-qtbase qt6-qtcharts qt6-qtmultimedia qt6-qttools cpp-httplib lz4 vulkan-headers nasm autoconf enet pkg-config libusb1 libcxx frozen
```
[Caveats](./Caveats.md#netbsd).
+1 -3
View File
@@ -67,9 +67,7 @@
#else
# define CTX_SP (_UC_MACHINE_SP(ucontext))
#endif
#endif
#if defined(ARCHITECTURE_arm64)
#elif defined(ARCHITECTURE_arm64)
# if defined(__APPLE__)
# define CTX_PC (mctx->__ss.__pc)
# define CTX_SP (mctx->__ss.__sp)
+10
View File
@@ -62,6 +62,16 @@ if (USE_DISCORD_PRESENCE)
target_compile_definitions(qt_common PUBLIC USE_DISCORD_PRESENCE)
endif()
# Qt itself may use Vulkan stuffs so we'd need to account for that as well
# must match src/video_core/vulkan_common/vulkan.h logic
if (WIN32 OR APPLE OR ANDROID OR PLATFORM_HAIKU OR PLATFORM_PS4)
# ...
else()
find_package(X11 REQUIRED)
target_include_directories(video_core PUBLIC ${X11_INCLUDE_DIR})
target_link_libraries(video_core PUBLIC ${X11_LIBRARIES})
endif()
# TODO(crueter)
target_link_libraries(qt_common PRIVATE Qt6::Widgets)
+9
View File
@@ -326,6 +326,15 @@ if (ENABLE_OPENGL)
)
endif()
# Must match src/video_core/vulkan_common/vulkan.h X11 logic
if (WIN32 OR APPLE OR ANDROID OR PLATFORM_HAIKU OR PLATFORM_PS4)
# ...
else()
find_package(X11 REQUIRED)
target_include_directories(video_core PUBLIC ${X11_INCLUDE_DIR})
target_link_libraries(video_core PUBLIC ${X11_LIBRARIES})
endif()
target_link_libraries(video_core PUBLIC common core)
target_link_libraries(video_core PUBLIC shader_recompiler stb bc_decoder gpu_logging)
if (ENABLE_OPENGL)