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})