diff --git a/CMakeLists.txt b/CMakeLists.txt
index f2f9e77506da0f9c23fd3e1d668fa3b64737fe60..32e1fd1d2cc14178fa8b12765b0f1f4aa52aee5e 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -47,16 +47,47 @@ if(NOT MSVC AND NOT APPLE)
   find_package(Threads REQUIRED)
 endif()
 
-find_package(OpenSSL REQUIRED)
-find_package(ZLIB REQUIRED)
-find_package(Olm 2 REQUIRED)
-find_package(sodium REQUIRED)
+include(FeatureSummary)
+
+find_package(OpenSSL)
+set_package_properties(OpenSSL PROPERTIES
+    DESCRIPTION "Open source SSL and TLS implementation and cryptographic library"
+    URL "https://www.openssl.org/"
+    TYPE REQUIRED
+)
+
+find_package(ZLIB)
+set_package_properties(ZLIB PROPERTIES
+    DESCRIPTION "A free compression library unencumbered by patents"
+    URL "https://www.zlib.net/"
+    TYPE REQUIRED
+)
+
+find_package(Olm 2)
+set_package_properties(Olm PROPERTIES
+    DESCRIPTION "An implementation of the Double Ratchet cryptographic ratchet"
+    URL "https://git.matrix.org/git/olm/about/"
+    TYPE REQUIRED
+)
+
+find_package(sodium)
+set_package_properties(sodium PROPERTIES
+    DESCRIPTION "A modern, portable, easy to use crypto library"
+    URL "https://github.com/jedisct1/libsodium"
+    TYPE REQUIRED
+)
+
 find_package(nlohmann_json 3.2.0)
+set_package_properties(nlohmann_json PROPERTIES
+    DESCRIPTION "JSON for Modern C++, a C++11 header-only JSON class"
+    URL "https://nlohmann.github.io/json/"
+    TYPE REQUIRED
+)
 
 set(Boost_USE_STATIC_LIBS OFF)
 set(Boost_USE_STATIC_RUNTIME OFF)
 set(Boost_USE_MULTITHREADED ON)
-find_package(Boost 1.66 REQUIRED
+find_package(Boost 1.66
              COMPONENTS atomic
                         chrono
                         date_time
@@ -65,6 +96,11 @@ find_package(Boost 1.66 REQUIRED
                         regex
                         system
                         thread)
+set_package_properties(Boost PROPERTIES
+    DESCRIPTION "Free peer-reviewed portable C++ source libraries"
+    URL "https://www.boost.org/"
+    TYPE REQUIRED
+)
 
 add_library(matrix_client
             lib/http/client.cpp
@@ -154,6 +190,8 @@ if(BUILD_LIB_EXAMPLES)
   add_subdirectory(examples)
 endif()
 
+feature_summary(WHAT ALL INCLUDE_QUIET_PACKAGES FATAL_ON_MISSING_REQUIRED_PACKAGES)
+
 #
 # Installation & Target configuration.
 #
diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt
index c609f5d8517115662a31fd0f7abd2e6f5a3c1932..85ef0925fceeab5eab00a67dbcaea4d3ad3c7027 100644
--- a/examples/CMakeLists.txt
+++ b/examples/CMakeLists.txt
@@ -1,4 +1,9 @@
-find_package(spdlog 1.0.0 CONFIG REQUIRED)
+find_package(spdlog 1.0.0 CONFIG)
+set_package_properties(spdlog PROPERTIES
+    DESCRIPTION "Very fast, header only, C++ logging library"
+    URL "https://github.com/gabime/spdlog"
+    TYPE REQUIRED
+)
 
 include_directories(../tests)
 
diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt
index 2052498534492ac0e76c9135e7e8d6b84fb720aa..5fac88b8ec17f994aacae3e740c1bd115e25040a 100644
--- a/tests/CMakeLists.txt
+++ b/tests/CMakeLists.txt
@@ -2,7 +2,12 @@ enable_testing()
 
 file(COPY fixtures DESTINATION ${CMAKE_CURRENT_BINARY_DIR})
 
-find_package(GTest REQUIRED)
+find_package(GTest)
+set_package_properties(GTest PROPERTIES
+    DESCRIPTION "Google's framework for writing C++ tests"
+    URL "https://github.com/google/googletest"
+    TYPE REQUIRED
+)
 
 file(COPY fixtures DESTINATION ${CMAKE_CURRENT_BINARY_DIR})