aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-x.ci/windows/install-vulkan-sdk.ps14
-rw-r--r--.ci/windows/package.sh15
-rw-r--r--CMakeLists.txt215
-rw-r--r--CMakeModules/CPMUtil.cmake8
-rw-r--r--src/core/CMakeLists.txt6
-rw-r--r--src/dynarmic/src/dynarmic/frontend/A32/a32_types.h2
-rw-r--r--src/network/CMakeLists.txt2
-rw-r--r--src/web_service/CMakeLists.txt5
-rw-r--r--src/yuzu/CMakeLists.txt4
-rw-r--r--src/yuzu_cmd/CMakeLists.txt2
10 files changed, 216 insertions, 47 deletions
diff --git a/.ci/windows/install-vulkan-sdk.ps1 b/.ci/windows/install-vulkan-sdk.ps1
index ca8c64b5cd..1d4e1b20bf 100755
--- a/.ci/windows/install-vulkan-sdk.ps1
+++ b/.ci/windows/install-vulkan-sdk.ps1
@@ -4,7 +4,7 @@
$ErrorActionPreference = "Stop"
$VulkanSDKVer = "1.4.321.1"
-$ExeFile = "VulkanSDK-$VulkanSDKVer-Installer.exe"
+$ExeFile = "vulkansdk-windows-X64-$VulkanSDKVer.exe"
$Uri = "https://sdk.lunarg.com/sdk/download/$VulkanSDKVer/windows/$ExeFile"
$Destination = "./$ExeFile"
@@ -30,4 +30,4 @@ echo "Finished installing Vulkan SDK $VulkanSDKVer"
if ("$env:GITHUB_ACTIONS" -eq "true") {
echo "VULKAN_SDK=$VULKAN_SDK" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
echo "$VULKAN_SDK/Bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
-}
+} \ No newline at end of file
diff --git a/.ci/windows/package.sh b/.ci/windows/package.sh
index 090697882f..2d126dc5be 100644
--- a/.ci/windows/package.sh
+++ b/.ci/windows/package.sh
@@ -3,11 +3,16 @@ GITREV=$(git show -s --format='%h')
ZIP_NAME="Eden-Windows-${ARCH}-${GITDATE}-${GITREV}.zip"
-mkdir -p artifacts
-mkdir -p pack
+ARTIFACTS_DIR="artifacts"
+PKG_DIR="build/pkg"
-cp -r build/pkg/* pack
+mkdir -p "$ARTIFACTS_DIR"
-cp LICENSE* README* pack/
+TMP_DIR=$(mktemp -d)
-7z a -tzip artifacts/$ZIP_NAME pack/* \ No newline at end of file
+cp -r "$PKG_DIR"/* "$TMP_DIR"/
+cp LICENSE* README* "$TMP_DIR"/
+
+7z a -tzip "$ARTIFACTS_DIR/$ZIP_NAME" "$TMP_DIR"/*
+
+rm -rf "$TMP_DIR" \ No newline at end of file
diff --git a/CMakeLists.txt b/CMakeLists.txt
index abaa90575c..0ca88e3c65 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -5,9 +5,19 @@ cmake_minimum_required(VERSION 3.22)
project(yuzu)
+if (${CMAKE_SYSTEM_NAME} STREQUAL "SunOS")
+ set(PLATFORM_SUN ON)
+elseif (${CMAKE_SYSTEM_NAME} STREQUAL "FreeBSD")
+ set(PLATFORM_FREEBSD ON)
+elseif (${CMAKE_SYSTEM_NAME} STREQUAL "OpenBSD")
+ set(PLATFORM_OPENBSD ON)
+elseif (${CMAKE_SYSTEM_NAME} STREQUAL "Linux")
+ set(PLATFORM_LINUX ON)
+endif()
+
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/CMakeModules")
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/externals/cmake-modules")
-if (${CMAKE_SYSTEM_NAME} STREQUAL "SunOS")
+if (PLATFORM_SUN)
# Terrific Solaris pkg shenanigans
list(APPEND CMAKE_PREFIX_PATH "/usr/lib/qt/6.6/lib/amd64/cmake")
list(APPEND CMAKE_MODULE_PATH "/usr/lib/qt/6.6/lib/amd64/cmake")
@@ -24,7 +34,7 @@ if (MSVC)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /W3 /WX-")
endif()
-if (${CMAKE_SYSTEM_NAME} STREQUAL "FreeBSD")
+if (PLATFORM_FREEBSD)
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -L/usr/local/lib")
endif()
@@ -40,7 +50,7 @@ endif()
option(ENABLE_SDL2 "Enable the SDL2 frontend" ON)
CMAKE_DEPENDENT_OPTION(YUZU_USE_BUNDLED_SDL2 "Download bundled SDL2 binaries" ON "ENABLE_SDL2;MSVC" OFF)
-if (${CMAKE_SYSTEM_NAME} STREQUAL "FreeBSD")
+if (PLATFORM_FREEBSD)
CMAKE_DEPENDENT_OPTION(YUZU_USE_EXTERNAL_SDL2 "Compile external SDL2" OFF "ENABLE_SDL2;NOT MSVC" OFF)
else()
CMAKE_DEPENDENT_OPTION(YUZU_USE_EXTERNAL_SDL2 "Compile external SDL2" ON "ENABLE_SDL2;NOT MSVC" OFF)
@@ -62,25 +72,25 @@ option(YUZU_USE_CPM "Use CPM to fetch Eden dependencies if needed" ON)
option(ENABLE_WEB_SERVICE "Enable web services (telemetry, etc.)" ON)
option(ENABLE_WIFI_SCAN "Enable WiFi scanning" OFF)
-if (${CMAKE_SYSTEM_NAME} STREQUAL "FreeBSD")
+if (PLATFORM_FREEBSD)
option(YUZU_USE_BUNDLED_FFMPEG "Download/Build bundled FFmpeg" OFF)
else()
option(YUZU_USE_BUNDLED_FFMPEG "Download/Build bundled FFmpeg" ON)
endif()
-if (${CMAKE_SYSTEM_NAME} STREQUAL "FreeBSD")
+if (PLATFORM_FREEBSD)
option(YUZU_USE_EXTERNAL_VULKAN_HEADERS "Use Vulkan-Headers from externals" OFF)
else()
option(YUZU_USE_EXTERNAL_VULKAN_HEADERS "Use Vulkan-Headers from externals" ON)
endif()
-if (${CMAKE_SYSTEM_NAME} STREQUAL "FreeBSD")
+if (PLATFORM_FREEBSD)
option(YUZU_USE_EXTERNAL_VULKAN_UTILITY_LIBRARIES "Use Vulkan-Utility-Libraries from externals" OFF)
else()
option(YUZU_USE_EXTERNAL_VULKAN_UTILITY_LIBRARIES "Use Vulkan-Utility-Libraries from externals" ON)
endif()
-if (${CMAKE_SYSTEM_NAME} STREQUAL "FreeBSD")
+if (PLATFORM_FREEBSD)
option(YUZU_USE_EXTERNAL_VULKAN_SPIRV_TOOLS "Use SPIRV-Tools from externals" OFF)
else()
option(YUZU_USE_EXTERNAL_VULKAN_SPIRV_TOOLS "Use SPIRV-Tools from externals" ON)
@@ -100,7 +110,7 @@ option(ENABLE_MICROPROFILE "Enables microprofile capabilities" OFF)
option(YUZU_TESTS "Compile tests" "${BUILD_TESTING}")
-if (${CMAKE_SYSTEM_NAME} STREQUAL "FreeBSD")
+if (PLATFORM_FREEBSD)
option(YUZU_USE_PRECOMPILED_HEADERS "Use precompiled headers" OFF)
else()
option(YUZU_USE_PRECOMPILED_HEADERS "Use precompiled headers" ON)
@@ -110,6 +120,8 @@ 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)
+
CMAKE_DEPENDENT_OPTION(YUZU_ROOM "Enable dedicated room functionality" ON "NOT ANDROID" OFF)
CMAKE_DEPENDENT_OPTION(YUZU_ROOM_STANDALONE "Enable standalone room executable" ON "YUZU_ROOM" OFF)
@@ -118,7 +130,7 @@ CMAKE_DEPENDENT_OPTION(YUZU_CMD "Compile the eden-cli executable" ON "NOT ANDROI
CMAKE_DEPENDENT_OPTION(YUZU_CRASH_DUMPS "Compile crash dump (Minidump) support" OFF "WIN32 OR LINUX" OFF)
-if (${CMAKE_SYSTEM_NAME} STREQUAL "FreeBSD")
+if (PLATFORM_FREEBSD)
option(YUZU_CHECK_SUBMODULES "Check if submodules are present" OFF)
else()
option(YUZU_CHECK_SUBMODULES "Check if submodules are present" ON)
@@ -135,7 +147,7 @@ CMAKE_DEPENDENT_OPTION(YUZU_USE_FASTER_LD "Check if a faster linker is available
CMAKE_DEPENDENT_OPTION(USE_SYSTEM_MOLTENVK "Use the system MoltenVK lib (instead of the bundled one)" OFF "APPLE" OFF)
set(DEFAULT_ENABLE_OPENSSL ON)
-if (ANDROID OR WIN32 OR APPLE OR ${CMAKE_SYSTEM_NAME} STREQUAL "SunOS")
+if (ANDROID OR WIN32 OR APPLE OR PLATFORM_SUN)
# - Windows defaults to the Schannel backend.
# - macOS defaults to the SecureTransport backend.
# - Android currently has no SSL backend as the NDK doesn't include any SSL
@@ -312,7 +324,7 @@ if (UNIX)
add_definitions(-DYUZU_UNIX=1)
endif()
-if (ARCHITECTURE_arm64 AND (ANDROID OR APPLE OR ${CMAKE_SYSTEM_NAME} STREQUAL "Linux"))
+if (ARCHITECTURE_arm64 AND (ANDROID OR APPLE OR PLATFORM_LINUX))
set(HAS_NCE 1)
add_definitions(-DHAS_NCE=1)
endif()
@@ -322,7 +334,7 @@ if (YUZU_ROOM)
endif()
# Build/optimization presets
-if (${CMAKE_SYSTEM_NAME} STREQUAL "Linux")
+if (PLATFORM_LINUX)
if (ARCHITECTURE_x86_64)
set(YUZU_BUILD_PRESET "custom" CACHE STRING "Build preset to use. One of: custom, generic, v3, zen2, zen4, native")
if (${YUZU_BUILD_PRESET} STREQUAL "generic")
@@ -380,38 +392,182 @@ if (YUZU_USE_CPM)
# openssl funniness
if (ENABLE_OPENSSL)
- if (MSVC)
- set(BUILD_SHARED_LIBS OFF)
+ 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(
- NAME OpenSSL
+ NAME OpenSSL-windows-amd64
REPO crueter/OpenSSL-CI
- TAG v3.5.2
- VERSION 3.5.2
- ARTIFACT openssl-windows-3.5.2.tar.zst
+ TAG v${SSL_VERSION}
+ VERSION ${SSL_VERSION}
+ ARTIFACT ${ARTIFACT}
- KEY windows
+ KEY ${KEY}
HASH_SUFFIX sha512sum
BUNDLED_PACKAGE ON
+ DOWNLOAD_ONLY ${DOWNLOAD_ONLY}
)
- include(${OpenSSL_SOURCE_DIR}/openssl.cmake)
+ if (NOT DOWNLOAD_ONLY)
+ set(OPENSSL_DIR ${OpenSSL-windows-amd64_SOURCE_DIR})
+ endif()
+ message("OPENSSL ${DOWNLOAD_ONLY} ${OPENSSL_DIR}")
+
endif()
- if (ANDROID)
- set(BUILD_SHARED_LIBS OFF)
+ 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(
- NAME OpenSSL
+ NAME OpenSSL-windows-arm64
REPO crueter/OpenSSL-CI
- TAG v3.5.2
- VERSION 3.5.2
- ARTIFACT openssl-android-3.5.2.tar.zst
+ TAG v${SSL_VERSION}
+ VERSION ${SSL_VERSION}
+ ARTIFACT ${ARTIFACT}
+
+ KEY ${KEY}
+ HASH_SUFFIX sha512sum
+ BUNDLED_PACKAGE ON
+ DOWNLOAD_ONLY ${DOWNLOAD_ONLY}
+ )
+
+ 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(
+ NAME OpenSSL-android
+ REPO crueter/OpenSSL-CI
+ TAG v${SSL_VERSION}
+ VERSION ${SSL_VERSION}
+ ARTIFACT openssl-android-${SSL_VERSION}.tar.zst
KEY android
HASH_SUFFIX sha512sum
BUNDLED_PACKAGE ON
+ DOWNLOAD_ONLY ${DOWNLOAD_ONLY}
+ )
+
+ 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(
+ NAME OpenSSL-solaris
+ REPO crueter/OpenSSL-CI
+ TAG v${SSL_VERSION}
+ VERSION ${SSL_VERSION}
+ ARTIFACT openssl-solaris-${SSL_VERSION}.tar.zst
+
+ KEY solaris
+ HASH_SUFFIX sha512sum
+ BUNDLED_PACKAGE ON
+ DOWNLOAD_ONLY ${DOWNLOAD_ONLY}
+ )
+
+ 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(
+ NAME OpenSSL-freebsd
+ REPO crueter/OpenSSL-CI
+ TAG v${SSL_VERSION}
+ VERSION ${SSL_VERSION}
+ ARTIFACT openssl-freebsd-${SSL_VERSION}.tar.zst
+
+ KEY freebsd
+ HASH_SUFFIX sha512sum
+ BUNDLED_PACKAGE ON
+ DOWNLOAD_ONLY ${DOWNLOAD_ONLY}
)
- include(${OpenSSL_SOURCE_DIR}/openssl.cmake)
+ 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(
+ NAME OpenSSL-linux
+ REPO crueter/OpenSSL-CI
+ TAG v${SSL_VERSION}
+ VERSION ${SSL_VERSION}
+ ARTIFACT openssl-linux-${SSL_VERSION}.tar.zst
+
+ KEY linux
+ HASH_SUFFIX sha512sum
+ BUNDLED_PACKAGE ON
+ DOWNLOAD_ONLY ${DOWNLOAD_ONLY}
+ )
+
+ if (NOT DOWNLOAD_ONLY)
+ set(OPENSSL_DIR ${OpenSSL-linux_SOURCE_DIR})
+ endif()
+ endif()
+
+ if (DEFINED OPENSSL_DIR)
+ include(${OPENSSL_DIR}/openssl.cmake)
+
+ # Overrides find package
+ CPMAddPackage(
+ NAME OpenSSL
+ SOURCE_DIR ${OPENSSL_DIR}
+ )
+ else()
+ find_package(OpenSSL 1.1.1 REQUIRED)
endif()
endif()
@@ -628,7 +784,7 @@ if(NOT TARGET Boost::headers)
endif()
if (ENABLE_LIBUSB)
- if (${CMAKE_SYSTEM_NAME} STREQUAL "FreeBSD")
+ if (PLATFORM_FREEBSD)
find_package(libusb MODULE)
else()
find_package(libusb 1.0.24 MODULE)
@@ -648,6 +804,7 @@ if (USE_DISCORD_PRESENCE)
${CMAKE_SOURCE_DIR}/.patch/discord-rpc/0001-cmake-version.patch
${CMAKE_SOURCE_DIR}/.patch/discord-rpc/0002-no-clang-format.patch
${CMAKE_SOURCE_DIR}/.patch/discord-rpc/0003-fix-cpp17.patch
+ EXCLUDE_FROM_ALL ON
)
target_include_directories(discord-rpc INTERFACE ${discord-rpc_SOURCE_DIR}/include)
@@ -793,7 +950,7 @@ endif()
function(set_yuzu_qt_components)
# Best practice is to ask for all components at once, so they are from the same version
set(YUZU_QT_COMPONENTS2 Core Widgets Concurrent)
- if (${CMAKE_SYSTEM_NAME} STREQUAL "Linux")
+ if (PLATFORM_LINUX)
list(APPEND YUZU_QT_COMPONENTS2 DBus)
endif()
if (YUZU_USE_QT_MULTIMEDIA)
diff --git a/CMakeModules/CPMUtil.cmake b/CMakeModules/CPMUtil.cmake
index bd0155f8fb..07393d6ccd 100644
--- a/CMakeModules/CPMUtil.cmake
+++ b/CMakeModules/CPMUtil.cmake
@@ -6,8 +6,14 @@
# and some cmake magic to allow for runtime viewing of dependency versions
include(CMakeDependentOption)
+if (MSVC OR ANDROID)
+ set(SYSTEM_DEFAULT OFF)
+else()
+ set(SYSTEM_DEFAULT ON)
+endif()
+
CMAKE_DEPENDENT_OPTION(CPMUTIL_DEFAULT_SYSTEM
- "Allow usage of system packages for CPM dependencies" ON
+ "Allow usage of system packages for CPM dependencies" ${SYSTEM_DEFAULT}
"NOT ANDROID" OFF)
cmake_minimum_required(VERSION 3.22)
diff --git a/src/core/CMakeLists.txt b/src/core/CMakeLists.txt
index 03e86b0d99..5f9bfa2214 100644
--- a/src/core/CMakeLists.txt
+++ b/src/core/CMakeLists.txt
@@ -1246,10 +1246,12 @@ if (ARCHITECTURE_x86_64 OR ARCHITECTURE_arm64)
endif()
if(ENABLE_OPENSSL)
- find_package(OpenSSL REQUIRED)
target_sources(core PRIVATE
hle/service/ssl/ssl_backend_openssl.cpp)
- if (ANDROID OR MSVC)
+
+ find_package(OpenSSL REQUIRED)
+
+ if (OpenSSL_ADDED)
link_openssl(core)
else()
target_link_libraries(core PRIVATE OpenSSL::SSL)
diff --git a/src/dynarmic/src/dynarmic/frontend/A32/a32_types.h b/src/dynarmic/src/dynarmic/frontend/A32/a32_types.h
index 5afd82f77f..fdadef8257 100644
--- a/src/dynarmic/src/dynarmic/frontend/A32/a32_types.h
+++ b/src/dynarmic/src/dynarmic/frontend/A32/a32_types.h
@@ -105,7 +105,7 @@ inline size_t RegNumber(ExtReg reg) {
return static_cast<size_t>(reg) - static_cast<size_t>(ExtReg::Q0);
}
- ASSERT_FALSE("Invalid extended register");
+ ASSERT_MSG(false, "Invalid extended register");
}
inline Reg operator+(Reg reg, size_t number) {
diff --git a/src/network/CMakeLists.txt b/src/network/CMakeLists.txt
index d85e8bf1bc..d0787b0936 100644
--- a/src/network/CMakeLists.txt
+++ b/src/network/CMakeLists.txt
@@ -26,7 +26,7 @@ if (ENABLE_WEB_SERVICE)
endif()
# Solaris uses /lib/amd64/libsocket.so and /lib/amd64/libnsl.so
-if (${CMAKE_SYSTEM_NAME} STREQUAL "SunOS")
+if (PLATFORM_SUN)
target_link_libraries(network PRIVATE socket nsl)
endif()
diff --git a/src/web_service/CMakeLists.txt b/src/web_service/CMakeLists.txt
index 510d8bf668..c1d5a84225 100644
--- a/src/web_service/CMakeLists.txt
+++ b/src/web_service/CMakeLists.txt
@@ -14,15 +14,14 @@ add_library(web_service STATIC
web_result.h
)
-find_package(OpenSSL REQUIRED)
-
create_target_directory_groups(web_service)
target_include_directories(web_service PUBLIC ${cpp-jwt_SOURCE_DIR}/include)
target_link_libraries(web_service PRIVATE common network nlohmann_json::nlohmann_json httplib::httplib cpp-jwt::cpp-jwt)
-if (ANDROID OR MSVC)
+if (OpenSSL_ADDED)
link_openssl(web_service)
else()
+ find_package(OpenSSL REQUIRED)
target_link_libraries(web_service PRIVATE OpenSSL::SSL)
endif()
diff --git a/src/yuzu/CMakeLists.txt b/src/yuzu/CMakeLists.txt
index 2e31f47cd5..4dcce95bb6 100644
--- a/src/yuzu/CMakeLists.txt
+++ b/src/yuzu/CMakeLists.txt
@@ -8,7 +8,7 @@ set(CMAKE_INCLUDE_CURRENT_DIR ON)
# Set the RPATH for Qt Libraries
# This must be done before the `yuzu` target is created
-if (YUZU_USE_BUNDLED_QT AND (${CMAKE_SYSTEM_NAME} STREQUAL "Linux"))
+if (YUZU_USE_BUNDLED_QT AND (PLATFORM_LINUX))
set(CMAKE_BUILD_RPATH "${CMAKE_BINARY_DIR}/bin/lib/")
endif()
@@ -498,7 +498,7 @@ if (YUZU_ROOM)
endif()
# Explicit linking required
-if (${CMAKE_SYSTEM_NAME} STREQUAL "SunOS")
+if (PLATFORM_SUN)
target_link_libraries(yuzu PRIVATE X11)
endif()
diff --git a/src/yuzu_cmd/CMakeLists.txt b/src/yuzu_cmd/CMakeLists.txt
index 9d1e08c04c..11f8317f9c 100644
--- a/src/yuzu_cmd/CMakeLists.txt
+++ b/src/yuzu_cmd/CMakeLists.txt
@@ -41,7 +41,7 @@ target_include_directories(yuzu-cmd PRIVATE ${RESOURCES_DIR})
target_link_libraries(yuzu-cmd PRIVATE SDL2::SDL2 Vulkan::Headers)
# In Solaris needs explicit linking for ffmpeg which links to /lib/amd64/libX11.so
-if (${CMAKE_SYSTEM_NAME} STREQUAL "SunOS")
+if (PLATFORM_SUN)
target_link_libraries(yuzu-cmd PRIVATE X11)
endif()