mosquitto/src/CMakeLists.txt

195 lines
5.1 KiB
CMake
Raw Normal View History

2014-05-07 22:27:00 +00:00
include_directories(${mosquitto_SOURCE_DIR} ${mosquitto_SOURCE_DIR}/src
${mosquitto_SOURCE_DIR}/lib ${OPENSSL_INCLUDE_DIR}
${STDBOOL_H_PATH} ${STDINT_H_PATH})
set (MOSQ_SRCS
2019-03-05 14:01:29 +00:00
../lib/alias_mosq.c ../lib/alias_mosq.h
2014-05-07 22:27:00 +00:00
conf.c
conf_includedir.c
2014-05-07 22:27:00 +00:00
context.c
database.c
2018-10-25 11:44:41 +00:00
handle_auth.c
handle_connack.c
handle_connect.c
../lib/handle_ping.c
../lib/handle_pubackcomp.c
handle_publish.c
../lib/handle_pubrec.c
../lib/handle_pubrel.c
../lib/handle_suback.c
handle_subscribe.c
../lib/handle_unsuback.c
handle_unsubscribe.c
2014-05-07 22:27:00 +00:00
lib_load.h
logging.c
loop.c
../lib/memory_mosq.c ../lib/memory_mosq.h
mosquitto.c
mosquitto_broker.h mosquitto_broker_internal.h
2014-05-07 22:27:00 +00:00
net.c
../lib/net_mosq.c ../lib/net_mosq.h
../lib/packet_datatypes.c
2015-05-16 13:16:40 +00:00
../lib/packet_mosq.c ../lib/packet_mosq.h
2014-05-07 22:27:00 +00:00
persist.c persist.h
plugin.c
property_broker.c
../lib/property_mosq.c ../lib/property_mosq.h
read_handle.c
../lib/read_handle.h
2014-05-07 22:27:00 +00:00
security.c security_default.c
../lib/send_mosq.c ../lib/send_mosq.h
send_connack.c
../lib/send_connect.c
../lib/send_disconnect.c
../lib/send_publish.c
send_suback.c
2016-07-03 21:40:27 +00:00
signals.c
../lib/send_subscribe.c
2018-10-31 12:38:39 +00:00
send_unsuback.c
../lib/send_unsubscribe.c
session_expiry.c
subs.c
2015-05-16 13:16:40 +00:00
sys_tree.c sys_tree.h
2014-05-07 22:27:00 +00:00
../lib/time_mosq.c
../lib/tls_mosq.c
2018-10-16 12:49:38 +00:00
../lib/util_mosq.c ../lib/util_topic.c ../lib/util_mosq.h
../lib/utf8_mosq.c
websockets.c
2019-03-05 14:01:29 +00:00
will_delay.c
2014-05-07 22:27:00 +00:00
../lib/will_mosq.c ../lib/will_mosq.h)
option(WITH_BUNDLED_DEPS "Build with bundled dependencies?" ON)
if (WITH_BUNDLED_DEPS)
include_directories(${mosquitto_SOURCE_DIR} ${mosquitto_SOURCE_DIR}/src/deps)
endif (WITH_BUNDLED_DEPS)
2014-05-07 22:27:00 +00:00
option(INC_BRIDGE_SUPPORT
"Include bridge support for connecting to other brokers?" ON)
if (INC_BRIDGE_SUPPORT)
2014-05-07 22:27:00 +00:00
set (MOSQ_SRCS ${MOSQ_SRCS} bridge.c)
add_definitions("-DWITH_BRIDGE")
endif (INC_BRIDGE_SUPPORT)
2014-05-07 22:27:00 +00:00
option(USE_LIBWRAP
"Include tcp-wrappers support?" OFF)
if (USE_LIBWRAP)
2014-05-07 22:27:00 +00:00
set (MOSQ_LIBS ${MOSQ_LIBS} wrap)
add_definitions("-DWITH_WRAP")
endif (USE_LIBWRAP)
2014-05-07 22:27:00 +00:00
option(INC_DB_UPGRADE
"Include database upgrade support? (recommended)" ON)
option(INC_MEMTRACK
"Include memory tracking support?" ON)
if (INC_MEMTRACK)
2014-05-07 22:27:00 +00:00
add_definitions("-DWITH_MEMORY_TRACKING")
endif (INC_MEMTRACK)
2014-05-07 22:27:00 +00:00
option(WITH_PERSISTENCE
"Include persistence support?" ON)
if (WITH_PERSISTENCE)
2014-05-07 22:27:00 +00:00
add_definitions("-DWITH_PERSISTENCE")
endif (WITH_PERSISTENCE)
2014-05-07 22:27:00 +00:00
option(WITH_SYS_TREE
"Include $SYS tree support?" ON)
if (WITH_SYS_TREE)
2014-05-07 22:27:00 +00:00
add_definitions("-DWITH_SYS_TREE")
endif (WITH_SYS_TREE)
2014-05-07 22:27:00 +00:00
if (CMAKE_SYSTEM_NAME STREQUAL Linux)
option(WITH_SYSTEMD
"Include systemd support?" OFF)
if (WITH_SYSTEMD)
add_definitions("-DWITH_SYSTEMD")
find_library(SYSTEMD_LIBRARY systemd)
set (MOSQ_LIBS ${MOSQ_LIBS} ${SYSTEMD_LIBRARY})
endif (WITH_SYSTEMD)
endif (CMAKE_SYSTEM_NAME STREQUAL Linux)
option(WITH_WEBSOCKETS "Include websockets support?" OFF)
option(STATIC_WEBSOCKETS "Use the static libwebsockets library?" OFF)
if (WITH_WEBSOCKETS)
add_definitions("-DWITH_WEBSOCKETS")
endif (WITH_WEBSOCKETS)
2014-05-07 22:27:00 +00:00
if (WIN32 OR CYGWIN)
set (MOSQ_SRCS ${MOSQ_SRCS} service.c)
endif (WIN32 OR CYGWIN)
add_definitions (-DWITH_BROKER)
if (WITH_DLT)
message(STATUS "DLT_LIBDIR = ${DLT_LIBDIR}")
link_directories(${DLT_LIBDIR})
set (MOSQ_LIBS ${DLT_LIBRARIES})
endif (WITH_DLT)
2014-05-07 22:27:00 +00:00
set (MOSQ_LIBS ${MOSQ_LIBS} ${OPENSSL_LIBRARIES})
2017-02-08 16:24:50 +00:00
# Check for getaddrinfo_a
include(CheckLibraryExists)
check_library_exists(anl getaddrinfo_a "" HAVE_GETADDRINFO_A)
if (HAVE_GETADDRINFO_A)
add_definitions(-DHAVE_GETADDRINFO_A)
set (MOSQ_LIBS ${MOSQ_LIBS} anl)
endif (HAVE_GETADDRINFO_A)
2014-05-07 22:27:00 +00:00
if (UNIX)
if (APPLE)
set (MOSQ_LIBS ${MOSQ_LIBS} dl m)
elseif(QNX)
set(MOSQ_LIBS ${MOSQ_LIBS} m socket)
else(APPLE)
set (MOSQ_LIBS ${MOSQ_LIBS} dl m)
find_library(LIBRT rt)
if (LIBRT)
set (MOSQ_LIBS ${MOSQ_LIBS} rt)
endif (LIBRT)
endif (APPLE)
2014-05-07 22:27:00 +00:00
endif (UNIX)
if (WIN32)
set (MOSQ_LIBS ${MOSQ_LIBS} ws2_32)
endif (WIN32)
if (WITH_WEBSOCKETS)
if (STATIC_WEBSOCKETS)
set (MOSQ_LIBS ${MOSQ_LIBS} websockets_static)
if (WIN32)
set (MOSQ_LIBS ${MOSQ_LIBS} iphlpapi)
link_directories(${mosquitto_SOURCE_DIR})
endif (WIN32)
else (STATIC_WEBSOCKETS)
set (MOSQ_LIBS ${MOSQ_LIBS} websockets)
endif (STATIC_WEBSOCKETS)
endif (WITH_WEBSOCKETS)
add_executable(mosquitto ${MOSQ_SRCS})
2014-05-07 22:27:00 +00:00
target_link_libraries(mosquitto ${MOSQ_LIBS})
2015-02-17 23:21:14 +00:00
if (UNIX)
if (APPLE)
set_target_properties(mosquitto PROPERTIES LINK_FLAGS "-Wl,-exported_symbols_list -Wl,${mosquitto_SOURCE_DIR}/src/linker-macosx.syms")
else (APPLE)
2015-02-22 12:20:29 +00:00
set_target_properties(mosquitto PROPERTIES LINK_FLAGS "-Wl,-dynamic-list=${mosquitto_SOURCE_DIR}/src/linker.syms")
2015-02-17 23:21:14 +00:00
endif (APPLE)
endif (UNIX)
install(TARGETS mosquitto RUNTIME DESTINATION "${SBINDIR}" LIBRARY DESTINATION "${LIBDIR}")
install(FILES mosquitto_broker.h mosquitto_plugin.h DESTINATION "${INCLUDEDIR}")
2014-05-07 22:27:00 +00:00
if (WITH_TLS)
2014-05-07 22:27:00 +00:00
add_executable(mosquitto_passwd mosquitto_passwd.c)
target_link_libraries(mosquitto_passwd ${OPENSSL_LIBRARIES})
install(TARGETS mosquitto_passwd RUNTIME DESTINATION "${BINDIR}" LIBRARY DESTINATION "${LIBDIR}")
endif (WITH_TLS)
2014-05-07 22:27:00 +00:00
if (UNIX AND NOT APPLE)
2014-05-07 22:27:00 +00:00
install(CODE "EXEC_PROGRAM(/sbin/ldconfig)")
endif (UNIX AND NOT APPLE)