123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121 |
- #*******************************************************************************
- # Copyright (c) 2015, 2020 logi.cals GmbH and others
- #
- # All rights reserved. This program and the accompanying materials
- # are made available under the terms of the Eclipse Public License v2.0
- # and Eclipse Distribution License v1.0 which accompany this distribution.
- #
- # The Eclipse Public License is available at
- # https://www.eclipse.org/legal/epl-2.0/
- # and the Eclipse Distribution License is available at
- # http://www.eclipse.org/org/documents/edl-v10.php.
- #
- # Contributors:
- # Rainer Poisel - initial version
- # 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 2.8.12)
- PROJECT("Eclipse Paho C" C)
- 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")
- ## build settings
- 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})
- INCLUDE(GNUInstallDirs)
- 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()
- ## build options
- SET(PAHO_WITH_SSL FALSE CACHE BOOL "Flag that defines whether to build ssl-enabled binaries too. ")
- 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()
- 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_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()
- ADD_SUBDIRECTORY(src)
- IF(PAHO_BUILD_SAMPLES)
- ADD_SUBDIRECTORY(src/samples)
- ENDIF()
- 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)
- 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})
- 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 ${PAHO_VERSION_MAJOR})
- SET(CPACK_PACKAGE_VERSION_MINOR ${PAHO_VERSION_MINOR})
- SET(CPACK_PACKAGE_VERSION_PATCH ${PAHO_VERSION_PATCH})
- INCLUDE(CPack)
- IF(PAHO_ENABLE_TESTING)
- ENABLE_TESTING()
- INCLUDE_DIRECTORIES(test src)
- ADD_SUBDIRECTORY(test)
- ELSE()
- INCLUDE_DIRECTORIES(src)
- ENDIF()
|