'Add paho mqtt cpp library in CMake project

Following the instructions on their github repo I managed to build and install both libraries
paho-mqtt-c and paho-mqtt-cpp

in a custom directory
C:\mqtt\paho-c
C:\mqtt\paho-cpp

Now I'm trying to add those libraries in my project. My CMakelists.txt is as follows

cmake_minimum_required(VERSION 3.21)

enable_language(CXX)

list(APPEND CMAKE_PREFIX_PATH C:/mqtt/paho-cpp/lib/cmake/PahoMqttCpp)
find_package(PahoMqttCpp REQUIRED)

project(mqtt_test)

add_executable(mqtt_test main.cpp)

However, cmake insists on asking me where to find them.

Could NOT find PahoMqttC (missing: PAHO_MQTT_C_LIBRARIES PAHO_MQTT_C_INCLUDE_DIRS)

Why do I need to tell cmake again where to find C libraries? I think that was the job of find_package to also include those variables because I set it up on building and installation time.

Operating system: Windows 11 x64.
cmake version: 3.22.2
cmake generator: Ninja
C compiler: 11.2.0 (cygwin64)
C++ compiler: 11.2.0 (cygwin64)

EDIT: I manually specified the paths

set(PAHO_MQTT_C_LIBRARIES C:/mqtt/paho-c/lib/libpaho-mqtt3a-static.a)
set(PAHO_MQTT_C_INCLUDE_DIRS C:/mqtt/paho-c/include)
list(APPEND CMAKE_PREFIX_PATH C:/mqtt/paho-cpp/lib/cmake/PahoMqttCpp)
find_package(PahoMqttCpp REQUIRED)

However I'm getting a compilation error:

fatal error: mqtt/async_client.h: No such file or directory
61 | #include "mqtt/async_client.h"

I know how to solve it by manually adding the include paths in my cmakelist but I'm trying to figure out how to use their cmake module properly. find_package doesn't seem to do that.
Or I'm missing something.



Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source