From d1441b855d4a8b2c4248b827ea25712e6a625661 Mon Sep 17 00:00:00 2001 From: crueter Date: Mon, 10 Nov 2025 22:01:57 -0500 Subject: [PATCH] fix gcc Signed-off-by: crueter --- CMakeLists.txt | 16 +++++++++++----- CMakeModules/FindOpus.cmake | 7 +++++++ CMakeModules/FindSPIRV-Tools.cmake | 7 +++++++ CMakeModules/Findenet.cmake | 7 +++++++ CMakeModules/Findlibusb.cmake | 7 +++++++ CMakeModules/Findlz4.cmake | 8 ++++++++ CMakeModules/FixMsysPaths.cmake | 14 ++++++++++++++ src/tests/common/bit_field.cpp | 3 +++ 8 files changed, 64 insertions(+), 5 deletions(-) create mode 100644 CMakeModules/FixMsysPaths.cmake diff --git a/CMakeLists.txt b/CMakeLists.txt index 5053c7c952..d060367d78 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -92,6 +92,7 @@ endif() # MSYS2 utilities if (PLATFORM_MSYS) + include(FixMsysPaths) # really, really dumb heuristic to detect what environment we are in macro(system var) if (CMAKE_COMMAND MATCHES ${var}) @@ -110,7 +111,8 @@ if (PLATFORM_MSYS) # we (generally) want to prioritize environment-specific binaries if possible # some, like autoconf, are not present on environments besides msys2 though - set(CMAKE_PROGRAM_PATH C:/msys64/${MSYSTEM}/usr/bin C:/msys64/usr/bin) + set(CMAKE_PROGRAM_PATH C:/msys64/${MSYSTEM}/bin C:/msys64/usr/bin) + set(ENV{PKG_CONFIG_PATH} C:/msys64/${MSYSTEM}/lib/pkgconfig) endif() # static stuff @@ -139,7 +141,6 @@ if (YUZU_STATIC_BUILD) endmacro() if (MINGW) - set(SKIP_LIBRARY_SUFFIX "dll\\.a$") # simple hook to reject dynamic libs function(find_library var) # also skip previously-found libraries cuz... yaknow @@ -150,7 +151,7 @@ if (YUZU_STATIC_BUILD) _find_library(${var} ${ARGN}) if (${var}) get_filename_component(lib_name "${${var}}" NAME) - if (lib_name MATCHES "${SKIP_LIBRARY_SUFFIX}") + if (lib_name MATCHES "dll\\.a$") unset(${var} CACHE) set(${var} "${var}-NOTFOUND" CACHE INTERNAL "" FORCE) endif() @@ -166,11 +167,16 @@ if (YUZU_STATIC_BUILD) # libharfbuzz.a extra_libs(graphite2) - # libbrotlienc.a - extra_libs(brotlienc brotlidec brotlicommon brotlienc brotlidec) + # openssl + extra_libs(ws2_32) # msys2 quazip does not build a static lib set(QuaZip-Qt6_FORCE_BUNDLED ON) + + set(YUZU_USE_BUNDLED_FFMPEG ON) + set(YUZU_USE_BUNDLED_SDL2 ON) + + set(HTTPLIB_USE_BROTLI_IF_AVAILABLE OFF) elseif(APPLE) # these libs do not properly provide static libs/let you do it with cmake set(YUZU_USE_CPM ON) diff --git a/CMakeModules/FindOpus.cmake b/CMakeModules/FindOpus.cmake index 25a44fd870..5557cd1baf 100644 --- a/CMakeModules/FindOpus.cmake +++ b/CMakeModules/FindOpus.cmake @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project +# SPDX-License-Identifier: GPL-3.0-or-later + # SPDX-FileCopyrightText: 2022 yuzu Emulator Project # SPDX-License-Identifier: GPL-2.0-or-later @@ -10,6 +13,10 @@ find_package_handle_standard_args(Opus VERSION_VAR OPUS_VERSION ) +if (PLATFORM_MSYS) + FixMsysPath(PkgConfig::OPUS) +endif() + if (Opus_FOUND AND NOT TARGET Opus::opus) add_library(Opus::opus ALIAS PkgConfig::OPUS) endif() diff --git a/CMakeModules/FindSPIRV-Tools.cmake b/CMakeModules/FindSPIRV-Tools.cmake index aef74df5d9..e0f9a88d54 100644 --- a/CMakeModules/FindSPIRV-Tools.cmake +++ b/CMakeModules/FindSPIRV-Tools.cmake @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project +# SPDX-License-Identifier: GPL-3.0-or-later + # SPDX-FileCopyrightText: 2022 yuzu Emulator Project # SPDX-License-Identifier: GPL-2.0-or-later @@ -10,6 +13,10 @@ find_package_handle_standard_args(SPIRV-Tools VERSION_VAR SPIRV-Tools_VERSION ) +if (PLATFORM_MSYS) + FixMsysPath(PkgConfig::SPIRV-Tools) +endif() + if (SPIRV-Tools_FOUND AND NOT TARGET SPIRV-Tools::SPIRV-Tools) if (TARGET SPIRV-Tools) add_library(SPIRV-Tools::SPIRV-Tools ALIAS SPIRV-Tools) diff --git a/CMakeModules/Findenet.cmake b/CMakeModules/Findenet.cmake index 859a6f3866..d80e737ebb 100644 --- a/CMakeModules/Findenet.cmake +++ b/CMakeModules/Findenet.cmake @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project +# SPDX-License-Identifier: GPL-3.0-or-later + # SPDX-FileCopyrightText: 2022 Alexandre Bouvier # # SPDX-License-Identifier: GPL-3.0-or-later @@ -11,6 +14,10 @@ find_package_handle_standard_args(enet VERSION_VAR ENET_VERSION ) +if (PLATFORM_MSYS) + FixMsysPath(PkgConfig::ENET) +endif() + if (enet_FOUND AND NOT TARGET enet::enet) add_library(enet::enet ALIAS PkgConfig::ENET) endif() diff --git a/CMakeModules/Findlibusb.cmake b/CMakeModules/Findlibusb.cmake index 0eadce9578..87b174c5b4 100644 --- a/CMakeModules/Findlibusb.cmake +++ b/CMakeModules/Findlibusb.cmake @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project +# SPDX-License-Identifier: GPL-3.0-or-later + # SPDX-FileCopyrightText: 2022 Alexandre Bouvier # # SPDX-License-Identifier: GPL-3.0-or-later @@ -11,6 +14,10 @@ find_package_handle_standard_args(libusb VERSION_VAR LIBUSB_VERSION ) +if (PLATFORM_MSYS) + FixMsysPath(PkgConfig::LIBUSB) +endif() + if (libusb_FOUND AND NOT TARGET libusb::usb) add_library(libusb::usb ALIAS PkgConfig::LIBUSB) endif() diff --git a/CMakeModules/Findlz4.cmake b/CMakeModules/Findlz4.cmake index 7a9a02d4e8..af230166eb 100644 --- a/CMakeModules/Findlz4.cmake +++ b/CMakeModules/Findlz4.cmake @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project +# SPDX-License-Identifier: GPL-3.0-or-later + # SPDX-FileCopyrightText: 2022 yuzu Emulator Project # SPDX-License-Identifier: GPL-2.0-or-later @@ -9,6 +12,11 @@ if (lz4_CONSIDERED_CONFIGS) else() find_package(PkgConfig QUIET) pkg_search_module(LZ4 QUIET IMPORTED_TARGET liblz4) + + if (PLATFORM_MSYS) + FixMsysPath(PkgConfig::LZ4) + endif() + find_package_handle_standard_args(lz4 REQUIRED_VARS LZ4_LINK_LIBRARIES VERSION_VAR LZ4_VERSION diff --git a/CMakeModules/FixMsysPaths.cmake b/CMakeModules/FixMsysPaths.cmake new file mode 100644 index 0000000000..f679f7ae92 --- /dev/null +++ b/CMakeModules/FixMsysPaths.cmake @@ -0,0 +1,14 @@ +# SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project +# SPDX-License-Identifier: GPL-3.0-or-later + +function(FixMsysPath target) + get_target_property(include_dir ${target} INTERFACE_INCLUDE_DIRECTORIES) + + if (include_dir MATCHES "^C:") + return() + endif() + + set(include_dir "C:/msys64${include_dir}") + set_target_properties(${target} PROPERTIES + INTERFACE_INCLUDE_DIRECTORIES ${include_dir}) +endfunction() diff --git a/src/tests/common/bit_field.cpp b/src/tests/common/bit_field.cpp index eee14ffbbf..2d23ade06e 100644 --- a/src/tests/common/bit_field.cpp +++ b/src/tests/common/bit_field.cpp @@ -1,3 +1,6 @@ +// SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project +// SPDX-License-Identifier: GPL-3.0-or-later + // SPDX-FileCopyrightText: 2019 Citra Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later