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) 2015, 2023 logi.cals GmbH and others
# Copyright (c) 2023 Frank Pagliughi <fpagliughi@mindspring.com>
# #
# All rights reserved. This program and the accompanying materials # All rights reserved. This program and the accompanying materials
# are made available under the terms of the Eclipse Public License v2.0 # 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 # 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 VERSION 1.3.13
LANGUAGES C LANGUAGES C
) )
MESSAGE(STATUS "CMake version: " ${CMAKE_VERSION}) message(STATUS "CMake version: " ${CMAKE_VERSION})
MESSAGE(STATUS "CMake system name: " ${CMAKE_SYSTEM_NAME}) message(STATUS "CMake system name: " ${CMAKE_SYSTEM_NAME})
SET(CMAKE_SCRIPTS "${CMAKE_SOURCE_DIR}/cmake") set(CMAKE_SCRIPTS "${CMAKE_SOURCE_DIR}/cmake")
SET(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake/modules") set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake/modules")
## Project Version ## Project Version
## Previously we read in the version from these files, but now we use the ## 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.major PAHO_VERSION_MAJOR)
file(READ version.minor PAHO_VERSION_MINOR) file(READ version.minor PAHO_VERSION_MINOR)
file(READ version.patch PAHO_VERSION_PATCH) 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)) if(NOT (CLIENT_VERSION VERSION_EQUAL PROJECT_VERSION))
message(FATAL_ERROR "CMake project version does NOT match. CMake: ${PROJECT_VERSION}, Files: ${CLIENT_VERSION}") message(FATAL_ERROR "CMake project version does NOT match. CMake: ${PROJECT_VERSION}, Files: ${CLIENT_VERSION}")
endif() endif()
INCLUDE(GNUInstallDirs) include(GNUInstallDirs)
STRING(TIMESTAMP BUILD_TIMESTAMP UTC) string(TIMESTAMP BUILD_TIMESTAMP UTC)
MESSAGE(STATUS "Timestamp is ${BUILD_TIMESTAMP}") message(STATUS "Timestamp is ${BUILD_TIMESTAMP}")
IF(WIN32) if(WIN32)
ADD_DEFINITIONS(-D_CRT_SECURE_NO_DEPRECATE -DWIN32_LEAN_AND_MEAN) add_definitions(-D_CRT_SECURE_NO_DEPRECATE -DWIN32_LEAN_AND_MEAN)
ELSEIF(${CMAKE_SYSTEM_NAME} STREQUAL "Darwin") elseif(${CMAKE_SYSTEM_NAME} STREQUAL "Darwin")
ADD_DEFINITIONS(-DOSX) add_definitions(-DOSX)
ENDIF() endif()
## build options ## 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) option(PAHO_WITH_SSL "Flag that defines whether to build ssl-enabled binaries too. " FALSE)
ADD_DEFINITIONS(-DHIGH_PERFORMANCE=1) option(PAHO_WITH_LIBUUID "Flag that defines whether libuuid or a custom uuid implementation should be used" FALSE)
ENDIF() 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) if(PAHO_HIGH_PERFORMANCE)
ADD_DEFINITIONS(-DUSE_SELECT=1) add_definitions(-DHIGH_PERFORMANCE=1)
ENDIF() endif()
IF (PAHO_WITH_LIBUUID) if(PAHO_USE_SELECT)
ADD_DEFINITIONS(-DUSE_LIBUUID=1) add_definitions(-DUSE_SELECT=1)
ENDIF() endif()
IF (NOT PAHO_BUILD_SHARED AND NOT PAHO_BUILD_STATIC) if(PAHO_WITH_LIBUUID)
MESSAGE(FATAL_ERROR "You must set either PAHO_BUILD_SHARED, PAHO_BUILD_STATIC, or both") add_definitions(-DUSE_LIBUUID=1)
ENDIF() endif()
IF (PAHO_BUILD_SAMPLES AND NOT PAHO_WITH_SSL) if(NOT PAHO_BUILD_SHARED AND NOT PAHO_BUILD_STATIC)
MESSAGE(FATAL_ERROR "You must build with SSL to build the samples") message(FATAL_ERROR "You must set either PAHO_BUILD_SHARED, PAHO_BUILD_STATIC, or both")
ENDIF() endif()
IF(PAHO_BUILD_DEB_PACKAGE) if(PAHO_BUILD_SAMPLES AND NOT PAHO_WITH_SSL)
set(CMAKE_INSTALL_DOCDIR share/doc/libpaho-mqtt) message(FATAL_ERROR "You must build with SSL to build the samples")
set(CPACK_DEBIAN_PACKAGE_GENERATE_SHLIBS ON) endif()
set(CPACK_DEBIAN_PACKAGE_GENERATE_SHLIBS_POLICY ">=")
ENDIF()
ADD_SUBDIRECTORY(src) if(PAHO_BUILD_DEB_PACKAGE)
IF(PAHO_BUILD_SAMPLES) set(CMAKE_INSTALL_DOCDIR share/doc/libpaho-mqtt)
ADD_SUBDIRECTORY(src/samples) set(CPACK_DEBIAN_PACKAGE_GENERATE_SHLIBS ON)
ENDIF() set(CPACK_DEBIAN_PACKAGE_GENERATE_SHLIBS_POLICY ">=")
endif()
IF(PAHO_BUILD_DOCUMENTATION) add_subdirectory(src)
ADD_SUBDIRECTORY(doc)
ENDIF()
IF (PAHO_ENABLE_CPACK) if(PAHO_BUILD_SAMPLES)
### packaging settings add_subdirectory(src/samples)
FILE(GLOB samples "src/samples/*.c") endif()
INSTALL(FILES ${samples} DESTINATION ${CMAKE_INSTALL_DOCDIR}/samples)
SET(CPACK_PACKAGE_VENDOR "Eclipse Paho") if(PAHO_BUILD_DOCUMENTATION)
SET(CPACK_PACKAGE_NAME "Eclipse-Paho-MQTT-C") add_subdirectory(doc)
INSTALL(FILES CONTRIBUTING.md epl-v20 edl-v10 README.md notice.html DESTINATION ${CMAKE_INSTALL_DOCDIR}) endif()
IF (WIN32) if(PAHO_ENABLE_CPACK)
SET(CPACK_GENERATOR "ZIP") ### packaging settings
ELSEIF(PAHO_BUILD_DEB_PACKAGE) file(GLOB samples "src/samples/*.c")
INSTALL(FILES CONTRIBUTING.md epl-v20 edl-v10 README.md notice.html DESTINATION ${CMAKE_INSTALL_DOCDIR}) install(FILES ${samples} DESTINATION ${CMAKE_INSTALL_DOCDIR}/samples)
SET(CPACK_GENERATOR "DEB") set(CPACK_PACKAGE_VENDOR "Eclipse Paho")
CONFIGURE_FILE(${CMAKE_SCRIPTS}/CPackDebConfig.cmake.in set(CPACK_PACKAGE_NAME "Eclipse-Paho-MQTT-C")
${CMAKE_BINARY_DIR}/CPackDebConfig.cmake @ONLY) install(FILES CONTRIBUTING.md epl-v20 edl-v10 README.md notice.html DESTINATION ${CMAKE_INSTALL_DOCDIR})
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}) if(WIN32)
SET(CPACK_PACKAGE_VERSION_MINOR ${PROJECT_VERSION_MINOR}) set(CPACK_GENERATOR "ZIP")
SET(CPACK_PACKAGE_VERSION_PATCH ${PROJECT_VERSION_PATCH}) elseif(PAHO_BUILD_DEB_PACKAGE)
INCLUDE(CPack) install(FILES CONTRIBUTING.md epl-v20 edl-v10 README.md notice.html DESTINATION ${CMAKE_INSTALL_DOCDIR})
IF(PAHO_ENABLE_TESTING) set(CPACK_GENERATOR "DEB")
ENABLE_TESTING() configure_file(${CMAKE_SCRIPTS}/CPackDebConfig.cmake.in
INCLUDE_DIRECTORIES(test src) ${CMAKE_BINARY_DIR}/CPackDebConfig.cmake @ONLY
ADD_SUBDIRECTORY(test) )
ELSE() set(CPACK_PROJECT_CONFIG_FILE ${CMAKE_BINARY_DIR}/CPackDebConfig.cmake)
INCLUDE_DIRECTORIES(src) else()
ENDIF() 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)
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 # Rainer Poisel - initial version
#*******************************************************************************/ #*******************************************************************************/
# Note: on OS X you should install XCode and the associated command-line tools
### documentation settings ### documentation settings
FIND_PACKAGE(Doxygen) find_package(Doxygen)
IF(NOT DOXYGEN_FOUND) if(NOT DOXYGEN_FOUND)
message(FATAL_ERROR "Doxygen is needed to build the documentation.") message(FATAL_ERROR "Doxygen is needed to build the documentation.")
ENDIF() 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})
CONFIGURE_FILE(${DOXYFILE_IN} ${DOXYFILE} @ONLY) set(DOXYTARGETS)
ADD_CUSTOM_TARGET(${DOXYFILE_SRC}.target file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/doc)
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)
ADD_CUSTOM_TARGET(doc ALL DEPENDS ${DOXYTARGETS}) foreach(DOXYFILE_SRC DoxyfileV3ClientAPI;DoxyfileV3AsyncAPI;DoxyfileV3ClientInternal)
IF (PAHO_ENABLE_CPACK) set(DOXYFILE_IN ${DOXYFILE_SRC}.in)
INSTALL(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/doc/ DESTINATION ${CMAKE_INSTALL_DOCDIR}) set(DOXYFILE ${CMAKE_CURRENT_BINARY_DIR}/${DOXYFILE_SRC})
ELSE()
INSTALL(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/doc DESTINATION ${CMAKE_INSTALL_DOCDIR}) configure_file(${DOXYFILE_IN} ${DOXYFILE} @ONLY)
ENDIF() 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)
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) 2015, 2023 logi.cals GmbH and others
# Copyright (c) 2023, Frank Pagliughi <fpagliughi@mindspring.com>
# #
# All rights reserved. This program and the accompanying materials # All rights reserved. This program and the accompanying materials
# are made available under the terms of the Eclipse Public License v2.0 # are made available under the terms of the Eclipse Public License v2.0
@ -16,16 +17,14 @@
# Ian Craggs - update for MQTTV5 support # Ian Craggs - update for MQTTV5 support
#*******************************************************************************/ #*******************************************************************************/
# Note: on OS X you should install XCode and the associated command-line tools
## compilation/linkage settings ## compilation/linkage settings
CONFIGURE_FILE(VersionInfo.h.in configure_file(VersionInfo.h.in
${CMAKE_BINARY_DIR}/VersionInfo.h ${CMAKE_BINARY_DIR}/VersionInfo.h
@ONLY @ONLY
) )
SET(common_src set(common_src
MQTTTime.c MQTTTime.c
MQTTProtocolClient.c MQTTProtocolClient.c
Clients.c Clients.c
@ -50,290 +49,371 @@ SET(common_src
Proxy.c Proxy.c
) )
IF (NOT PAHO_HIGH_PERFORMANCE) if(NOT PAHO_HIGH_PERFORMANCE)
SET(common_src ${common_src} set(common_src ${common_src}
StackTrace.c StackTrace.c
Heap.c Heap.c
)
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)
# 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()
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
POSITION_INDEPENDENT_CODE ON
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
POSITION_INDEPENDENT_CODE ON
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
)
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
VERSION ${PROJECT_VERSION}
SOVERSION ${PROJECT_VERSION_MAJOR}
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(NOT WIN32)
set_target_properties(paho-mqtt3c PROPERTIES
LINK_FLAGS "-Wl,-init,${MQTTCLIENT_ENTRY_POINT}"
) )
ENDIF() set_target_properties(paho-mqtt3a PROPERTIES
LINK_FLAGS "-Wl,-init,${MQTTASYNC_ENTRY_POINT}"
)
endif()
IF (WIN32) foreach(TARGET paho-mqtt3c paho-mqtt3a)
SET(LIBS_SYSTEM ws2_32 crypt32 RpcRT4) target_include_directories(${TARGET}
ELSEIF (UNIX) PUBLIC
IF(CMAKE_SYSTEM_NAME MATCHES "Linux") $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>
SET(LIBS_SYSTEM c dl pthread rt) $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>
# anl is only available with glibc so check if it is found before using PRIVATE
# it or build will fail on uclibc or musl ${CMAKE_BINARY_DIR})
FIND_LIBRARY(LIB_ANL anl) endforeach()
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
POSITION_INDEPENDENT_CODE ON
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()
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()
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}) install(TARGETS paho-mqtt3c paho-mqtt3a
TARGET_LINK_LIBRARIES(paho-mqtt3a ${LIBS_SYSTEM}) EXPORT eclipse-paho-mqtt-cTargets
TARGET_LINK_LIBRARIES(MQTTVersion paho-mqtt3a paho-mqtt3c ${LIBS_SYSTEM}) ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
)
install(TARGETS MQTTVersion
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
)
endif()
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"
)
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()
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()
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")
find_package(OpenSSL REQUIRED)
if(PAHO_BUILD_SHARED)
## common compilation for libpaho-mqtt3cs and libpaho-mqtt3as
## 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})
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( add_library(paho-mqtt3cs SHARED
paho-mqtt3c paho-mqtt3a PROPERTIES $<TARGET_OBJECTS:common_ssl_obj>
VERSION ${PROJECT_VERSION} MQTTClient.c
SOVERSION ${PROJECT_VERSION_MAJOR} SSLSocket.c
COMPILE_DEFINITIONS "PAHO_MQTT_EXPORTS=1") )
add_library(paho-mqtt3as SHARED
$<TARGET_OBJECTS:common_ssl_obj>
MQTTAsync.c
MQTTAsyncUtils.c
SSLSocket.c
)
IF(${CMAKE_SYSTEM_NAME} STREQUAL "Darwin") set_target_properties(paho-mqtt3cs paho-mqtt3as PROPERTIES
SET(MQTTCLIENT_ENTRY_POINT _MQTTClient_init) VERSION ${PROJECT_VERSION}
SET(MQTTASYNC_ENTRY_POINT _MQTTAsync_init) SOVERSION ${PROJECT_VERSION_MAJOR}
ELSEIF (NOT WIN32) COMPILE_DEFINITIONS "OPENSSL=1;PAHO_MQTT_EXPORTS=1"
SET(MQTTCLIENT_ENTRY_POINT MQTTClient_init) )
SET(MQTTASYNC_ENTRY_POINT MQTTAsync_init)
ENDIF()
IF (NOT WIN32) if(${CMAKE_SYSTEM_NAME} STREQUAL "Darwin")
SET_TARGET_PROPERTIES( set(MQTTCLIENT_ENTRY_POINT _MQTTClient_init)
paho-mqtt3c PROPERTIES set(MQTTASYNC_ENTRY_POINT _MQTTAsync_init)
LINK_FLAGS "-Wl,-init,${MQTTCLIENT_ENTRY_POINT}") elseif(NOT WIN32)
SET_TARGET_PROPERTIES( set(MQTTCLIENT_ENTRY_POINT MQTTClient_init)
paho-mqtt3a PROPERTIES set(MQTTASYNC_ENTRY_POINT MQTTAsync_init)
LINK_FLAGS "-Wl,-init,${MQTTASYNC_ENTRY_POINT}") endif()
ENDIF()
FOREACH(TARGET paho-mqtt3c paho-mqtt3a) if(NOT WIN32)
TARGET_INCLUDE_DIRECTORIES(${TARGET} set_target_properties(paho-mqtt3cs PROPERTIES
PUBLIC LINK_FLAGS "-Wl,-init,${MQTTCLIENT_ENTRY_POINT}"
$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}> )
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}> set_target_properties(paho-mqtt3as PROPERTIES
PRIVATE LINK_FLAGS "-Wl,-init,${MQTTASYNC_ENTRY_POINT}")
${CMAKE_BINARY_DIR}) endif()
ENDFOREACH()
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}
PUBLIC
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()
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"
)
INSTALL(TARGETS paho-mqtt3c paho-mqtt3a add_library(paho-mqtt3cs-static STATIC
EXPORT eclipse-paho-mqtt-cTargets $<TARGET_OBJECTS:common_ssl_obj_static>
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} MQTTClient.c
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} SSLSocket.c
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) )
INSTALL(TARGETS MQTTVersion add_library(paho-mqtt3as-static STATIC
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) $<TARGET_OBJECTS:common_ssl_obj_static>
ENDIF() MQTTAsync.c
MQTTAsyncUtils.c
SSLSocket.c
)
IF (PAHO_BUILD_STATIC) set_target_properties(paho-mqtt3cs-static paho-mqtt3as-static PROPERTIES
ADD_LIBRARY(paho-mqtt3c-static STATIC $<TARGET_OBJECTS:common_obj_static> MQTTClient.c) VERSION ${PROJECT_VERSION}
ADD_LIBRARY(paho-mqtt3a-static STATIC $<TARGET_OBJECTS:common_obj_static> MQTTAsync.c MQTTAsyncUtils.c) SOVERSION ${PROJECT_VERSION_MAJOR}
COMPILE_DEFINITIONS "OPENSSL=1;PAHO_MQTT_STATIC=1"
)
TARGET_LINK_LIBRARIES(paho-mqtt3c-static ${LIBS_SYSTEM}) if(NOT WIN32)
TARGET_LINK_LIBRARIES(paho-mqtt3a-static ${LIBS_SYSTEM}) set_target_properties(paho-mqtt3cs-static PROPERTIES OUTPUT_NAME paho-mqtt3cs)
IF (NOT WIN32) set_target_properties(paho-mqtt3as-static PROPERTIES OUTPUT_NAME paho-mqtt3as)
SET_TARGET_PROPERTIES(paho-mqtt3c-static PROPERTIES OUTPUT_NAME paho-mqtt3c) endif()
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")
FOREACH(TARGET paho-mqtt3c-static paho-mqtt3a-static) if(${CMAKE_SYSTEM_NAME} STREQUAL "Darwin")
TARGET_INCLUDE_DIRECTORIES(${TARGET} set(MQTTCLIENT_ENTRY_POINT _MQTTClient_init)
PUBLIC set(MQTTASYNC_ENTRY_POINT _MQTTAsync_init)
$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}> elseif(NOT WIN32)
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}> set(MQTTCLIENT_ENTRY_POINT MQTTClient_init)
PRIVATE set(MQTTASYNC_ENTRY_POINT MQTTAsync_init)
${CMAKE_BINARY_DIR}) endif()
ENDFOREACH()
IF (NOT PAHO_BUILD_SHARED) if(NOT WIN32)
INSTALL(TARGETS paho-mqtt3c-static paho-mqtt3a-static set_target_properties(paho-mqtt3cs-static PROPERTIES
EXPORT eclipse-paho-mqtt-cTargets LINK_FLAGS "-Wl,-init,${MQTTCLIENT_ENTRY_POINT}"
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} )
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} set_target_properties(paho-mqtt3as-static PROPERTIES
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) LINK_FLAGS "-Wl,-init,${MQTTASYNC_ENTRY_POINT}"
ELSE() )
INSTALL(TARGETS paho-mqtt3c-static paho-mqtt3a-static endif()
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
ENDIF()
ENDIF()
INSTALL(FILES MQTTAsync.h MQTTClient.h MQTTClientPersistence.h MQTTProperties.h MQTTReasonCodes.h MQTTSubscribeOpts.h MQTTExportDeclarations.h if(NOT PAHO_BUILD_SHARED)
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) 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()
IF (PAHO_WITH_SSL) foreach(TARGET paho-mqtt3cs-static paho-mqtt3as-static)
SET(OPENSSL_ROOT_DIR "" CACHE PATH "Directory containing OpenSSL libraries and includes") target_include_directories(${TARGET}
find_package(OpenSSL REQUIRED) PUBLIC
$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>
PRIVATE
${CMAKE_BINARY_DIR}
)
IF (PAHO_BUILD_SHARED) target_link_libraries(${TARGET}
## common compilation for libpaho-mqtt3cs and libpaho-mqtt3as PUBLIC
## Note: SSL libraries must be recompiled due ifdefs OpenSSL::SSL OpenSSL::Crypto ${LIBS_SYSTEM}
ADD_LIBRARY(common_ssl_obj OBJECT ${common_src}) )
TARGET_INCLUDE_DIRECTORIES(common_ssl_obj PUBLIC ${OPENSSL_INCLUDE_DIR}) endforeach()
SET_PROPERTY(TARGET common_ssl_obj PROPERTY POSITION_INDEPENDENT_CODE ON) endif()
SET_PROPERTY(TARGET common_ssl_obj PROPERTY COMPILE_DEFINITIONS "OPENSSL=1;PAHO_MQTT_EXPORTS=1") endif()
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")
IF(${CMAKE_SYSTEM_NAME} STREQUAL "Darwin") install(EXPORT eclipse-paho-mqtt-cTargets
SET(MQTTCLIENT_ENTRY_POINT _MQTTClient_init) FILE eclipse-paho-mqtt-cConfig.cmake
SET(MQTTASYNC_ENTRY_POINT _MQTTAsync_init) NAMESPACE eclipse-paho-mqtt-c::
ELSEIF (NOT WIN32) DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/eclipse-paho-mqtt-c
SET(MQTTCLIENT_ENTRY_POINT MQTTClient_init) )
SET(MQTTASYNC_ENTRY_POINT MQTTAsync_init)
ENDIF()
IF (NOT WIN32) include(CMakePackageConfigHelpers)
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()
FOREACH(TARGET paho-mqtt3cs paho-mqtt3as) write_basic_package_version_file("eclipse-paho-mqtt-cConfigVersion.cmake"
TARGET_INCLUDE_DIRECTORIES(${TARGET} VERSION ${CLIENT_VERSION}
PUBLIC COMPATIBILITY SameMajorVersion
$<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()
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()
IF (PAHO_BUILD_STATIC) install(
## common compilation for libpaho-mqtt3cs and libpaho-mqtt3as FILES
## 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(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()
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
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}
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()
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)
INCLUDE(CMakePackageConfigHelpers)
WRITE_BASIC_PACKAGE_VERSION_FILE("eclipse-paho-mqtt-cConfigVersion.cmake"
VERSION ${CLIENT_VERSION}
COMPATIBILITY SameMajorVersion)
INSTALL(FILES
"${CMAKE_CURRENT_BINARY_DIR}/eclipse-paho-mqtt-cConfigVersion.cmake" "${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 # Base64 test
ADD_EXECUTABLE( Base64Test EXCLUDE_FROM_ALL Base64.c Base64.h ) add_executable(Base64Test EXCLUDE_FROM_ALL Base64.c Base64.h)
TARGET_COMPILE_DEFINITIONS( Base64Test PUBLIC "-DBASE64_TEST" ) target_compile_definitions(Base64Test PUBLIC "-DBASE64_TEST")
IF (PAHO_WITH_SSL)
ADD_EXECUTABLE( Base64TestOpenSSL EXCLUDE_FROM_ALL Base64.c Base64.h ) if(PAHO_WITH_SSL)
TARGET_LINK_LIBRARIES( Base64TestOpenSSL OpenSSL::SSL OpenSSL::Crypto) add_executable(Base64TestOpenSSL EXCLUDE_FROM_ALL Base64.c Base64.h )
TARGET_COMPILE_DEFINITIONS( Base64TestOpenSSL PUBLIC "-DBASE64_TEST -DOPENSSL=1" ) target_link_libraries(Base64TestOpenSSL OpenSSL::SSL OpenSSL::Crypto)
ENDIF (PAHO_WITH_SSL) target_compile_definitions(Base64TestOpenSSL PUBLIC "-DBASE64_TEST -DOPENSSL=1" )
endif()
# SHA1 test # SHA1 test
ADD_EXECUTABLE( Sha1Test EXCLUDE_FROM_ALL SHA1.c SHA1.h ) add_executable(Sha1Test EXCLUDE_FROM_ALL SHA1.c SHA1.h)
TARGET_COMPILE_DEFINITIONS( Sha1Test PUBLIC "-DSHA1_TEST" ) target_compile_definitions(Sha1Test PUBLIC "-DSHA1_TEST")
IF (PAHO_WITH_SSL)
ADD_EXECUTABLE( Sha1TestOpenSSL EXCLUDE_FROM_ALL SHA1.c SHA1.h ) if(PAHO_WITH_SSL)
TARGET_LINK_LIBRARIES( Sha1TestOpenSSL OpenSSL::SSL OpenSSL::Crypto) add_executable(Sha1TestOpenSSL EXCLUDE_FROM_ALL SHA1.c SHA1.h)
TARGET_COMPILE_DEFINITIONS( Sha1TestOpenSSL PUBLIC "-DSHA1_TEST -DOPENSSL=1" ) target_link_libraries(Sha1TestOpenSSL OpenSSL::SSL OpenSSL::Crypto)
ENDIF (PAHO_WITH_SSL) 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 #ifndef VERSIONINFO_H
#define VERSIONINFO_H #define VERSIONINFO_H
#define BUILD_TIMESTAMP "@BUILD_TIMESTAMP@" #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 */ #endif /* VERSIONINFO_H */

View File

@ -15,86 +15,87 @@
# Ian Craggs - update sample names # Ian Craggs - update sample names
#*******************************************************************************/ #*******************************************************************************/
# Note: on OS X you should install XCode and the associated command-line tools
## compilation/linkage settings ## compilation/linkage settings
INCLUDE_DIRECTORIES( include_directories(
. .
${PROJECT_SOURCE_DIR}/src ${PROJECT_SOURCE_DIR}/src
${PROJECT_BINARY_DIR} ${PROJECT_BINARY_DIR}
) )
IF (WIN32) if(WIN32)
ADD_DEFINITIONS(/DCMAKE_BUILD /D_CRT_SECURE_NO_DEPRECATE) add_definitions(/DCMAKE_BUILD /D_CRT_SECURE_NO_DEPRECATE)
ENDIF() endif()
# sample files c # sample files c
IF (PAHO_BUILD_SHARED) if(PAHO_BUILD_SHARED)
ADD_EXECUTABLE(paho_c_pub paho_c_pub.c pubsub_opts.c) foreach(TARGET paho_c_pub paho_c_sub paho_cs_pub paho_cs_sub)
ADD_EXECUTABLE(paho_c_sub paho_c_sub.c pubsub_opts.c) add_executable(${TARGET} ${TARGET}.c pubsub_opts.c)
ADD_EXECUTABLE(paho_cs_pub paho_cs_pub.c pubsub_opts.c) set_target_properties(${TARGET} PROPERTIES
ADD_EXECUTABLE(paho_cs_sub paho_cs_sub.c pubsub_opts.c) COMPILE_DEFINITIONS "PAHO_MQTT_IMPORTS=1"
)
endforeach()
SET_TARGET_PROPERTIES( target_link_libraries(paho_c_pub paho-mqtt3as)
paho_c_pub paho_c_sub paho_cs_pub paho_cs_sub PROPERTIES target_link_libraries(paho_c_sub paho-mqtt3as)
COMPILE_DEFINITIONS "PAHO_MQTT_IMPORTS=1")
TARGET_LINK_LIBRARIES(paho_c_pub paho-mqtt3as) target_link_libraries(paho_cs_pub paho-mqtt3cs)
TARGET_LINK_LIBRARIES(paho_c_sub paho-mqtt3as) 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) foreach(TARGET MQTTAsync_subscribe MQTTAsync_publish MQTTAsync_publish_time
ADD_EXECUTABLE(MQTTAsync_publish MQTTAsync_publish.c) MQTTClient_subscribe MQTTClient_publish MQTTClient_publish_async)
ADD_EXECUTABLE(MQTTAsync_publish_time MQTTAsync_publish_time.c) add_executable(${TARGET} ${TARGET}.c)
ADD_EXECUTABLE(MQTTClient_subscribe MQTTClient_subscribe.c) set_target_properties(${TARGET} PROPERTIES
ADD_EXECUTABLE(MQTTClient_publish MQTTClient_publish.c) COMPILE_DEFINITIONS "PAHO_MQTT_IMPORTS=1"
ADD_EXECUTABLE(MQTTClient_publish_async MQTTClient_publish_async.c) )
endforeach()
SET_TARGET_PROPERTIES( target_link_libraries(MQTTAsync_subscribe paho-mqtt3a)
MQTTAsync_subscribe MQTTAsync_publish MQTTAsync_publish_time MQTTClient_subscribe MQTTClient_publish MQTTClient_publish_async PROPERTIES target_link_libraries(MQTTAsync_publish paho-mqtt3a)
COMPILE_DEFINITIONS "PAHO_MQTT_IMPORTS=1") target_link_libraries(MQTTAsync_publish_time paho-mqtt3a)
TARGET_LINK_LIBRARIES(MQTTAsync_subscribe paho-mqtt3a) target_link_libraries(MQTTClient_subscribe paho-mqtt3c)
TARGET_LINK_LIBRARIES(MQTTAsync_publish paho-mqtt3a) target_link_libraries(MQTTClient_publish paho-mqtt3c)
TARGET_LINK_LIBRARIES(MQTTAsync_publish_time paho-mqtt3a) 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(
paho_c_pub TARGETS
paho_cs_sub paho_c_sub
paho_cs_pub paho_c_pub
MQTTAsync_subscribe paho_cs_sub
MQTTAsync_publish paho_cs_pub
MQTTAsync_publish_time MQTTAsync_subscribe
MQTTClient_subscribe MQTTAsync_publish
MQTTClient_publish MQTTAsync_publish_time
MQTTClient_publish_async MQTTClient_subscribe
MQTTClient_publish
MQTTClient_publish_async
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}) LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
ENDIF() )
endif()
IF (PAHO_BUILD_STATIC) if(PAHO_BUILD_STATIC)
ADD_EXECUTABLE(paho_c_pub_static paho_c_pub.c pubsub_opts.c) foreach(TARGET paho_c_pub paho_c_sub paho_cs_pub paho_cs_sub)
ADD_EXECUTABLE(paho_c_sub_static paho_c_sub.c pubsub_opts.c) add_executable(${TARGET}_static ${TARGET}.c pubsub_opts.c)
ADD_EXECUTABLE(paho_cs_pub_static paho_cs_pub.c pubsub_opts.c) endforeach()
ADD_EXECUTABLE(paho_cs_sub_static paho_cs_sub.c pubsub_opts.c)
TARGET_LINK_LIBRARIES(paho_c_pub_static paho-mqtt3as-static) target_link_libraries(paho_c_pub_static paho-mqtt3as-static)
TARGET_LINK_LIBRARIES(paho_c_sub_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)
INSTALL(TARGETS paho_c_sub_static target_link_libraries(paho_cs_pub_static paho-mqtt3cs-static)
paho_c_pub_static target_link_libraries(paho_cs_sub_static paho-mqtt3cs-static)
paho_cs_sub_static
paho_cs_pub_static install(
TARGETS
paho_c_sub_static
paho_c_pub_static
paho_cs_sub_static
paho_cs_pub_static
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}) LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
ENDIF() )
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) project(test_package C)
cmake_minimum_required(VERSION 2.8.11)
include(${CMAKE_BINARY_DIR}/conanbuildinfo.cmake) include(${CMAKE_BINARY_DIR}/conanbuildinfo.cmake)
conan_basic_setup() conan_basic_setup()