CMakeLists.txt 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151
  1. #*******************************************************************************
  2. # Copyright (c) 2015, 2020 logi.cals GmbH and others
  3. #
  4. # All rights reserved. This program and the accompanying materials
  5. # are made available under the terms of the Eclipse Public License v2.0
  6. # and Eclipse Distribution License v1.0 which accompany this distribution.
  7. #
  8. # The Eclipse Public License is available at
  9. # https://www.eclipse.org/legal/epl-2.0/
  10. # and the Eclipse Distribution License is available at
  11. # http://www.eclipse.org/org/documents/edl-v10.php.
  12. #
  13. # Contributors:
  14. # Rainer Poisel - initial version
  15. # Ian Craggs - update sample names
  16. #*******************************************************************************/
  17. ## compilation/linkage settings
  18. include_directories(
  19. .
  20. ${PROJECT_SOURCE_DIR}/src
  21. ${PROJECT_BINARY_DIR}
  22. )
  23. if(WIN32)
  24. add_definitions(/DCMAKE_BUILD /D_CRT_SECURE_NO_DEPRECATE)
  25. endif()
  26. # sample files c
  27. if(PAHO_BUILD_SHARED)
  28. if(PAHO_WITH_SSL)
  29. foreach(TARGET paho_c_pub paho_c_sub paho_cs_pub paho_cs_sub)
  30. add_executable(${TARGET} ${TARGET}.c pubsub_opts.c)
  31. set_target_properties(${TARGET} PROPERTIES
  32. COMPILE_DEFINITIONS "PAHO_MQTT_IMPORTS=1"
  33. )
  34. endforeach()
  35. target_link_libraries(paho_c_pub paho-mqtt3as)
  36. target_link_libraries(paho_c_sub paho-mqtt3as)
  37. target_link_libraries(paho_cs_pub paho-mqtt3cs)
  38. target_link_libraries(paho_cs_sub paho-mqtt3cs)
  39. install(
  40. TARGETS
  41. paho_c_sub
  42. paho_c_pub
  43. paho_cs_sub
  44. paho_cs_pub
  45. RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
  46. LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
  47. )
  48. endif()
  49. foreach(TARGET
  50. MQTTAsync_subscribe
  51. MQTTAsync_publish
  52. MQTTAsync_publish_time
  53. MQTTClient_subscribe
  54. MQTTClient_publish
  55. MQTTClient_publish_async
  56. )
  57. add_executable(${TARGET} ${TARGET}.c)
  58. set_target_properties(${TARGET} PROPERTIES
  59. COMPILE_DEFINITIONS "PAHO_MQTT_IMPORTS=1"
  60. )
  61. endforeach()
  62. foreach(TARGET MQTTAsync_subscribe MQTTAsync_publish MQTTAsync_publish_time)
  63. target_link_libraries(${TARGET} paho-mqtt3a)
  64. endforeach()
  65. foreach(TARGET MQTTClient_subscribe MQTTClient_publish MQTTClient_publish_async)
  66. target_link_libraries(${TARGET} paho-mqtt3c)
  67. endforeach()
  68. install(
  69. TARGETS
  70. MQTTAsync_subscribe
  71. MQTTAsync_publish
  72. MQTTAsync_publish_time
  73. MQTTClient_subscribe
  74. MQTTClient_publish
  75. MQTTClient_publish_async
  76. RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
  77. LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
  78. )
  79. endif()
  80. if(PAHO_BUILD_STATIC)
  81. if(PAHO_WITH_SSL)
  82. foreach(TARGET paho_c_pub paho_c_sub paho_cs_pub paho_cs_sub)
  83. add_executable(${TARGET}_static ${TARGET}.c pubsub_opts.c)
  84. endforeach()
  85. target_link_libraries(paho_c_pub_static paho-mqtt3as-static)
  86. target_link_libraries(paho_c_sub_static paho-mqtt3as-static)
  87. target_link_libraries(paho_cs_pub_static paho-mqtt3cs-static)
  88. target_link_libraries(paho_cs_sub_static paho-mqtt3cs-static)
  89. install(
  90. TARGETS
  91. paho_c_sub_static
  92. paho_c_pub_static
  93. paho_cs_sub_static
  94. paho_cs_pub_static
  95. RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
  96. LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
  97. )
  98. endif()
  99. foreach(TARGET
  100. MQTTAsync_subscribe
  101. MQTTAsync_publish
  102. MQTTAsync_publish_time
  103. MQTTClient_subscribe
  104. MQTTClient_publish
  105. MQTTClient_publish_async
  106. )
  107. add_executable(${TARGET}_static ${TARGET}.c)
  108. endforeach()
  109. foreach(TARGET MQTTAsync_subscribe MQTTAsync_publish MQTTAsync_publish_time)
  110. target_link_libraries(${TARGET}_static paho-mqtt3a-static)
  111. endforeach()
  112. foreach(TARGET MQTTClient_subscribe MQTTClient_publish MQTTClient_publish_async)
  113. target_link_libraries(${TARGET}_static paho-mqtt3c-static)
  114. endforeach()
  115. install(
  116. TARGETS
  117. MQTTAsync_subscribe_static
  118. MQTTAsync_publish_static
  119. MQTTAsync_publish_time_static
  120. MQTTClient_subscribe_static
  121. MQTTClient_publish_static
  122. MQTTClient_publish_async_static
  123. RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
  124. LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
  125. )
  126. endif()