diff --git a/CMake/FindMiniupnpc.cmake b/CMake/FindMiniupnpc.cmake index 79b00c0621..f9a14e2a89 100644 --- a/CMake/FindMiniupnpc.cmake +++ b/CMake/FindMiniupnpc.cmake @@ -17,3 +17,11 @@ find_package_handle_standard_args(MINIUPNPC DEFAULT_MSG MINIUPNPC_INCLUDE_DIR MI set(MINIUPNPC_LIBRARIES ${MINIUPNPC_LIBRARY}) set(MINIUPNPC_INCLUDE_DIRS ${MINIUPNPC_INCLUDE_DIR}) mark_as_advanced(MINIUPNPC_INCLUDE_DIR MINIUPNPC_LIBRARY MINIUPNPC_API_VERSION_STR) + +if (MINIUPNPC_FOUND AND NOT TARGET miniupnpc) + add_library(Miniupnpc::miniupnpc UNKNOWN IMPORTED) + set_target_properties(Miniupnpc::miniupnpc PROPERTIES + IMPORTED_LOCATION ${MINIUPNPC_LIBRARIES} + INTERFACE_INCLUDE_DIRECTORIES ${MINIUPNPC_INCLUDE_DIRS} + ) +endif() diff --git a/CMakeLists.txt b/CMakeLists.txt index 098caad8bb..a0cc27af12 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -670,12 +670,8 @@ if(USE_UPNP) else() message(STATUS "Using static miniupnpc from Externals") add_subdirectory(Externals/miniupnpc) - set(MINIUPNPC_INCLUDE_DIRS Externals/miniupnpc/src) - set(MINIUPNPC_LIBRARIES miniupnpc) endif() add_definitions(-DUSE_UPNP) - include_directories(${MINIUPNPC_INCLUDE_DIRS}) - list(APPEND LIBS ${MINIUPNPC_LIBRARIES}) endif() if(NOT APPLE) diff --git a/Externals/miniupnpc/CMakeLists.txt b/Externals/miniupnpc/CMakeLists.txt index 873924aeb0..efd45e000e 100644 --- a/Externals/miniupnpc/CMakeLists.txt +++ b/Externals/miniupnpc/CMakeLists.txt @@ -18,8 +18,6 @@ if(APPLE) add_definitions(-DMACOSX -D_DARWIN_C_SOURCE) endif() -include_directories(include) - set(SRCS src/igd_desc_parse.c src/miniupnpc.c src/minixml.c @@ -35,4 +33,6 @@ set(SRCS src/igd_desc_parse.c src/receivedata.c) add_library(miniupnpc STATIC ${SRCS}) +target_include_directories(miniupnpc PUBLIC src) +add_library(Miniupnpc::miniupnpc ALIAS miniupnpc) diff --git a/Source/Core/Common/CMakeLists.txt b/Source/Core/Common/CMakeLists.txt index 5019159b23..91eca8f2ae 100644 --- a/Source/Core/Common/CMakeLists.txt +++ b/Source/Core/Common/CMakeLists.txt @@ -120,6 +120,10 @@ endif() add_dolphin_library(common "${SRCS}" "${LIBS}") +if(USE_UPNP) + target_link_libraries(common PRIVATE Miniupnpc::miniupnpc) +endif() + if(OPROFILE_FOUND) target_link_libraries(common PRIVATE ${OPROFILE_LIBRARIES}) endif()