Fixed formatting in CMake files.

This commit is contained in:
fpagliughi 2023-12-03 20:39:06 -05:00
parent 59761f5b00
commit 80feb203c8
7 changed files with 1257 additions and 1379 deletions

View File

@ -1,5 +1,6 @@
#*******************************************************************************
# Copyright (c) 2015, 2023 logi.cals GmbH and others
# Copyright (c) 2023 Frank Pagliughi <fpagliughi@mindspring.com>
#
# All rights reserved. This program and the accompanying materials
# are made available under the terms of the Eclipse Public License v2.0
@ -15,19 +16,18 @@
# Genis Riera Perez - Add support for building debian package
#*******************************************************************************/
# Note: on OS X you should install XCode and the associated command-line tools
cmake_minimum_required(VERSION 3.5)
CMAKE_MINIMUM_REQUIRED(VERSION 3.5)
PROJECT("Eclipse Paho C"
project("Eclipse Paho C"
VERSION 1.3.13
LANGUAGES C
)
MESSAGE(STATUS "CMake version: " ${CMAKE_VERSION})
MESSAGE(STATUS "CMake system name: " ${CMAKE_SYSTEM_NAME})
message(STATUS "CMake version: " ${CMAKE_VERSION})
message(STATUS "CMake system name: " ${CMAKE_SYSTEM_NAME})
SET(CMAKE_SCRIPTS "${CMAKE_SOURCE_DIR}/cmake")
SET(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake/modules")
set(CMAKE_SCRIPTS "${CMAKE_SOURCE_DIR}/cmake")
set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake/modules")
## Project Version
## Previously we read in the version from these files, but now we use the
@ -35,106 +35,110 @@ SET(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake/modules")
file(READ version.major PAHO_VERSION_MAJOR)
file(READ version.minor PAHO_VERSION_MINOR)
file(READ version.patch PAHO_VERSION_PATCH)
SET(CLIENT_VERSION ${PAHO_VERSION_MAJOR}.${PAHO_VERSION_MINOR}.${PAHO_VERSION_PATCH})
set(CLIENT_VERSION ${PAHO_VERSION_MAJOR}.${PAHO_VERSION_MINOR}.${PAHO_VERSION_PATCH})
if(NOT (CLIENT_VERSION VERSION_EQUAL PROJECT_VERSION))
message(FATAL_ERROR "CMake project version does NOT match. CMake: ${PROJECT_VERSION}, Files: ${CLIENT_VERSION}")
endif()
INCLUDE(GNUInstallDirs)
include(GNUInstallDirs)
STRING(TIMESTAMP BUILD_TIMESTAMP UTC)
MESSAGE(STATUS "Timestamp is ${BUILD_TIMESTAMP}")
string(TIMESTAMP BUILD_TIMESTAMP UTC)
message(STATUS "Timestamp is ${BUILD_TIMESTAMP}")
IF(WIN32)
ADD_DEFINITIONS(-D_CRT_SECURE_NO_DEPRECATE -DWIN32_LEAN_AND_MEAN)
ELSEIF(${CMAKE_SYSTEM_NAME} STREQUAL "Darwin")
ADD_DEFINITIONS(-DOSX)
ENDIF()
if(WIN32)
add_definitions(-D_CRT_SECURE_NO_DEPRECATE -DWIN32_LEAN_AND_MEAN)
elseif(${CMAKE_SYSTEM_NAME} STREQUAL "Darwin")
add_definitions(-DOSX)
endif()
## build options
SET(PAHO_WITH_SSL FALSE CACHE BOOL "Flag that defines whether to build ssl-enabled binaries too. ")
SET(PAHO_WITH_LIBUUID FALSE CACHE BOOL "Flag that defines whether libuuid or a custom uuid implementation should be used")
SET(PAHO_BUILD_SHARED TRUE CACHE BOOL "Build shared library")
SET(PAHO_BUILD_STATIC FALSE CACHE BOOL "Build static library")
SET(PAHO_BUILD_DOCUMENTATION FALSE CACHE BOOL "Create and install the HTML based API documentation (requires Doxygen)")
SET(PAHO_BUILD_SAMPLES FALSE CACHE BOOL "Build sample programs")
SET(PAHO_BUILD_DEB_PACKAGE FALSE CACHE BOOL "Build debian package")
SET(PAHO_ENABLE_TESTING TRUE CACHE BOOL "Build tests and run")
SET(PAHO_ENABLE_CPACK TRUE CACHE BOOL "Enable CPack")
SET(PAHO_HIGH_PERFORMANCE FALSE CACHE BOOL "Disable tracing and heap tracking")
SET(PAHO_USE_SELECT FALSE CACHE BOOL "Revert to select system call instead of poll")
IF (PAHO_HIGH_PERFORMANCE)
ADD_DEFINITIONS(-DHIGH_PERFORMANCE=1)
ENDIF()
option(PAHO_WITH_SSL "Flag that defines whether to build ssl-enabled binaries too. " FALSE)
option(PAHO_WITH_LIBUUID "Flag that defines whether libuuid or a custom uuid implementation should be used" FALSE)
option(PAHO_BUILD_SHARED "Build shared library" TRUE)
option(PAHO_BUILD_STATIC "Build static library" FALSE)
option(PAHO_BUILD_DOCUMENTATION "Create and install the HTML based API documentation (requires Doxygen)" FALSE)
option(PAHO_BUILD_SAMPLES "Build sample programs" FALSE)
option(PAHO_BUILD_DEB_PACKAGE "Build debian package" FALSE)
option(PAHO_ENABLE_TESTING "Build tests and run" TRUE)
option(PAHO_ENABLE_CPACK "Enable CPack" TRUE)
option(PAHO_HIGH_PERFORMANCE "Disable tracing and heap tracking" FALSE)
option(PAHO_USE_SELECT "Revert to select system call instead of poll" FALSE)
IF (PAHO_USE_SELECT)
ADD_DEFINITIONS(-DUSE_SELECT=1)
ENDIF()
if(PAHO_HIGH_PERFORMANCE)
add_definitions(-DHIGH_PERFORMANCE=1)
endif()
IF (PAHO_WITH_LIBUUID)
ADD_DEFINITIONS(-DUSE_LIBUUID=1)
ENDIF()
if(PAHO_USE_SELECT)
add_definitions(-DUSE_SELECT=1)
endif()
IF (NOT PAHO_BUILD_SHARED AND NOT PAHO_BUILD_STATIC)
MESSAGE(FATAL_ERROR "You must set either PAHO_BUILD_SHARED, PAHO_BUILD_STATIC, or both")
ENDIF()
if(PAHO_WITH_LIBUUID)
add_definitions(-DUSE_LIBUUID=1)
endif()
IF (PAHO_BUILD_SAMPLES AND NOT PAHO_WITH_SSL)
MESSAGE(FATAL_ERROR "You must build with SSL to build the samples")
ENDIF()
if(NOT PAHO_BUILD_SHARED AND NOT PAHO_BUILD_STATIC)
message(FATAL_ERROR "You must set either PAHO_BUILD_SHARED, PAHO_BUILD_STATIC, or both")
endif()
IF(PAHO_BUILD_DEB_PACKAGE)
if(PAHO_BUILD_SAMPLES AND NOT PAHO_WITH_SSL)
message(FATAL_ERROR "You must build with SSL to build the samples")
endif()
if(PAHO_BUILD_DEB_PACKAGE)
set(CMAKE_INSTALL_DOCDIR share/doc/libpaho-mqtt)
set(CPACK_DEBIAN_PACKAGE_GENERATE_SHLIBS ON)
set(CPACK_DEBIAN_PACKAGE_GENERATE_SHLIBS_POLICY ">=")
ENDIF()
endif()
ADD_SUBDIRECTORY(src)
IF(PAHO_BUILD_SAMPLES)
ADD_SUBDIRECTORY(src/samples)
ENDIF()
add_subdirectory(src)
IF(PAHO_BUILD_DOCUMENTATION)
ADD_SUBDIRECTORY(doc)
ENDIF()
if(PAHO_BUILD_SAMPLES)
add_subdirectory(src/samples)
endif()
IF (PAHO_ENABLE_CPACK)
if(PAHO_BUILD_DOCUMENTATION)
add_subdirectory(doc)
endif()
if(PAHO_ENABLE_CPACK)
### packaging settings
FILE(GLOB samples "src/samples/*.c")
INSTALL(FILES ${samples} DESTINATION ${CMAKE_INSTALL_DOCDIR}/samples)
file(GLOB samples "src/samples/*.c")
install(FILES ${samples} DESTINATION ${CMAKE_INSTALL_DOCDIR}/samples)
SET(CPACK_PACKAGE_VENDOR "Eclipse Paho")
SET(CPACK_PACKAGE_NAME "Eclipse-Paho-MQTT-C")
INSTALL(FILES CONTRIBUTING.md epl-v20 edl-v10 README.md notice.html DESTINATION ${CMAKE_INSTALL_DOCDIR})
set(CPACK_PACKAGE_VENDOR "Eclipse Paho")
set(CPACK_PACKAGE_NAME "Eclipse-Paho-MQTT-C")
install(FILES CONTRIBUTING.md epl-v20 edl-v10 README.md notice.html DESTINATION ${CMAKE_INSTALL_DOCDIR})
IF (WIN32)
SET(CPACK_GENERATOR "ZIP")
ELSEIF(PAHO_BUILD_DEB_PACKAGE)
INSTALL(FILES CONTRIBUTING.md epl-v20 edl-v10 README.md notice.html DESTINATION ${CMAKE_INSTALL_DOCDIR})
if(WIN32)
set(CPACK_GENERATOR "ZIP")
elseif(PAHO_BUILD_DEB_PACKAGE)
install(FILES CONTRIBUTING.md epl-v20 edl-v10 README.md notice.html DESTINATION ${CMAKE_INSTALL_DOCDIR})
SET(CPACK_GENERATOR "DEB")
CONFIGURE_FILE(${CMAKE_SCRIPTS}/CPackDebConfig.cmake.in
${CMAKE_BINARY_DIR}/CPackDebConfig.cmake @ONLY)
SET(CPACK_PROJECT_CONFIG_FILE ${CMAKE_BINARY_DIR}/CPackDebConfig.cmake)
ELSE()
SET(CPACK_GENERATOR "TGZ")
ENDIF()
ELSE()
FILE(GLOB samples "src/samples/*.c")
INSTALL(FILES ${samples} DESTINATION ${CMAKE_INSTALL_DOCDIR})
ENDIF()
set(CPACK_GENERATOR "DEB")
configure_file(${CMAKE_SCRIPTS}/CPackDebConfig.cmake.in
${CMAKE_BINARY_DIR}/CPackDebConfig.cmake @ONLY
)
set(CPACK_PROJECT_CONFIG_FILE ${CMAKE_BINARY_DIR}/CPackDebConfig.cmake)
else()
set(CPACK_GENERATOR "TGZ")
endif()
else()
file(GLOB samples "src/samples/*.c")
install(FILES ${samples} DESTINATION ${CMAKE_INSTALL_DOCDIR})
endif()
SET(CPACK_PACKAGE_VERSION_MAJOR ${PROJECT_VERSION_MAJOR})
SET(CPACK_PACKAGE_VERSION_MINOR ${PROJECT_VERSION_MINOR})
SET(CPACK_PACKAGE_VERSION_PATCH ${PROJECT_VERSION_PATCH})
INCLUDE(CPack)
set(CPACK_PACKAGE_VERSION_MAJOR ${PROJECT_VERSION_MAJOR})
set(CPACK_PACKAGE_VERSION_MINOR ${PROJECT_VERSION_MINOR})
set(CPACK_PACKAGE_VERSION_PATCH ${PROJECT_VERSION_PATCH})
IF(PAHO_ENABLE_TESTING)
ENABLE_TESTING()
INCLUDE_DIRECTORIES(test src)
ADD_SUBDIRECTORY(test)
ELSE()
INCLUDE_DIRECTORIES(src)
ENDIF()
include(CPack)
if(PAHO_ENABLE_TESTING)
enable_testing()
include_directories(test src)
add_subdirectory(test)
else()
include_directories(src)
endif()

View File

@ -14,32 +14,33 @@
# Rainer Poisel - initial version
#*******************************************************************************/
# Note: on OS X you should install XCode and the associated command-line tools
### documentation settings
FIND_PACKAGE(Doxygen)
IF(NOT DOXYGEN_FOUND)
find_package(Doxygen)
if(NOT DOXYGEN_FOUND)
message(FATAL_ERROR "Doxygen is needed to build the documentation.")
ENDIF()
SET(DOXYTARGETS)
FILE(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/doc)
FOREACH(DOXYFILE_SRC DoxyfileV3ClientAPI;DoxyfileV3AsyncAPI;DoxyfileV3ClientInternal)
SET(DOXYFILE_IN ${DOXYFILE_SRC}.in)
SET(DOXYFILE ${CMAKE_CURRENT_BINARY_DIR}/${DOXYFILE_SRC})
endif()
CONFIGURE_FILE(${DOXYFILE_IN} ${DOXYFILE} @ONLY)
ADD_CUSTOM_TARGET(${DOXYFILE_SRC}.target
set(DOXYTARGETS)
file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/doc)
foreach(DOXYFILE_SRC DoxyfileV3ClientAPI;DoxyfileV3AsyncAPI;DoxyfileV3ClientInternal)
set(DOXYFILE_IN ${DOXYFILE_SRC}.in)
set(DOXYFILE ${CMAKE_CURRENT_BINARY_DIR}/${DOXYFILE_SRC})
configure_file(${DOXYFILE_IN} ${DOXYFILE} @ONLY)
add_custom_target(${DOXYFILE_SRC}.target
COMMAND ${DOXYGEN_EXECUTABLE} ${DOXYFILE}
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
COMMENT "Generating API documentation with Doxygen"
VERBATIM
)
SET(DOXYTARGETS ${DOXYTARGETS} ${DOXYFILE_SRC}.target)
ENDFOREACH(DOXYFILE_SRC)
set(DOXYTARGETS ${DOXYTARGETS} ${DOXYFILE_SRC}.target)
endforeach(DOXYFILE_SRC)
ADD_CUSTOM_TARGET(doc ALL DEPENDS ${DOXYTARGETS})
IF (PAHO_ENABLE_CPACK)
INSTALL(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/doc/ DESTINATION ${CMAKE_INSTALL_DOCDIR})
ELSE()
INSTALL(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/doc DESTINATION ${CMAKE_INSTALL_DOCDIR})
ENDIF()
add_custom_target(doc ALL DEPENDS ${DOXYTARGETS})
if(PAHO_ENABLE_CPACK)
install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/doc/ DESTINATION ${CMAKE_INSTALL_DOCDIR})
else()
install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/doc DESTINATION ${CMAKE_INSTALL_DOCDIR})
endif()

View File

@ -1,5 +1,6 @@
#*******************************************************************************
# Copyright (c) 2015, 2023 logi.cals GmbH and others
# Copyright (c) 2023, Frank Pagliughi <fpagliughi@mindspring.com>
#
# All rights reserved. This program and the accompanying materials
# are made available under the terms of the Eclipse Public License v2.0
@ -16,16 +17,14 @@
# Ian Craggs - update for MQTTV5 support
#*******************************************************************************/
# Note: on OS X you should install XCode and the associated command-line tools
## compilation/linkage settings
CONFIGURE_FILE(VersionInfo.h.in
configure_file(VersionInfo.h.in
${CMAKE_BINARY_DIR}/VersionInfo.h
@ONLY
)
)
SET(common_src
set(common_src
MQTTTime.c
MQTTProtocolClient.c
Clients.c
@ -50,290 +49,371 @@ SET(common_src
Proxy.c
)
IF (NOT PAHO_HIGH_PERFORMANCE)
SET(common_src ${common_src}
if(NOT PAHO_HIGH_PERFORMANCE)
set(common_src ${common_src}
StackTrace.c
Heap.c
)
ENDIF()
endif()
IF (WIN32)
SET(LIBS_SYSTEM ws2_32 crypt32 RpcRT4)
ELSEIF (UNIX)
IF(CMAKE_SYSTEM_NAME MATCHES "Linux")
SET(LIBS_SYSTEM c dl pthread rt)
if(WIN32)
set(LIBS_SYSTEM ws2_32 crypt32 RpcRT4)
elseif(UNIX)
if(CMAKE_SYSTEM_NAME MATCHES "Linux")
set(LIBS_SYSTEM c dl pthread rt)
# anl is only available with glibc so check if it is found before using
# it or build will fail on uclibc or musl
FIND_LIBRARY(LIB_ANL anl)
IF(LIB_ANL)
SET(LIBS_SYSTEM "${LIBS_SYSTEM}" anl)
ENDIF()
IF(PAHO_WITH_LIBUUID)
SET(LIBS_SYSTEM "${LIBS_SYSTEM}" uuid)
ENDIF()
ADD_DEFINITIONS(-D_GNU_SOURCE -fvisibility=hidden)
ELSEIF (CMAKE_SYSTEM_NAME MATCHES "Android")
SET(LIBS_SYSTEM c dl)
ELSEIF (CMAKE_SYSTEM_NAME MATCHES "FreeBSD")
SET(LIBS_SYSTEM compat pthread)
ELSE()
SET(LIBS_SYSTEM c pthread)
ENDIF()
ENDIF()
find_library(LIB_ANL anl)
if(LIB_ANL)
set(LIBS_SYSTEM "${LIBS_SYSTEM}" anl)
endif()
if(PAHO_WITH_LIBUUID)
set(LIBS_SYSTEM "${LIBS_SYSTEM}" uuid)
endif()
add_definitions(-D_GNU_SOURCE -fvisibility=hidden)
elseif(CMAKE_SYSTEM_NAME MATCHES "Android")
set(LIBS_SYSTEM c dl)
elseif(CMAKE_SYSTEM_NAME MATCHES "FreeBSD")
set(LIBS_SYSTEM compat pthread)
else()
set(LIBS_SYSTEM c pthread)
endif()
endif()
IF (PAHO_BUILD_SHARED)
# common compilation for libpaho-mqtt3c and libpaho-mqtt3a
ADD_LIBRARY(common_obj OBJECT ${common_src})
SET_TARGET_PROPERTIES(common_obj PROPERTIES
if(PAHO_BUILD_SHARED)
# common compilation for libpaho-mqtt3c and libpaho-mqtt3a
add_library(common_obj OBJECT ${common_src})
set_target_properties(common_obj PROPERTIES
POSITION_INDEPENDENT_CODE ON
COMPILE_DEFINITIONS "PAHO_MQTT_EXPORTS=1")
ADD_EXECUTABLE(MQTTVersion MQTTVersion.c)
SET_TARGET_PROPERTIES(MQTTVersion PROPERTIES
COMPILE_DEFINITIONS "PAHO_MQTT_EXPORTS=1"
)
add_executable(MQTTVersion MQTTVersion.c)
set_target_properties(MQTTVersion PROPERTIES
POSITION_INDEPENDENT_CODE ON
COMPILE_DEFINITIONS "PAHO_MQTT_IMPORTS=1")
ENDIF()
COMPILE_DEFINITIONS "PAHO_MQTT_IMPORTS=1"
)
endif()
IF (PAHO_BUILD_STATIC)
ADD_LIBRARY(common_obj_static OBJECT ${common_src})
SET_TARGET_PROPERTIES(common_obj_static PROPERTIES
if(PAHO_BUILD_STATIC)
add_library(common_obj_static OBJECT ${common_src})
set_target_properties(common_obj_static PROPERTIES
POSITION_INDEPENDENT_CODE ON
COMPILE_DEFINITIONS "PAHO_MQTT_STATIC=1")
ENDIF()
COMPILE_DEFINITIONS "PAHO_MQTT_STATIC=1"
)
endif()
IF (PAHO_BUILD_SHARED)
ADD_LIBRARY(paho-mqtt3c SHARED $<TARGET_OBJECTS:common_obj> MQTTClient.c)
ADD_LIBRARY(paho-mqtt3a SHARED $<TARGET_OBJECTS:common_obj> MQTTAsync.c MQTTAsyncUtils.c)
if(PAHO_BUILD_SHARED)
add_library(paho-mqtt3c SHARED
$<TARGET_OBJECTS:common_obj>
MQTTClient.c
)
add_library(paho-mqtt3a SHARED
$<TARGET_OBJECTS:common_obj>
MQTTAsync.c
MQTTAsyncUtils.c
)
TARGET_LINK_LIBRARIES(paho-mqtt3c ${LIBS_SYSTEM})
TARGET_LINK_LIBRARIES(paho-mqtt3a ${LIBS_SYSTEM})
TARGET_LINK_LIBRARIES(MQTTVersion paho-mqtt3a paho-mqtt3c ${LIBS_SYSTEM})
target_link_libraries(paho-mqtt3c ${LIBS_SYSTEM})
target_link_libraries(paho-mqtt3a ${LIBS_SYSTEM})
target_link_libraries(MQTTVersion paho-mqtt3a paho-mqtt3c ${LIBS_SYSTEM})
SET_TARGET_PROPERTIES(
paho-mqtt3c paho-mqtt3a PROPERTIES
set_target_properties(paho-mqtt3c paho-mqtt3a PROPERTIES
VERSION ${PROJECT_VERSION}
SOVERSION ${PROJECT_VERSION_MAJOR}
COMPILE_DEFINITIONS "PAHO_MQTT_EXPORTS=1")
COMPILE_DEFINITIONS "PAHO_MQTT_EXPORTS=1"
)
IF(${CMAKE_SYSTEM_NAME} STREQUAL "Darwin")
SET(MQTTCLIENT_ENTRY_POINT _MQTTClient_init)
SET(MQTTASYNC_ENTRY_POINT _MQTTAsync_init)
ELSEIF (NOT WIN32)
SET(MQTTCLIENT_ENTRY_POINT MQTTClient_init)
SET(MQTTASYNC_ENTRY_POINT MQTTAsync_init)
ENDIF()
if(${CMAKE_SYSTEM_NAME} STREQUAL "Darwin")
set(MQTTCLIENT_ENTRY_POINT _MQTTClient_init)
set(MQTTASYNC_ENTRY_POINT _MQTTAsync_init)
elseif(NOT WIN32)
set(MQTTCLIENT_ENTRY_POINT MQTTClient_init)
set(MQTTASYNC_ENTRY_POINT MQTTAsync_init)
endif()
IF (NOT WIN32)
SET_TARGET_PROPERTIES(
paho-mqtt3c PROPERTIES
LINK_FLAGS "-Wl,-init,${MQTTCLIENT_ENTRY_POINT}")
SET_TARGET_PROPERTIES(
paho-mqtt3a PROPERTIES
LINK_FLAGS "-Wl,-init,${MQTTASYNC_ENTRY_POINT}")
ENDIF()
if(NOT WIN32)
set_target_properties(paho-mqtt3c PROPERTIES
LINK_FLAGS "-Wl,-init,${MQTTCLIENT_ENTRY_POINT}"
)
set_target_properties(paho-mqtt3a PROPERTIES
LINK_FLAGS "-Wl,-init,${MQTTASYNC_ENTRY_POINT}"
)
endif()
FOREACH(TARGET paho-mqtt3c paho-mqtt3a)
TARGET_INCLUDE_DIRECTORIES(${TARGET}
foreach(TARGET paho-mqtt3c paho-mqtt3a)
target_include_directories(${TARGET}
PUBLIC
$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>
PRIVATE
${CMAKE_BINARY_DIR})
ENDFOREACH()
endforeach()
INSTALL(TARGETS paho-mqtt3c paho-mqtt3a
install(TARGETS paho-mqtt3c paho-mqtt3a
EXPORT eclipse-paho-mqtt-cTargets
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
INSTALL(TARGETS MQTTVersion
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
ENDIF()
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
)
IF (PAHO_BUILD_STATIC)
ADD_LIBRARY(paho-mqtt3c-static STATIC $<TARGET_OBJECTS:common_obj_static> MQTTClient.c)
ADD_LIBRARY(paho-mqtt3a-static STATIC $<TARGET_OBJECTS:common_obj_static> MQTTAsync.c MQTTAsyncUtils.c)
install(TARGETS MQTTVersion
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
)
endif()
TARGET_LINK_LIBRARIES(paho-mqtt3c-static ${LIBS_SYSTEM})
TARGET_LINK_LIBRARIES(paho-mqtt3a-static ${LIBS_SYSTEM})
IF (NOT WIN32)
SET_TARGET_PROPERTIES(paho-mqtt3c-static PROPERTIES OUTPUT_NAME paho-mqtt3c)
SET_TARGET_PROPERTIES(paho-mqtt3a-static PROPERTIES OUTPUT_NAME paho-mqtt3a)
ENDIF()
SET_TARGET_PROPERTIES(
paho-mqtt3c-static paho-mqtt3a-static PROPERTIES
if(PAHO_BUILD_STATIC)
add_library(paho-mqtt3c-static STATIC
$<TARGET_OBJECTS:common_obj_static>
MQTTClient.c
)
add_library(paho-mqtt3a-static STATIC
$<TARGET_OBJECTS:common_obj_static>
MQTTAsync.c
MQTTAsyncUtils.c
)
target_link_libraries(paho-mqtt3c-static ${LIBS_SYSTEM})
target_link_libraries(paho-mqtt3a-static ${LIBS_SYSTEM})
if(NOT WIN32)
set_target_properties(paho-mqtt3c-static PROPERTIES OUTPUT_NAME paho-mqtt3c)
set_target_properties(paho-mqtt3a-static PROPERTIES OUTPUT_NAME paho-mqtt3a)
endif()
set_target_properties(paho-mqtt3c-static paho-mqtt3a-static PROPERTIES
VERSION ${PROJECT_VERSION}
SOVERSION ${PROJECT_VERSION_MAJOR}
COMPILE_DEFINITIONS "PAHO_MQTT_STATIC=1")
COMPILE_DEFINITIONS "PAHO_MQTT_STATIC=1"
)
FOREACH(TARGET paho-mqtt3c-static paho-mqtt3a-static)
TARGET_INCLUDE_DIRECTORIES(${TARGET}
foreach(TARGET paho-mqtt3c-static paho-mqtt3a-static)
target_include_directories(${TARGET}
PUBLIC
$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>
PRIVATE
${CMAKE_BINARY_DIR})
ENDFOREACH()
endforeach()
IF (NOT PAHO_BUILD_SHARED)
INSTALL(TARGETS paho-mqtt3c-static paho-mqtt3a-static
if(NOT PAHO_BUILD_SHARED)
install(TARGETS paho-mqtt3c-static paho-mqtt3a-static
EXPORT eclipse-paho-mqtt-cTargets
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
ELSE()
INSTALL(TARGETS paho-mqtt3c-static paho-mqtt3a-static
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
ENDIF()
ENDIF()
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
)
else()
install(TARGETS paho-mqtt3c-static paho-mqtt3a-static
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
)
endif()
endif()
INSTALL(FILES MQTTAsync.h MQTTClient.h MQTTClientPersistence.h MQTTProperties.h MQTTReasonCodes.h MQTTSubscribeOpts.h MQTTExportDeclarations.h
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
install(
FILES
MQTTAsync.h
MQTTClient.h
MQTTClientPersistence.h
MQTTProperties.h
MQTTReasonCodes.h
MQTTSubscribeOpts.h
MQTTExportDeclarations.h
DESTINATION
${CMAKE_INSTALL_INCLUDEDIR}
)
IF (PAHO_WITH_SSL)
SET(OPENSSL_ROOT_DIR "" CACHE PATH "Directory containing OpenSSL libraries and includes")
if(PAHO_WITH_SSL)
set(OPENSSL_ROOT_DIR "" CACHE PATH "Directory containing OpenSSL libraries and includes")
find_package(OpenSSL REQUIRED)
IF (PAHO_BUILD_SHARED)
if(PAHO_BUILD_SHARED)
## common compilation for libpaho-mqtt3cs and libpaho-mqtt3as
## Note: SSL libraries must be recompiled due ifdefs
ADD_LIBRARY(common_ssl_obj OBJECT ${common_src})
TARGET_INCLUDE_DIRECTORIES(common_ssl_obj PUBLIC ${OPENSSL_INCLUDE_DIR})
SET_PROPERTY(TARGET common_ssl_obj PROPERTY POSITION_INDEPENDENT_CODE ON)
SET_PROPERTY(TARGET common_ssl_obj PROPERTY COMPILE_DEFINITIONS "OPENSSL=1;PAHO_MQTT_EXPORTS=1")
## Note: SSL libraries must be recompiled due to ifdefs
add_library(common_ssl_obj OBJECT ${common_src})
target_include_directories(common_ssl_obj PUBLIC ${OPENSSL_INCLUDE_DIR})
ADD_LIBRARY(paho-mqtt3cs SHARED $<TARGET_OBJECTS:common_ssl_obj> MQTTClient.c SSLSocket.c)
ADD_LIBRARY(paho-mqtt3as SHARED $<TARGET_OBJECTS:common_ssl_obj> MQTTAsync.c MQTTAsyncUtils.c SSLSocket.c)
set_property(TARGET common_ssl_obj PROPERTY
POSITION_INDEPENDENT_CODE ON
)
set_property(TARGET common_ssl_obj PROPERTY
COMPILE_DEFINITIONS "OPENSSL=1;PAHO_MQTT_EXPORTS=1"
)
SET_TARGET_PROPERTIES(
paho-mqtt3cs paho-mqtt3as PROPERTIES
add_library(paho-mqtt3cs SHARED
$<TARGET_OBJECTS:common_ssl_obj>
MQTTClient.c
SSLSocket.c
)
add_library(paho-mqtt3as SHARED
$<TARGET_OBJECTS:common_ssl_obj>
MQTTAsync.c
MQTTAsyncUtils.c
SSLSocket.c
)
set_target_properties(paho-mqtt3cs paho-mqtt3as PROPERTIES
VERSION ${PROJECT_VERSION}
SOVERSION ${PROJECT_VERSION_MAJOR}
COMPILE_DEFINITIONS "OPENSSL=1;PAHO_MQTT_EXPORTS=1")
COMPILE_DEFINITIONS "OPENSSL=1;PAHO_MQTT_EXPORTS=1"
)
IF(${CMAKE_SYSTEM_NAME} STREQUAL "Darwin")
SET(MQTTCLIENT_ENTRY_POINT _MQTTClient_init)
SET(MQTTASYNC_ENTRY_POINT _MQTTAsync_init)
ELSEIF (NOT WIN32)
SET(MQTTCLIENT_ENTRY_POINT MQTTClient_init)
SET(MQTTASYNC_ENTRY_POINT MQTTAsync_init)
ENDIF()
if(${CMAKE_SYSTEM_NAME} STREQUAL "Darwin")
set(MQTTCLIENT_ENTRY_POINT _MQTTClient_init)
set(MQTTASYNC_ENTRY_POINT _MQTTAsync_init)
elseif(NOT WIN32)
set(MQTTCLIENT_ENTRY_POINT MQTTClient_init)
set(MQTTASYNC_ENTRY_POINT MQTTAsync_init)
endif()
IF (NOT WIN32)
SET_TARGET_PROPERTIES(
paho-mqtt3cs PROPERTIES
LINK_FLAGS "-Wl,-init,${MQTTCLIENT_ENTRY_POINT}")
SET_TARGET_PROPERTIES(
paho-mqtt3as PROPERTIES
if(NOT WIN32)
set_target_properties(paho-mqtt3cs PROPERTIES
LINK_FLAGS "-Wl,-init,${MQTTCLIENT_ENTRY_POINT}"
)
set_target_properties(paho-mqtt3as PROPERTIES
LINK_FLAGS "-Wl,-init,${MQTTASYNC_ENTRY_POINT}")
ENDIF()
endif()
FOREACH(TARGET paho-mqtt3cs paho-mqtt3as)
TARGET_INCLUDE_DIRECTORIES(${TARGET}
foreach(TARGET paho-mqtt3cs paho-mqtt3as)
target_include_directories(${TARGET}
PUBLIC
$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>
PRIVATE
${CMAKE_BINARY_DIR})
TARGET_LINK_LIBRARIES(${TARGET}
${CMAKE_BINARY_DIR}
)
target_link_libraries(${TARGET}
PUBLIC
OpenSSL::SSL OpenSSL::Crypto ${LIBS_SYSTEM})
ENDFOREACH()
INSTALL(TARGETS paho-mqtt3cs paho-mqtt3as
OpenSSL::SSL OpenSSL::Crypto ${LIBS_SYSTEM}
)
endforeach()
install(TARGETS paho-mqtt3cs paho-mqtt3as
EXPORT eclipse-paho-mqtt-cTargets
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
ENDIF()
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
)
endif()
IF (PAHO_BUILD_STATIC)
if(PAHO_BUILD_STATIC)
## common compilation for libpaho-mqtt3cs and libpaho-mqtt3as
## Note: SSL libraries must be recompiled due ifdefs
ADD_LIBRARY(common_ssl_obj_static OBJECT ${common_src})
TARGET_INCLUDE_DIRECTORIES(common_ssl_obj_static PUBLIC ${OPENSSL_INCLUDE_DIR})
SET_PROPERTY(TARGET common_ssl_obj_static PROPERTY POSITION_INDEPENDENT_CODE ON)
SET_PROPERTY(TARGET common_ssl_obj_static PROPERTY COMPILE_DEFINITIONS "OPENSSL=1;PAHO_MQTT_STATIC=1")
add_library(common_ssl_obj_static OBJECT ${common_src})
target_include_directories(common_ssl_obj_static PUBLIC ${OPENSSL_INCLUDE_DIR})
ADD_LIBRARY(paho-mqtt3cs-static STATIC $<TARGET_OBJECTS:common_ssl_obj_static> MQTTClient.c SSLSocket.c)
ADD_LIBRARY(paho-mqtt3as-static STATIC $<TARGET_OBJECTS:common_ssl_obj_static> MQTTAsync.c MQTTAsyncUtils.c SSLSocket.c)
set_property(TARGET common_ssl_obj_static PROPERTY
POSITION_INDEPENDENT_CODE ON
)
set_property(TARGET common_ssl_obj_static PROPERTY
COMPILE_DEFINITIONS "OPENSSL=1;PAHO_MQTT_STATIC=1"
)
SET_TARGET_PROPERTIES(
paho-mqtt3cs-static paho-mqtt3as-static PROPERTIES
add_library(paho-mqtt3cs-static STATIC
$<TARGET_OBJECTS:common_ssl_obj_static>
MQTTClient.c
SSLSocket.c
)
add_library(paho-mqtt3as-static STATIC
$<TARGET_OBJECTS:common_ssl_obj_static>
MQTTAsync.c
MQTTAsyncUtils.c
SSLSocket.c
)
set_target_properties(paho-mqtt3cs-static paho-mqtt3as-static PROPERTIES
VERSION ${PROJECT_VERSION}
SOVERSION ${PROJECT_VERSION_MAJOR}
COMPILE_DEFINITIONS "OPENSSL=1;PAHO_MQTT_STATIC=1")
IF (NOT WIN32)
SET_TARGET_PROPERTIES(paho-mqtt3cs-static PROPERTIES OUTPUT_NAME paho-mqtt3cs)
SET_TARGET_PROPERTIES(paho-mqtt3as-static PROPERTIES OUTPUT_NAME paho-mqtt3as)
ENDIF()
COMPILE_DEFINITIONS "OPENSSL=1;PAHO_MQTT_STATIC=1"
)
IF(${CMAKE_SYSTEM_NAME} STREQUAL "Darwin")
SET(MQTTCLIENT_ENTRY_POINT _MQTTClient_init)
SET(MQTTASYNC_ENTRY_POINT _MQTTAsync_init)
ELSEIF (NOT WIN32)
SET(MQTTCLIENT_ENTRY_POINT MQTTClient_init)
SET(MQTTASYNC_ENTRY_POINT MQTTAsync_init)
ENDIF()
if(NOT WIN32)
set_target_properties(paho-mqtt3cs-static PROPERTIES OUTPUT_NAME paho-mqtt3cs)
set_target_properties(paho-mqtt3as-static PROPERTIES OUTPUT_NAME paho-mqtt3as)
endif()
IF (NOT WIN32)
SET_TARGET_PROPERTIES(
paho-mqtt3cs-static PROPERTIES
LINK_FLAGS "-Wl,-init,${MQTTCLIENT_ENTRY_POINT}")
SET_TARGET_PROPERTIES(
paho-mqtt3as-static PROPERTIES
LINK_FLAGS "-Wl,-init,${MQTTASYNC_ENTRY_POINT}")
ENDIF()
if(${CMAKE_SYSTEM_NAME} STREQUAL "Darwin")
set(MQTTCLIENT_ENTRY_POINT _MQTTClient_init)
set(MQTTASYNC_ENTRY_POINT _MQTTAsync_init)
elseif(NOT WIN32)
set(MQTTCLIENT_ENTRY_POINT MQTTClient_init)
set(MQTTASYNC_ENTRY_POINT MQTTAsync_init)
endif()
IF (NOT PAHO_BUILD_SHARED)
INSTALL(TARGETS paho-mqtt3cs-static paho-mqtt3as-static
if(NOT WIN32)
set_target_properties(paho-mqtt3cs-static PROPERTIES
LINK_FLAGS "-Wl,-init,${MQTTCLIENT_ENTRY_POINT}"
)
set_target_properties(paho-mqtt3as-static PROPERTIES
LINK_FLAGS "-Wl,-init,${MQTTASYNC_ENTRY_POINT}"
)
endif()
if(NOT PAHO_BUILD_SHARED)
install(TARGETS paho-mqtt3cs-static paho-mqtt3as-static
EXPORT eclipse-paho-mqtt-cTargets
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
ELSE()
INSTALL(TARGETS paho-mqtt3cs-static paho-mqtt3as-static
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
ENDIF()
FOREACH(TARGET paho-mqtt3cs-static paho-mqtt3as-static)
TARGET_INCLUDE_DIRECTORIES(${TARGET}
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
)
else()
install(TARGETS paho-mqtt3cs-static paho-mqtt3as-static
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
)
endif()
foreach(TARGET paho-mqtt3cs-static paho-mqtt3as-static)
target_include_directories(${TARGET}
PUBLIC
$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>
PRIVATE
${CMAKE_BINARY_DIR})
TARGET_LINK_LIBRARIES(${TARGET}
PUBLIC
OpenSSL::SSL OpenSSL::Crypto ${LIBS_SYSTEM})
ENDFOREACH()
ENDIF()
ENDIF()
${CMAKE_BINARY_DIR}
)
INSTALL(EXPORT eclipse-paho-mqtt-cTargets
target_link_libraries(${TARGET}
PUBLIC
OpenSSL::SSL OpenSSL::Crypto ${LIBS_SYSTEM}
)
endforeach()
endif()
endif()
install(EXPORT eclipse-paho-mqtt-cTargets
FILE eclipse-paho-mqtt-cConfig.cmake
NAMESPACE eclipse-paho-mqtt-c::
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/eclipse-paho-mqtt-c)
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/eclipse-paho-mqtt-c
)
INCLUDE(CMakePackageConfigHelpers)
WRITE_BASIC_PACKAGE_VERSION_FILE("eclipse-paho-mqtt-cConfigVersion.cmake"
include(CMakePackageConfigHelpers)
write_basic_package_version_file("eclipse-paho-mqtt-cConfigVersion.cmake"
VERSION ${CLIENT_VERSION}
COMPATIBILITY SameMajorVersion)
INSTALL(FILES
COMPATIBILITY SameMajorVersion
)
install(
FILES
"${CMAKE_CURRENT_BINARY_DIR}/eclipse-paho-mqtt-cConfigVersion.cmake"
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/eclipse-paho-mqtt-c)
DESTINATION
${CMAKE_INSTALL_LIBDIR}/cmake/eclipse-paho-mqtt-c
)
# Base64 test
ADD_EXECUTABLE( Base64Test EXCLUDE_FROM_ALL Base64.c Base64.h )
TARGET_COMPILE_DEFINITIONS( Base64Test PUBLIC "-DBASE64_TEST" )
IF (PAHO_WITH_SSL)
ADD_EXECUTABLE( Base64TestOpenSSL EXCLUDE_FROM_ALL Base64.c Base64.h )
TARGET_LINK_LIBRARIES( Base64TestOpenSSL OpenSSL::SSL OpenSSL::Crypto)
TARGET_COMPILE_DEFINITIONS( Base64TestOpenSSL PUBLIC "-DBASE64_TEST -DOPENSSL=1" )
ENDIF (PAHO_WITH_SSL)
add_executable(Base64Test EXCLUDE_FROM_ALL Base64.c Base64.h)
target_compile_definitions(Base64Test PUBLIC "-DBASE64_TEST")
if(PAHO_WITH_SSL)
add_executable(Base64TestOpenSSL EXCLUDE_FROM_ALL Base64.c Base64.h )
target_link_libraries(Base64TestOpenSSL OpenSSL::SSL OpenSSL::Crypto)
target_compile_definitions(Base64TestOpenSSL PUBLIC "-DBASE64_TEST -DOPENSSL=1" )
endif()
# SHA1 test
ADD_EXECUTABLE( Sha1Test EXCLUDE_FROM_ALL SHA1.c SHA1.h )
TARGET_COMPILE_DEFINITIONS( Sha1Test PUBLIC "-DSHA1_TEST" )
IF (PAHO_WITH_SSL)
ADD_EXECUTABLE( Sha1TestOpenSSL EXCLUDE_FROM_ALL SHA1.c SHA1.h )
TARGET_LINK_LIBRARIES( Sha1TestOpenSSL OpenSSL::SSL OpenSSL::Crypto)
TARGET_COMPILE_DEFINITIONS( Sha1TestOpenSSL PUBLIC "-DSHA1_TEST -DOPENSSL=1" )
ENDIF (PAHO_WITH_SSL)
add_executable(Sha1Test EXCLUDE_FROM_ALL SHA1.c SHA1.h)
target_compile_definitions(Sha1Test PUBLIC "-DSHA1_TEST")
if(PAHO_WITH_SSL)
add_executable(Sha1TestOpenSSL EXCLUDE_FROM_ALL SHA1.c SHA1.h)
target_link_libraries(Sha1TestOpenSSL OpenSSL::SSL OpenSSL::Crypto)
target_compile_definitions(Sha1TestOpenSSL PUBLIC "-DSHA1_TEST -DOPENSSL=1" )
endif()

View File

@ -1,7 +1,17 @@
/*******************************************************************************
* Version information for Eclipse Paho MQTT C.
*******************************************************************************/
#ifndef VERSIONINFO_H
#define VERSIONINFO_H
#define BUILD_TIMESTAMP "@BUILD_TIMESTAMP@"
#define CLIENT_VERSION "@CLIENT_VERSION@"
#define CLIENT_VERSION "@PROJECT_VERSION@"
#define PAHO_MQTT_C_VERSION "@PROJECT_VERSION@"
#define PAHO_MQTT_C_VERSION_MAJOR @PROJECT_VERSION_MAJOR@
#define PAHO_MQTT_C_VERSION_MINOR @PROJECT_VERSION_MINOR@
#define PAHO_MQTT_C_VERSION_PATCH @PROJECT_VERSION_PATCH@
#endif /* VERSIONINFO_H */

View File

@ -15,55 +15,52 @@
# Ian Craggs - update sample names
#*******************************************************************************/
# Note: on OS X you should install XCode and the associated command-line tools
## compilation/linkage settings
INCLUDE_DIRECTORIES(
include_directories(
.
${PROJECT_SOURCE_DIR}/src
${PROJECT_BINARY_DIR}
)
)
IF (WIN32)
ADD_DEFINITIONS(/DCMAKE_BUILD /D_CRT_SECURE_NO_DEPRECATE)
ENDIF()
if(WIN32)
add_definitions(/DCMAKE_BUILD /D_CRT_SECURE_NO_DEPRECATE)
endif()
# sample files c
IF (PAHO_BUILD_SHARED)
ADD_EXECUTABLE(paho_c_pub paho_c_pub.c pubsub_opts.c)
ADD_EXECUTABLE(paho_c_sub paho_c_sub.c pubsub_opts.c)
ADD_EXECUTABLE(paho_cs_pub paho_cs_pub.c pubsub_opts.c)
ADD_EXECUTABLE(paho_cs_sub paho_cs_sub.c pubsub_opts.c)
if(PAHO_BUILD_SHARED)
foreach(TARGET paho_c_pub paho_c_sub paho_cs_pub paho_cs_sub)
add_executable(${TARGET} ${TARGET}.c pubsub_opts.c)
set_target_properties(${TARGET} PROPERTIES
COMPILE_DEFINITIONS "PAHO_MQTT_IMPORTS=1"
)
endforeach()
SET_TARGET_PROPERTIES(
paho_c_pub paho_c_sub paho_cs_pub paho_cs_sub PROPERTIES
COMPILE_DEFINITIONS "PAHO_MQTT_IMPORTS=1")
target_link_libraries(paho_c_pub paho-mqtt3as)
target_link_libraries(paho_c_sub paho-mqtt3as)
TARGET_LINK_LIBRARIES(paho_c_pub paho-mqtt3as)
TARGET_LINK_LIBRARIES(paho_c_sub paho-mqtt3as)
TARGET_LINK_LIBRARIES(paho_cs_pub paho-mqtt3cs)
TARGET_LINK_LIBRARIES(paho_cs_sub paho-mqtt3cs)
target_link_libraries(paho_cs_pub paho-mqtt3cs)
target_link_libraries(paho_cs_sub paho-mqtt3cs)
ADD_EXECUTABLE(MQTTAsync_subscribe MQTTAsync_subscribe.c)
ADD_EXECUTABLE(MQTTAsync_publish MQTTAsync_publish.c)
ADD_EXECUTABLE(MQTTAsync_publish_time MQTTAsync_publish_time.c)
ADD_EXECUTABLE(MQTTClient_subscribe MQTTClient_subscribe.c)
ADD_EXECUTABLE(MQTTClient_publish MQTTClient_publish.c)
ADD_EXECUTABLE(MQTTClient_publish_async MQTTClient_publish_async.c)
foreach(TARGET MQTTAsync_subscribe MQTTAsync_publish MQTTAsync_publish_time
MQTTClient_subscribe MQTTClient_publish MQTTClient_publish_async)
add_executable(${TARGET} ${TARGET}.c)
set_target_properties(${TARGET} PROPERTIES
COMPILE_DEFINITIONS "PAHO_MQTT_IMPORTS=1"
)
endforeach()
SET_TARGET_PROPERTIES(
MQTTAsync_subscribe MQTTAsync_publish MQTTAsync_publish_time MQTTClient_subscribe MQTTClient_publish MQTTClient_publish_async PROPERTIES
COMPILE_DEFINITIONS "PAHO_MQTT_IMPORTS=1")
target_link_libraries(MQTTAsync_subscribe paho-mqtt3a)
target_link_libraries(MQTTAsync_publish paho-mqtt3a)
target_link_libraries(MQTTAsync_publish_time paho-mqtt3a)
TARGET_LINK_LIBRARIES(MQTTAsync_subscribe paho-mqtt3a)
TARGET_LINK_LIBRARIES(MQTTAsync_publish paho-mqtt3a)
TARGET_LINK_LIBRARIES(MQTTAsync_publish_time paho-mqtt3a)
TARGET_LINK_LIBRARIES(MQTTClient_subscribe paho-mqtt3c)
TARGET_LINK_LIBRARIES(MQTTClient_publish paho-mqtt3c)
TARGET_LINK_LIBRARIES(MQTTClient_publish_async paho-mqtt3c)
target_link_libraries(MQTTClient_subscribe paho-mqtt3c)
target_link_libraries(MQTTClient_publish paho-mqtt3c)
target_link_libraries(MQTTClient_publish_async paho-mqtt3c)
INSTALL(TARGETS paho_c_sub
install(
TARGETS
paho_c_sub
paho_c_pub
paho_cs_sub
paho_cs_pub
@ -75,26 +72,30 @@ INSTALL(TARGETS paho_c_sub
MQTTClient_publish_async
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR})
ENDIF()
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
)
endif()
IF (PAHO_BUILD_STATIC)
ADD_EXECUTABLE(paho_c_pub_static paho_c_pub.c pubsub_opts.c)
ADD_EXECUTABLE(paho_c_sub_static paho_c_sub.c pubsub_opts.c)
ADD_EXECUTABLE(paho_cs_pub_static paho_cs_pub.c pubsub_opts.c)
ADD_EXECUTABLE(paho_cs_sub_static paho_cs_sub.c pubsub_opts.c)
if(PAHO_BUILD_STATIC)
foreach(TARGET paho_c_pub paho_c_sub paho_cs_pub paho_cs_sub)
add_executable(${TARGET}_static ${TARGET}.c pubsub_opts.c)
endforeach()
TARGET_LINK_LIBRARIES(paho_c_pub_static paho-mqtt3as-static)
TARGET_LINK_LIBRARIES(paho_c_sub_static paho-mqtt3as-static)
TARGET_LINK_LIBRARIES(paho_cs_pub_static paho-mqtt3cs-static)
TARGET_LINK_LIBRARIES(paho_cs_sub_static paho-mqtt3cs-static)
target_link_libraries(paho_c_pub_static paho-mqtt3as-static)
target_link_libraries(paho_c_sub_static paho-mqtt3as-static)
INSTALL(TARGETS paho_c_sub_static
target_link_libraries(paho_cs_pub_static paho-mqtt3cs-static)
target_link_libraries(paho_cs_sub_static paho-mqtt3cs-static)
install(
TARGETS
paho_c_sub_static
paho_c_pub_static
paho_cs_sub_static
paho_cs_pub_static
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR})
ENDIF()
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
)
endif()

File diff suppressed because it is too large Load Diff

View File

@ -1,5 +1,5 @@
cmake_minimum_required(VERSION 3.5)
project(test_package C)
cmake_minimum_required(VERSION 2.8.11)
include(${CMAKE_BINARY_DIR}/conanbuildinfo.cmake)
conan_basic_setup()