set(FETCHCONTENT_QUIET OFF)

FetchContent_Declare(
    miniupnpc
    URL https://github.com/miniupnp/miniupnp/releases/download/miniupnpc_2_3_3/miniupnpc-2.3.3.tar.gz
    DOWNLOAD_EXTRACT_TIMESTAMP TRUE
)
set(UPNPC_BUILD_TESTS FALSE CACHE INTERNAL "Build tests" FORCE)
set(UPNPC_BUILD_SHARED FALSE CACHE INTERNAL "Build shared library" FORCE)
set(UPNPC_BUILD_STATIC TRUE CACHE INTERNAL "Build static library" FORCE)
set(UPNPC_BUILD_SAMPLE FALSE CACHE INTERNAL "Build sample" FORCE)

FetchContent_MakeAvailable(miniupnpc)

if (NOT TARGET miniupnpc::miniupnpc)
     message(FATAL_ERROR "A required miniupnpc target (miniupnpc::miniupnpc) was not imported")
endif()
add_definitions(-DZT_USE_MINIUPNPC)

FetchContent_Declare(
    libnatpmp
    GIT_REPOSITORY https://github.com/miniupnp/libnatpmp.git
    GIT_TAG master
    GIT_SHALLOW ON
    PATCH_COMMAND git apply ${CMAKE_SOURCE_DIR}/ext/cmake-patches/libnatpmp.patch
    UPDATE_DISCONNECTED TRUE
)
FetchContent_MakeAvailable(libnatpmp)

if (NOT TARGET natpmp)
     message(FATAL_ERROR "A required libnatpmp target (natpmp) was not imported")
endif()