
A module can register a function to a domain. These function can then be called by external actors enabling the modules to expand their functionality beyond the module API. Each module should use its own domain e.g the library name. Currently, the functions do not return results. The possible next step would be to alter the function entry point to return a result set of sorts. This would allow the modules to convey structured information to the client information which would handle the formatting of the result. Although this sounds good, it is not required for the implementation of MXS-929.
38 lines
1.6 KiB
CMake
38 lines
1.6 KiB
CMake
add_library(maxscale-common SHARED adminusers.c alloc.c authenticator.c atomic.c buffer.c config.c dcb.c filter.c externcmd.c gwbitmask.c gwdirs.c hashtable.c hint.c housekeeper.c listmanager.c load_utils.c log_manager.cc maxscale_pcre2.c memlog.c misc.c mlist.c modutil.c monitor.c queuemanager.c query_classifier.c poll.c random_jkiss.c resultset.c secrets.c server.c service.c session.c spinlock.c thread.c users.c utils.c skygw_utils.cc statistics.c listener.c gw_ssl.c mysql_utils.c mysql_binlog.c modulecmd.c)
|
|
|
|
target_link_libraries(maxscale-common ${MARIADB_CONNECTOR_LIBRARIES} ${LZMA_LINK_FLAGS} ${PCRE2_LIBRARIES} ${CURL_LIBRARIES} ssl pthread crypt dl crypto inih z rt m stdc++)
|
|
|
|
if(WITH_JEMALLOC)
|
|
target_link_libraries(maxscale-common ${JEMALLOC_LIBRARIES})
|
|
elseif(WITH_TCMALLOC)
|
|
target_link_libraries(maxscale-common ${TCMALLOC_LIBRARIES})
|
|
endif()
|
|
|
|
add_dependencies(maxscale-common pcre2 connector-c)
|
|
set_target_properties(maxscale-common PROPERTIES VERSION "1.0.0")
|
|
install_module(maxscale-common core)
|
|
|
|
add_executable(maxscale gateway.cc)
|
|
add_dependencies(maxscale pcre2)
|
|
|
|
if(WITH_JEMALLOC)
|
|
target_link_libraries(maxscale ${JEMALLOC_LIBRARIES})
|
|
elseif(WITH_TCMALLOC)
|
|
target_link_libraries(maxscale ${TCMALLOC_LIBRARIES})
|
|
endif()
|
|
|
|
target_link_libraries(maxscale maxscale-common)
|
|
install_executable(maxscale core)
|
|
|
|
add_executable(maxkeys maxkeys.c)
|
|
target_link_libraries(maxkeys maxscale-common)
|
|
install_executable(maxkeys core)
|
|
|
|
add_executable(maxpasswd maxpasswd.c)
|
|
target_link_libraries(maxpasswd maxscale-common)
|
|
install_executable(maxpasswd core)
|
|
|
|
if(BUILD_TESTS)
|
|
add_subdirectory(test)
|
|
endif()
|