mosquitto/plugins/CMakeLists.txt
2026-04-16 21:35:46 +01:00

68 lines
1.7 KiB
CMake

function(add_mosquitto_plugin_no_install PLUGIN_NAME SRCLIST INCLIST LINKLIST)
add_library(${PLUGIN_NAME} MODULE ${SRCLIST})
target_include_directories(${PLUGIN_NAME} PRIVATE
${INCLIST}
"${mosquitto_SOURCE_DIR}/"
"${mosquitto_SOURCE_DIR}/common"
"${mosquitto_SOURCE_DIR}/include"
)
set_target_properties(${PLUGIN_NAME} PROPERTIES
PREFIX ""
POSITION_INDEPENDENT_CODE 1
)
target_link_libraries(${PLUGIN_NAME} PRIVATE
${LINKLIST}
common-options
mosquitto
)
endfunction()
function(add_mosquitto_plugin PLUGIN_NAME SRCLIST INCLIST LINKLIST)
add_mosquitto_plugin_no_install("${PLUGIN_NAME}" "${SRCLIST}" "${INCLIST}" "${LINKLIST}")
if(WIN32)
install(TARGETS ${PLUGIN_NAME}
DESTINATION "${CMAKE_INSTALL_BINDIR}")
else()
install(TARGETS ${PLUGIN_NAME}
RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}"
LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}"
)
endif()
endfunction()
option_env(WITH_PLUGIN_ACL_FILE "Build acl-file plugin?" ON)
option_env(WITH_PLUGIN_DYNAMIC_SECURITY "Build dynamic-security plugin?" ON)
option_env(WITH_PLUGIN_EXAMPLES "Build example plugins?" ON)
option_env(WITH_PLUGIN_PERSIST_SQLITE "Build persist-sqlite plugin?" ON)
option_env(WITH_PLUGIN_PASSWORD_FILE "Build password-file plugin?" ON)
option_env(WITH_PLUGIN_SPARKPLUG_AWARE "Build sparkplug-aware plugin?" ON)
if(WITH_PLUGIN_ACL_FILE)
add_subdirectory(acl-file)
endif()
if(WITH_PLUGIN_DYNAMIC_SECURITY)
add_subdirectory(dynamic-security)
endif()
if (WITH_PLUGIN_EXAMPLES)
add_subdirectory(examples)
endif()
if(WITH_PLUGIN_PASSWORD_FILE)
add_subdirectory(password-file)
endif()
if (WITH_PLUGIN_PERSIST_SQLITE)
find_package(SQLite3 REQUIRED)
add_subdirectory(persist-sqlite)
endif()
if(WITH_PLUGIN_SPARKPLUG_AWARE)
add_subdirectory(sparkplug-aware)
endif()