cmake: prefer system miniupnpc library (#4567)

This commit is contained in:
Alexandre Bouvier 2026-06-12 17:53:16 +00:00 committed by GitHub
parent 5303084054
commit b5b7cb5459
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 20 additions and 1 deletions

View File

@ -235,6 +235,7 @@ find_package(Freetype 2.14.1 MODULE)
find_package(glslang 15 CONFIG)
find_package(half 1.12.0 MODULE)
find_package(magic_enum 0.9.7 CONFIG)
find_package(miniupnpc 2.3.3 MODULE)
find_package(miniz 3.1 CONFIG)
find_package(nlohmann_json 3.12 CONFIG)
find_package(PNG 1.6 MODULE)
@ -1188,7 +1189,7 @@ create_target_directory_groups(shadps4)
target_link_libraries(shadps4 PRIVATE spdlog::spdlog)
target_link_libraries(shadps4 PRIVATE magic_enum::magic_enum fmt::fmt toml11::toml11 tsl::robin_map xbyak::xbyak Tracy::TracyClient RenderDoc::API FFmpeg::ffmpeg Dear_ImGui ImGuiFileDialog gcn half::half ZLIB::ZLIB PNG::PNG minimp3)
target_link_libraries(shadps4 PRIVATE Boost::headers GPUOpen::VulkanMemoryAllocator LibAtrac9 sirit Vulkan::Headers xxHash::xxhash Zydis::Zydis glslang::glslang SDL3::SDL3 pugixml::pugixml)
target_link_libraries(shadps4 PRIVATE stb::headers lfreist-hwinfo::hwinfo nlohmann_json::nlohmann_json miniz::miniz fdk-aac CLI11::CLI11 OpenAL::OpenAL Cpp_Httplib libminiupnpc-static)
target_link_libraries(shadps4 PRIVATE stb::headers lfreist-hwinfo::hwinfo nlohmann_json::nlohmann_json miniz::miniz fdk-aac CLI11::CLI11 OpenAL::OpenAL Cpp_Httplib miniupnpc::miniupnpc)
target_link_libraries(shadps4 PRIVATE Freetype::Freetype)
if (${CMAKE_SYSTEM_NAME} STREQUAL "FreeBSD")

16
cmake/Findminiupnpc.cmake Normal file
View File

@ -0,0 +1,16 @@
# SPDX-FileCopyrightText: Copyright 2026 shadPS4 Emulator Project
# SPDX-License-Identifier: GPL-2.0-or-later
find_package(PkgConfig QUIET)
pkg_search_module(MINIUPNPC QUIET IMPORTED_TARGET miniupnpc)
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(miniupnpc
REQUIRED_VARS MINIUPNPC_LINK_LIBRARIES
VERSION_VAR MINIUPNPC_VERSION
)
if (miniupnpc_FOUND AND NOT TARGET miniupnpc::miniupnpc)
target_include_directories(PkgConfig::MINIUPNPC INTERFACE "${MINIUPNPC_INCLUDEDIR}/miniupnpc")
add_library(miniupnpc::miniupnpc ALIAS PkgConfig::MINIUPNPC)
endif()

View File

@ -297,12 +297,14 @@ if (NOT TARGET CLI11::CLI11)
endif()
# miniupnpc
if (NOT TARGET miniupnpc::miniupnpc)
set(UPNPC_BUILD_STATIC ON CACHE BOOL "" FORCE)
set(UPNPC_BUILD_SHARED OFF CACHE BOOL "" FORCE)
set(UPNPC_BUILD_TESTS OFF CACHE BOOL "" FORCE)
set(UPNPC_BUILD_SAMPLE OFF CACHE BOOL "" FORCE)
set(UPNPC_NO_INSTALL ON CACHE BOOL "" FORCE)
add_subdirectory(miniupnp/miniupnpc)
endif()
# minimp3
add_library(minimp3 INTERFACE)