aboutsummaryrefslogtreecommitdiff
path: root/CMakeModules
diff options
context:
space:
mode:
Diffstat (limited to 'CMakeModules')
-rw-r--r--CMakeModules/CPMUtil.cmake5
-rw-r--r--CMakeModules/FindOpus.cmake7
-rw-r--r--CMakeModules/FindSPIRV-Tools.cmake7
-rw-r--r--CMakeModules/Findenet.cmake7
-rw-r--r--CMakeModules/Findlibusb.cmake7
-rw-r--r--CMakeModules/Findlz4.cmake8
-rw-r--r--CMakeModules/Findzstd.cmake32
-rw-r--r--CMakeModules/FixMsysPaths.cmake21
8 files changed, 82 insertions, 12 deletions
diff --git a/CMakeModules/CPMUtil.cmake b/CMakeModules/CPMUtil.cmake
index 1c4a4874c6..78bab05030 100644
--- a/CMakeModules/CPMUtil.cmake
+++ b/CMakeModules/CPMUtil.cmake
@@ -542,10 +542,11 @@ function(AddCIPackage)
PACKAGE
EXTENSION
MIN_VERSION
- DISABLED_PLATFORMS
)
- cmake_parse_arguments(PKG_ARGS "" "${oneValueArgs}" "" ${ARGN})
+ set(multiValueArgs DISABLED_PLATFORMS)
+
+ cmake_parse_arguments(PKG_ARGS "" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
if(NOT DEFINED PKG_ARGS_VERSION)
message(FATAL_ERROR "[CPMUtil] VERSION is required")
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 <contact@amb.tf>
#
# 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 <contact@amb.tf>
#
# 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/Findzstd.cmake b/CMakeModules/Findzstd.cmake
index abcdbc2a3e..2afdb56a8c 100644
--- a/CMakeModules/Findzstd.cmake
+++ b/CMakeModules/Findzstd.cmake
@@ -6,22 +6,34 @@
include(FindPackageHandleStandardArgs)
-find_package(PkgConfig QUIET)
-pkg_search_module(ZSTD QUIET IMPORTED_TARGET libzstd)
-find_package_handle_standard_args(zstd
- REQUIRED_VARS ZSTD_LINK_LIBRARIES
- VERSION_VAR ZSTD_VERSION
-)
+find_package(zstd QUIET CONFIG)
+if (zstd_CONSIDERED_CONFIGS)
+ find_package_handle_standard_args(zstd CONFIG_MODE)
+else()
+ find_package(PkgConfig QUIET)
+ pkg_search_module(ZSTD QUIET IMPORTED_TARGET libzstd)
+ find_package_handle_standard_args(zstd
+ REQUIRED_VARS ZSTD_LINK_LIBRARIES
+ VERSION_VAR ZSTD_VERSION
+ )
+endif()
if (zstd_FOUND AND NOT TARGET zstd::zstd)
- if (TARGET zstd::libzstd_shared)
+ if (TARGET zstd::libzstd_shared AND NOT YUZU_STATIC_BUILD)
add_library(zstd::zstd ALIAS zstd::libzstd_shared)
- add_library(zstd::libzstd ALIAS zstd::libzstd_shared)
elseif (TARGET zstd::libzstd_static)
add_library(zstd::zstd ALIAS zstd::libzstd_static)
- add_library(zstd::libzstd ALIAS zstd::libzstd_static)
else()
add_library(zstd::zstd ALIAS PkgConfig::ZSTD)
- add_library(zstd::libzstd ALIAS PkgConfig::ZSTD)
+ endif()
+endif()
+
+get_target_property(ZSTD_TARGET zstd::zstd ALIASED_TARGET)
+
+if (NOT TARGET zstd::libzstd)
+ if (ZSTD_TARGET)
+ add_library(zstd::libzstd ALIAS ${ZSTD_TARGET})
+ else()
+ add_library(zstd::libzstd ALIAS zstd::zstd)
endif()
endif()
diff --git a/CMakeModules/FixMsysPaths.cmake b/CMakeModules/FixMsysPaths.cmake
new file mode 100644
index 0000000000..81520ca3f7
--- /dev/null
+++ b/CMakeModules/FixMsysPaths.cmake
@@ -0,0 +1,21 @@
+# 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 (NOT (include_dir MATCHES "^/"))
+ return()
+ endif()
+
+ set(root_default $ENV{MSYS2_LOCATION})
+ if (root_default STREQUAL "")
+ set(root_default "C:/msys64")
+ endif()
+
+ set(MSYS_ROOT_PATH ${root_default} CACHE STRING "Location of the MSYS2 root")
+
+ set(include_dir "C:/msys64${include_dir}")
+ set_target_properties(${target} PROPERTIES
+ INTERFACE_INCLUDE_DIRECTORIES ${include_dir})
+endfunction()