2018-01-06 22:42:13 +00:00
|
|
|
option(WITH_STATIC_LIBRARIES "Build static versions of the libmosquitto/pp libraries?" OFF)
|
|
|
|
option(WITH_PIC "Build the static library with PIC (Position Independent Code) enabled archives?" OFF)
|
2014-05-07 22:27:00 +00:00
|
|
|
add_subdirectory(cpp)
|
|
|
|
|
|
|
|
option(WITH_THREADING "Include client library threading support?" ON)
|
|
|
|
if (${WITH_THREADING} STREQUAL ON)
|
|
|
|
add_definitions("-DWITH_THREADING")
|
|
|
|
if (WIN32)
|
2015-09-22 12:48:36 +00:00
|
|
|
if (CMAKE_CL_64)
|
|
|
|
set (PTHREAD_LIBRARIES C:\\pthreads\\Pre-built.2\\lib\\x64\\pthreadVC2.lib)
|
|
|
|
else (CMAKE_CL_64)
|
|
|
|
set (PTHREAD_LIBRARIES C:\\pthreads\\Pre-built.2\\lib\\x86\\pthreadVC2.lib)
|
|
|
|
endif (CMAKE_CL_64)
|
2014-05-07 22:27:00 +00:00
|
|
|
set (PTHREAD_INCLUDE_DIR C:\\pthreads\\Pre-built.2\\include)
|
|
|
|
else (WIN32)
|
2017-01-24 22:01:16 +00:00
|
|
|
find_library(LIBPTHREAD pthread)
|
|
|
|
if (LIBPTHREAD)
|
|
|
|
set (PTHREAD_LIBRARIES pthread)
|
|
|
|
else (LIBPTHREAD)
|
|
|
|
set (PTHREAD_LIBRARIES "")
|
|
|
|
endif()
|
2014-05-07 22:27:00 +00:00
|
|
|
set (PTHREAD_INCLUDE_DIR "")
|
|
|
|
endif (WIN32)
|
|
|
|
else (${WITH_THREADING} STREQUAL ON)
|
|
|
|
set (PTHREAD_LIBRARIES "")
|
|
|
|
set (PTHREAD_INCLUDE_DIR "")
|
|
|
|
endif (${WITH_THREADING} STREQUAL ON)
|
|
|
|
|
|
|
|
include_directories(${mosquitto_SOURCE_DIR} ${mosquitto_SOURCE_DIR}/lib
|
|
|
|
${STDBOOL_H_PATH} ${STDINT_H_PATH}
|
|
|
|
${OPENSSL_INCLUDE_DIR} ${PTHREAD_INCLUDE_DIR})
|
|
|
|
link_directories(${mosquitto_SOURCE_DIR}/lib)
|
|
|
|
|
2016-05-31 04:26:47 +00:00
|
|
|
set(C_SRC
|
2018-04-11 14:04:17 +00:00
|
|
|
actions.c
|
|
|
|
callbacks.c
|
|
|
|
connect.c
|
2016-05-31 04:26:47 +00:00
|
|
|
handle_connack.c
|
|
|
|
handle_ping.c
|
|
|
|
handle_pubackcomp.c
|
|
|
|
handle_publish.c
|
|
|
|
handle_pubrec.c
|
|
|
|
handle_pubrel.c
|
|
|
|
handle_suback.c
|
|
|
|
handle_unsuback.c
|
|
|
|
helpers.c
|
|
|
|
logging_mosq.c logging_mosq.h
|
2018-04-11 14:04:17 +00:00
|
|
|
loop.c
|
2014-05-07 22:27:00 +00:00
|
|
|
memory_mosq.c memory_mosq.h
|
|
|
|
messages_mosq.c messages_mosq.h
|
|
|
|
mosquitto.c mosquitto.h
|
|
|
|
mosquitto_internal.h
|
|
|
|
mqtt3_protocol.h
|
|
|
|
net_mosq.c net_mosq.h
|
2018-04-11 14:04:17 +00:00
|
|
|
options.c
|
2015-04-29 20:23:59 +00:00
|
|
|
packet_mosq.c packet_mosq.h
|
2014-05-07 22:27:00 +00:00
|
|
|
read_handle.c read_handle.h
|
2016-03-06 22:30:17 +00:00
|
|
|
send_connect.c
|
|
|
|
send_disconnect.c
|
|
|
|
send_mosq.c
|
|
|
|
send_publish.c
|
|
|
|
send_subscribe.c
|
|
|
|
send_unsubscribe.c
|
2014-05-07 22:27:00 +00:00
|
|
|
send_mosq.c send_mosq.h
|
2014-09-29 23:56:57 +00:00
|
|
|
socks_mosq.c
|
2014-05-07 22:27:00 +00:00
|
|
|
srv_mosq.c
|
|
|
|
thread_mosq.c
|
|
|
|
time_mosq.c
|
|
|
|
tls_mosq.c
|
2016-06-20 21:56:01 +00:00
|
|
|
utf8_mosq.c
|
2014-05-07 22:27:00 +00:00
|
|
|
util_mosq.c util_mosq.h
|
|
|
|
will_mosq.c will_mosq.h)
|
|
|
|
|
|
|
|
set (LIBRARIES ${OPENSSL_LIBRARIES} ${PTHREAD_LIBRARIES})
|
|
|
|
|
|
|
|
if (UNIX AND NOT APPLE)
|
2017-01-24 22:01:16 +00:00
|
|
|
find_library(LIBRT rt)
|
|
|
|
if (LIBRT)
|
|
|
|
set (LIBRARIES ${LIBRARIES} rt)
|
|
|
|
endif (LIBRT)
|
2014-05-07 22:27:00 +00:00
|
|
|
endif (UNIX AND NOT APPLE)
|
|
|
|
|
|
|
|
if (WIN32)
|
|
|
|
set (LIBRARIES ${LIBRARIES} ws2_32)
|
|
|
|
endif (WIN32)
|
|
|
|
|
|
|
|
if (${WITH_SRV} STREQUAL ON)
|
2014-07-22 09:02:36 +00:00
|
|
|
# Simple detect c-ares
|
|
|
|
find_path(ARES_HEADER ares.h)
|
|
|
|
if (ARES_HEADER)
|
|
|
|
add_definitions("-DWITH_SRV")
|
|
|
|
set (LIBRARIES ${LIBRARIES} cares)
|
|
|
|
else (ARES_HEADER)
|
|
|
|
message(WARNING "c-ares library not found.")
|
|
|
|
endif (ARES_HEADER)
|
2014-05-07 22:27:00 +00:00
|
|
|
endif (${WITH_SRV} STREQUAL ON)
|
|
|
|
|
2018-01-06 22:42:13 +00:00
|
|
|
add_library(libmosquitto SHARED ${C_SRC})
|
|
|
|
set_target_properties(libmosquitto PROPERTIES
|
2016-05-31 06:06:37 +00:00
|
|
|
POSITION_INDEPENDENT_CODE 1
|
|
|
|
)
|
|
|
|
|
2016-05-31 04:52:04 +00:00
|
|
|
target_link_libraries(libmosquitto ${LIBRARIES})
|
2016-04-19 19:32:23 +00:00
|
|
|
|
2014-05-07 22:27:00 +00:00
|
|
|
set_target_properties(libmosquitto PROPERTIES
|
|
|
|
OUTPUT_NAME mosquitto
|
|
|
|
VERSION ${VERSION}
|
|
|
|
SOVERSION 1
|
|
|
|
)
|
|
|
|
|
2016-03-13 20:33:08 +00:00
|
|
|
install(TARGETS libmosquitto RUNTIME DESTINATION "${BINDIR}" LIBRARY DESTINATION "${LIBDIR}")
|
2016-05-31 04:52:04 +00:00
|
|
|
|
2016-06-02 17:53:58 +00:00
|
|
|
if (${WITH_STATIC_LIBRARIES} STREQUAL ON)
|
2018-01-06 22:42:13 +00:00
|
|
|
add_library(libmosquitto_static STATIC ${C_SRC})
|
|
|
|
if (${WITH_PIC} STREQUAL ON)
|
|
|
|
set_target_properties(libmosquitto_static PROPERTIES
|
|
|
|
POSITION_INDEPENDENT_CODE 1
|
|
|
|
)
|
|
|
|
endif (${WITH_PIC} STREQUAL ON)
|
2016-05-31 04:52:04 +00:00
|
|
|
|
|
|
|
target_link_libraries(libmosquitto_static ${LIBRARIES})
|
|
|
|
|
|
|
|
set_target_properties(libmosquitto_static PROPERTIES
|
|
|
|
OUTPUT_NAME mosquitto
|
|
|
|
VERSION ${VERSION}
|
|
|
|
)
|
2016-04-19 19:32:23 +00:00
|
|
|
|
2016-05-31 04:52:04 +00:00
|
|
|
target_compile_definitions(libmosquitto_static PUBLIC "LIBMOSQUITTO_STATIC")
|
2016-06-21 22:33:58 +00:00
|
|
|
install(TARGETS libmosquitto_static RUNTIME DESTINATION "${BINDIR}" ARCHIVE DESTINATION "${LIBDIR}")
|
2016-06-02 17:53:58 +00:00
|
|
|
endif (${WITH_STATIC_LIBRARIES} STREQUAL ON)
|
2016-04-19 19:32:23 +00:00
|
|
|
|
2016-03-13 20:33:08 +00:00
|
|
|
install(FILES mosquitto.h DESTINATION "${INCLUDEDIR}")
|
2014-05-07 22:27:00 +00:00
|
|
|
|
2016-04-19 19:08:02 +00:00
|
|
|
if (UNIX AND NOT APPLE)
|
2014-05-07 22:27:00 +00:00
|
|
|
install(CODE "EXEC_PROGRAM(/sbin/ldconfig)")
|
2016-04-19 19:08:02 +00:00
|
|
|
endif (UNIX AND NOT APPLE)
|
|
|
|
|