# # Builds the paho.mqtt.cpp library # # Outputs the following target: # paho-mqttpp3 # # When depending on paho-mqttp3, must also depend on # either paho-mqttc3::MQTTClient or paho-mqttc3::MQTTAsync # for using the blocking or the asynchrounous client, respectively. # include(ExternalProject) set(PAHOMQTTCPP_DIR ${CMAKE_SOURCE_DIR}/modules/paho.mqtt.cpp) set(PAHOMQTTCPP_TARGET_DIR ${CMAKE_BINARY_DIR}/modules/paho.mqtt.cpp) if( WIN32) set(PAHOMQTTCPP_STATIC_LIB ${PAHOMQTTCPP_TARGET_DIR}/lib/paho-mqttpp3-static.lib) else() set(PAHOMQTTCPP_STATIC_LIB ${PAHOMQTTCPP_TARGET_DIR}/lib/libpaho-mqttpp3.a) endif() set(PAHOMQTTCPP_BYPRODUCTS ${PAHOMQTTCPP_STATIC_LIB}) file(MAKE_DIRECTORY ${PAHOMQTTCPP_TARGET_DIR}/include) set(PAHO_BUILD_SHARED FALSE) if(NOT ${PAHO_BUILD_STATIC}) set(PAHO_BUILD_SHARED TRUE) endif() ExternalProject_Add( pahomqttcpp DEPENDS pahomqttc PREFIX ${PAHOMQTTCPP_TARGET_DIR} SOURCE_DIR ${PAHOMQTTCPP_DIR} CMAKE_ARGS -DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER} CMAKE_ARGS -DCMAKE_PROJECT_paho-mqtt-cpp_INCLUDE=${CMAKE_BINARY_DIR}/cmake/fix_pahomqttcpp.cmake CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${PAHOMQTTCPP_TARGET_DIR} CMAKE_ARGS -DPAHO_WITH_SSL=${PAHO_BUILD_WITH_SSL} CMAKE_ARGS -DPAHO_BUILD_STATIC=${PAHO_BUILD_STATIC} CMAKE_ARGS -DPAHO_BUILD_SHARED=${PAHO_BUILD_SHARED} BUILD_COMMAND cmake --build . --config $ INSTALL_COMMAND cmake --install . --config $ BUILD_BYPRODUCTS ${PAHOMQTTCPP_BYPRODUCTS} ) add_library(paho-mqttpp3 STATIC IMPORTED GLOBAL) add_dependencies(paho-mqttpp3 pahomqttcpp) set_target_properties(paho-mqttpp3 PROPERTIES IMPORTED_LOCATION ${PAHOMQTTCPP_STATIC_LIB} INTERFACE_INCLUDE_DIRECTORIES ${PAHOMQTTCPP_TARGET_DIR}/include)