diff --git a/3rdparty/CMakeLists.txt b/3rdparty/CMakeLists.txt index 94c6069271..81a81cb204 100644 --- a/3rdparty/CMakeLists.txt +++ b/3rdparty/CMakeLists.txt @@ -388,7 +388,7 @@ add_library(3rdparty::wolfssl ALIAS wolfssl) add_library(3rdparty::libcurl ALIAS 3rdparty_libcurl) add_library(3rdparty::soundtouch ALIAS soundtouch) add_library(3rdparty::sdl3 ALIAS ${SDL3_TARGET}) -add_library(3rdparty::miniupnpc ALIAS libminiupnpc-static) +add_library(3rdparty::miniupnpc ALIAS 3rdparty_miniupnpc) add_library(3rdparty::rtmidi ALIAS rtmidi) add_library(3rdparty::opencv ALIAS ${OPENCV_TARGET}) add_library(3rdparty::fusion ALIAS Fusion) diff --git a/3rdparty/miniupnp/CMakeLists.txt b/3rdparty/miniupnp/CMakeLists.txt index 93c3dc55cd..c40d4a5ebd 100644 --- a/3rdparty/miniupnp/CMakeLists.txt +++ b/3rdparty/miniupnp/CMakeLists.txt @@ -1,8 +1,21 @@ -option (UPNPC_BUILD_STATIC "Build static library" TRUE) -option (UPNPC_BUILD_SHARED "Build shared library" FALSE) -option (UPNPC_BUILD_TESTS "Build test executables" FALSE) -option (UPNPC_BUILD_SAMPLE "Build sample executables" FALSE) -option (NO_GETADDRINFO "Define NO_GETADDRINFO" FALSE) -option (UPNPC_NO_INSTALL "Disable installation" TRUE) +if(USE_SYSTEM_MINIUPNPC) + message(STATUS "RPCS3: using shared MiniUPnPc") + pkg_check_modules(MiniUPnPc REQUIRED IMPORTED_TARGET miniupnpc>=2.3.3) + add_library(3rdparty_miniupnpc INTERFACE) + target_link_libraries(3rdparty_miniupnpc INTERFACE PkgConfig::MiniUPnPc) + target_include_directories(3rdparty_miniupnpc INTERFACE PkgConfig::MiniUPnPc) + list(TRANSFORM MiniUPnPc_INCLUDE_DIRS APPEND "/miniupnpc") + target_include_directories(3rdparty_miniupnpc INTERFACE ${MiniUPnPc_INCLUDE_DIRS}) +else() + option (UPNPC_BUILD_STATIC "Build static library" TRUE) + option (UPNPC_BUILD_SHARED "Build shared library" FALSE) + option (UPNPC_BUILD_TESTS "Build test executables" FALSE) + option (UPNPC_BUILD_SAMPLE "Build sample executables" FALSE) + option (NO_GETADDRINFO "Define NO_GETADDRINFO" FALSE) + option (UPNPC_NO_INSTALL "Disable installation" TRUE) -add_subdirectory(miniupnp/miniupnpc EXCLUDE_FROM_ALL) + add_subdirectory(miniupnp/miniupnpc EXCLUDE_FROM_ALL) + add_library(3rdparty_miniupnpc INTERFACE) + target_link_libraries(3rdparty_miniupnpc INTERFACE libminiupnpc-static) + target_include_directories(3rdparty_miniupnpc INTERFACE libminiupnpc-static) +endif() diff --git a/CMakeLists.txt b/CMakeLists.txt index a3c14bcd87..8f0c1c9443 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -45,6 +45,7 @@ option(USE_SYSTEM_FFMPEG "Prefer system ffmpeg instead of the prebuild one" OFF) option(USE_SYSTEM_FLATBUFFERS "Prefer system flatbuffers instead of the builtin one" OFF) option(USE_SYSTEM_LIBPNG "Prefer system libpng instead of the builtin one" OFF) option(USE_SYSTEM_LIBUSB "Prefer system libusb instead of the builtin one" OFF) +option(USE_SYSTEM_MINIUPNPC "Prefer system MiniUPnPc instead of the builtin one" OFF) option(USE_SYSTEM_MVK "Prefer system MoltenVK instead of the builtin one" OFF) option(USE_SYSTEM_OPENAL "Prefer system OpenAL instead of the prebuild one" ${USE_SYSTEM_OPENAL_DEFAULT}) option(USE_SYSTEM_OPENCV "Prefer system OpenCV instead of the builtin one" ON)