FindPackages.cmake 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. # Smartbotic-MicroBit System Package Discovery
  2. find_package(PkgConfig REQUIRED)
  3. # gRPC and Protobuf (for smartbotic-database client)
  4. find_package(Protobuf REQUIRED)
  5. message(STATUS "Found Protobuf: ${Protobuf_VERSION}")
  6. find_package(gRPC CONFIG QUIET)
  7. if(gRPC_FOUND)
  8. message(STATUS "Found gRPC via CMake config")
  9. else()
  10. pkg_check_modules(GRPC REQUIRED IMPORTED_TARGET grpc++ grpc)
  11. message(STATUS "Found gRPC via pkg-config: ${GRPC_VERSION}")
  12. endif()
  13. # libcurl (HTTP client for CallerAI API + SMTP)
  14. find_package(CURL REQUIRED)
  15. message(STATUS "Found CURL: ${CURL_VERSION_STRING}")
  16. # OpenSSL (TLS, JWT HMAC-SHA256)
  17. find_package(OpenSSL REQUIRED)
  18. message(STATUS "Found OpenSSL: ${OPENSSL_VERSION}")
  19. # nlohmann_json (may be provided via FetchContent in Dependencies.cmake)
  20. find_package(nlohmann_json 3.2.0 QUIET)
  21. if(nlohmann_json_FOUND)
  22. message(STATUS "Found nlohmann_json: ${nlohmann_json_VERSION}")
  23. endif()
  24. # spdlog (logging)
  25. find_package(spdlog REQUIRED)
  26. message(STATUS "Found spdlog: ${spdlog_VERSION}")
  27. # systemd (optional, for sd_notify)
  28. pkg_check_modules(SYSTEMD QUIET IMPORTED_TARGET libsystemd)
  29. if(SYSTEMD_FOUND)
  30. message(STATUS "Found systemd: ${SYSTEMD_VERSION}")
  31. endif()