--- external/CMakeLists.txt.orig 2021-12-09 16:37:10.161405000 +0100 +++ external/CMakeLists.txt 2021-12-09 16:36:54.211336000 +0100 @@ -31,27 +31,30 @@ # This is broken up into two parts: first we check for miniupnp, compile it if we can't # find it, and thereafter we check for libunbound, and compile it if we can't find it. -# We always compile if we are building statically to reduce static dependency issues... -# ...except for FreeBSD, because FreeBSD is a special case that doesn't play well with -# others. find_package(Miniupnpc REQUIRED) -message(STATUS "Using in-tree miniupnpc") -set(UPNPC_NO_INSTALL TRUE CACHE BOOL "Disable miniupnp installation" FORCE) -add_subdirectory(miniupnp/miniupnpc) -set_property(TARGET libminiupnpc-static PROPERTY FOLDER "external") -set_property(TARGET libminiupnpc-static PROPERTY POSITION_INDEPENDENT_CODE ON) -if(MSVC) - set_property(TARGET libminiupnpc-static APPEND_STRING PROPERTY COMPILE_FLAGS " -wd4244 -wd4267") -elseif(NOT MSVC) - set_property(TARGET libminiupnpc-static APPEND_STRING PROPERTY COMPILE_FLAGS " -Wno-undef -Wno-unused-result -Wno-unused-value") -endif() -if(CMAKE_SYSTEM_NAME MATCHES "NetBSD") - set_property(TARGET libminiupnpc-static APPEND_STRING PROPERTY COMPILE_FLAGS " -D_NETBSD_SOURCE") -endif() +if(NOT MINIUPNPC_FOUND OR STATIC) + message(STATUS "Using in-tree miniupnpc") + set(UPNPC_NO_INSTALL TRUE CACHE BOOL "Disable miniupnp installation" FORCE) + add_subdirectory(miniupnp/miniupnpc) + set_property(TARGET libminiupnpc-static PROPERTY FOLDER "external") + set_property(TARGET libminiupnpc-static PROPERTY POSITION_INDEPENDENT_CODE ON) + if(MSVC) + set_property(TARGET libminiupnpc-static APPEND_STRING PROPERTY COMPILE_FLAGS " -wd4244 -wd4267") + elseif(NOT MSVC) + set_property(TARGET libminiupnpc-static APPEND_STRING PROPERTY COMPILE_FLAGS " -Wno-undef -Wno-unused-result -Wno-unused-value") + endif() + if(CMAKE_SYSTEM_NAME MATCHES "NetBSD") + set_property(TARGET libminiupnpc-static APPEND_STRING PROPERTY COMPILE_FLAGS " -D_NETBSD_SOURCE") + endif() -set(UPNP_LIBRARIES "libminiupnpc-static" PARENT_SCOPE) + set(UPNP_LIBRARIES "libminiupnpc-static" PARENT_SCOPE) +else() + message(STATUS "Found miniupnpc shared library (${MINIUPNP_LIBRARY})") + set(UPNP_LIBRARIES ${MINIUPNP_LIBRARY} PARENT_SCOPE) + set(UPNP_INCLUDE_DIR ${MINIUPNP_INCLUDE_DIR} PARENT_SCOPE) +endif() find_package(Unbound)