if (TARGET LibUV::uv OR TARGET uv)
#do nothing, it is already exists, ussually it is subdirrectory included
message(STATUS "found libuv with defined target LibUV::uv")
else()
#try config mode
find_package(libuv QUIET CONFIG)
if (libuv_FOUND)
#do nothing, find_package makes all job
message(STATUS "found libuv with CONFIG mode")
else()
#try pkg-config
find_package(PkgConfig)
set(PKG_CONFIG_USE_CMAKE_PREFIX_PATH TRUE)
pkg_check_modules(libuv QUIET IMPORTED_TARGET GLOBAL libuv)
if (TARGET PkgConfig::libuv)
message(STATUS "found libuv with pkg-conf")
add_library(LibUV::uv ALIAS PkgConfig::libuv)
else()
message(ERROR "Cannot find libuv")
endif()
endif()
endif()