initial implementation of the CMake build system
This commit is contained in:
parent
30c52677b0
commit
b3ce971020
42
CMakeLists.txt
Normal file
42
CMakeLists.txt
Normal file
@ -0,0 +1,42 @@
|
||||
cmake_minimum_required(VERSION 2.6)
|
||||
project(MaxScale)
|
||||
|
||||
find_path(MYSQL_DIR mysql.h PATH_SUFFIXES mysql mariadb)
|
||||
find_file(ERRMSG errmsg.sys PATHS /usr/share/mysql /usr/local/share/mysql PATH_SUFFIXES english)
|
||||
|
||||
set(CMAKE_C_FLAGS ${CMAKE_C_FLAGS} -fPIC)
|
||||
set(CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS} -fPIC)
|
||||
message(STATUS "cflags: ${CMAKE_C_FLAGS}")
|
||||
if(NOT EMBEDDED_LIB)
|
||||
find_library(EMBEDDED_LIB libmysqld.a PATHS /usr/lib /usr/lib64 PATH_SUFFIXES mysql)
|
||||
if(EMBEDDED_LIB_NOT_FOUND)
|
||||
message(ERROR "Library not found: libmysqld. If your install of MySQL is in a non-default location, please provide the location with -DEMBEDDED_LIB=<path to library>")
|
||||
endif(EMBEDDED_LIB_NOT_FOUND)
|
||||
endif(NOT EMBEDDED_LIB)
|
||||
|
||||
include_directories(${MYSQL_DIR})
|
||||
include_directories(${MYSQL_DIR}/private)
|
||||
include_directories(${MYSQL_DIR}/extra)
|
||||
include_directories(utils)
|
||||
include_directories(log_manager)
|
||||
include_directories(query_classifier)
|
||||
include_directories(server/include)
|
||||
include_directories(server/inih)
|
||||
include_directories(server/modules/include)
|
||||
|
||||
add_subdirectory(utils)
|
||||
add_subdirectory(log_manager)
|
||||
add_subdirectory(query_classifier)
|
||||
add_subdirectory(server)
|
||||
add_subdirectory(client)
|
||||
|
||||
if(BUILD_RABBITMQ)
|
||||
add_subdirectory(rabbitmq_consumer)
|
||||
endif(BUILD_RABBITMQ)
|
||||
|
||||
file(GLOB DOCS Documentation/*.pdf)
|
||||
|
||||
install(FILES server/test/MaxScale_test.cnf RENAME MaxScale.cnf DESTINATION etc)
|
||||
install(FILES ${ERRMSG} DESTINATION mysql)
|
||||
install(FILES ${EMBEDDED_LIB} DESTINATION lib)
|
||||
install(FILES ${DOCS} DESTINATION Documentation)
|
8
client/CMakeLists.txt
Normal file
8
client/CMakeLists.txt
Normal file
@ -0,0 +1,8 @@
|
||||
add_executable(maxadmin maxadmin.c)
|
||||
find_library(HIST edit)
|
||||
#if(HIST)
|
||||
# add_definitions(-DHISTORY)
|
||||
# set(LIBS ${LIBS} {HIST})
|
||||
#endif(HIST)
|
||||
set_target_properties(maxadmin PROPERTIES INSTALL_RPATH ${CMAKE_INSTALL_RPATH}:${CMAKE_INSTALL_PREFIX}/lib)
|
||||
install(TARGETS maxadmin DESTINATION bin)
|
5
log_manager/CMakeLists.txt
Normal file
5
log_manager/CMakeLists.txt
Normal file
@ -0,0 +1,5 @@
|
||||
cmake_minimum_required(VERSION 2.6)
|
||||
set(LOG_MANAGER_HEADERS log_manager.h)
|
||||
add_library(log_manager SHARED log_manager.cc)
|
||||
target_link_libraries(log_manager utils)
|
||||
install(TARGETS log_manager DESTINATION lib)
|
3
query_classifier/CMakeLists.txt
Normal file
3
query_classifier/CMakeLists.txt
Normal file
@ -0,0 +1,3 @@
|
||||
set(QUERY_CLASSIFIER_HEADERS query_classifier.h)
|
||||
add_library(query_classifier SHARED query_classifier.cc ${MYSQL_HEADERS})
|
||||
install(TARGETS query_classifier DESTINATION lib)
|
3
server/CMakeLists.txt
Normal file
3
server/CMakeLists.txt
Normal file
@ -0,0 +1,3 @@
|
||||
add_subdirectory(core)
|
||||
add_subdirectory(modules)
|
||||
add_subdirectory(inih)
|
19
server/core/CMakeLists.txt
Normal file
19
server/core/CMakeLists.txt
Normal file
@ -0,0 +1,19 @@
|
||||
#file(GLOB FULLCORE_SRC *.c) #Not used, might be useful somewhere
|
||||
#add_library(fullcore ${FULLCORE_SRC})
|
||||
add_executable(maxscale atomic.c buffer.c spinlock.c gateway.c
|
||||
gw_utils.c utils.c dcb.c load_utils.c session.c service.c server.c
|
||||
poll.c config.c users.c hashtable.c dbusers.c thread.c gwbitmask.c
|
||||
monitor.c adminusers.c secrets.c filter.c modutil.c hint.c housekeeper.c)
|
||||
set_target_properties(maxscale PROPERTIES INSTALL_RPATH ${CMAKE_INSTALL_RPATH}:${CMAKE_INSTALL_PREFIX}/lib)
|
||||
target_link_libraries(maxscale utils log_manager aio pthread crypt dl mysqld crypto inih)
|
||||
install(TARGETS maxscale DESTINATION bin)
|
||||
|
||||
add_executable(maxkeys maxkeys.c secrets.c utils.c)
|
||||
set_target_properties(maxkeys PROPERTIES INSTALL_RPATH ${CMAKE_INSTALL_RPATH}:${CMAKE_INSTALL_PREFIX}/lib)
|
||||
target_link_libraries(maxkeys utils log_manager aio pthread crypt dl mysqld crypto inih)
|
||||
install(TARGETS maxkeys DESTINATION bin)
|
||||
|
||||
add_executable(maxpasswd maxpasswd.c secrets.c utils.c)
|
||||
set_target_properties(maxpasswd PROPERTIES INSTALL_RPATH ${CMAKE_INSTALL_RPATH}:${CMAKE_INSTALL_PREFIX}/lib)
|
||||
target_link_libraries(maxpasswd utils log_manager aio pthread crypt dl mysqld crypto inih)
|
||||
install(TARGETS maxpasswd DESTINATION bin)
|
1
server/inih/CMakeLists.txt
Normal file
1
server/inih/CMakeLists.txt
Normal file
@ -0,0 +1 @@
|
||||
add_library(inih ini.c)
|
5
server/modules/CMakeLists.txt
Normal file
5
server/modules/CMakeLists.txt
Normal file
@ -0,0 +1,5 @@
|
||||
include_directories(monitor)
|
||||
add_subdirectory(routing)
|
||||
add_subdirectory(protocol)
|
||||
add_subdirectory(monitor)
|
||||
add_subdirectory(filter)
|
33
server/modules/filter/CMakeLists.txt
Normal file
33
server/modules/filter/CMakeLists.txt
Normal file
@ -0,0 +1,33 @@
|
||||
if(BUILD_RABBITMQ)
|
||||
add_library(mqfilter SHARED mqfilter.c)
|
||||
set_target_properties(mqfilter PROPERTIES INSTALL_RPATH ${CMAKE_INSTALL_RPATH}:${CMAKE_INSTALL_PREFIX}/lib)
|
||||
target_link_libraries(mqfilter utils query_classifier log_manager rabbitmq)
|
||||
install(TARGETS DESTINATION modules)
|
||||
endif(BUILD_RABBITMQ)
|
||||
|
||||
add_library(regexfilter SHARED regexfilter.c)
|
||||
set_target_properties(regexfilter PROPERTIES INSTALL_RPATH ${CMAKE_INSTALL_RPATH}:${CMAKE_INSTALL_PREFIX}/lib)
|
||||
target_link_libraries(regexfilter utils log_manager)
|
||||
install(TARGETS regexfilter DESTINATION modules)
|
||||
|
||||
add_library(testfilter SHARED testfilter.c)
|
||||
set_target_properties(testfilter PROPERTIES INSTALL_RPATH ${CMAKE_INSTALL_RPATH}:${CMAKE_INSTALL_PREFIX}/lib)
|
||||
target_link_libraries(testfilter utils log_manager)
|
||||
install(TARGETS testfilter DESTINATION modules)
|
||||
|
||||
add_library(qlafilter SHARED qlafilter.c)
|
||||
set_target_properties(qlafilter PROPERTIES INSTALL_RPATH ${CMAKE_INSTALL_RPATH}:${CMAKE_INSTALL_PREFIX}/lib)
|
||||
target_link_libraries(qlafilter utils log_manager)
|
||||
install(TARGETS qlafilter DESTINATION modules)
|
||||
|
||||
add_library(tee SHARED tee.c)
|
||||
set_target_properties(tee PROPERTIES INSTALL_RPATH ${CMAKE_INSTALL_RPATH}:${CMAKE_INSTALL_PREFIX}/lib)
|
||||
target_link_libraries(tee utils log_manager)
|
||||
install(TARGETS tee DESTINATION modules)
|
||||
|
||||
add_library(topfilter SHARED topfilter.c)
|
||||
set_target_properties(topfilter PROPERTIES INSTALL_RPATH ${CMAKE_INSTALL_RPATH}:${CMAKE_INSTALL_PREFIX}/lib)
|
||||
target_link_libraries(topfilter utils log_manager)
|
||||
install(TARGETS topfilter DESTINATION modules)
|
||||
|
||||
add_subdirectory(hint)
|
4
server/modules/filter/hint/CMakeLists.txt
Normal file
4
server/modules/filter/hint/CMakeLists.txt
Normal file
@ -0,0 +1,4 @@
|
||||
add_library(hintfilter SHARED hintfilter.c hintparser.c)
|
||||
set_target_properties(hintfilter PROPERTIES INSTALL_RPATH ${CMAKE_INSTALL_RPATH}:${CMAKE_INSTALL_PREFIX}/lib)
|
||||
target_link_libraries(hintfilter utils ssl log_manager)
|
||||
install(TARGETS hintfilter DESTINATION modules)
|
14
server/modules/monitor/CMakeLists.txt
Normal file
14
server/modules/monitor/CMakeLists.txt
Normal file
@ -0,0 +1,14 @@
|
||||
add_library(mysqlmon SHARED mysql_mon.c)
|
||||
set_target_properties(mysqlmon PROPERTIES INSTALL_RPATH ${CMAKE_INSTALL_RPATH}:${CMAKE_INSTALL_PREFIX}/lib)
|
||||
target_link_libraries(mysqlmon utils log_manager mysqld)
|
||||
install(TARGETS mysqlmon DESTINATION modules)
|
||||
|
||||
add_library(galeramon SHARED galera_mon.c)
|
||||
set_target_properties(galeramon PROPERTIES INSTALL_RPATH ${CMAKE_INSTALL_RPATH}:${CMAKE_INSTALL_PREFIX}/lib)
|
||||
target_link_libraries(galeramon utils log_manager mysqld)
|
||||
install(TARGETS galeramon DESTINATION modules)
|
||||
|
||||
add_library(ndbclustermon SHARED ndbcluster_mon.c)
|
||||
set_target_properties(ndbclustermon PROPERTIES INSTALL_RPATH ${CMAKE_INSTALL_RPATH}:${CMAKE_INSTALL_PREFIX}/lib)
|
||||
target_link_libraries(ndbclustermon utils log_manager mysqld)
|
||||
install(TARGETS ndbclustermon DESTINATION modules)
|
29
server/modules/protocol/CMakeLists.txt
Normal file
29
server/modules/protocol/CMakeLists.txt
Normal file
@ -0,0 +1,29 @@
|
||||
add_library(MySQLClient SHARED mysql_client.c mysql_common.c)
|
||||
set_target_properties(MySQLClient PROPERTIES INSTALL_RPATH ${CMAKE_INSTALL_RPATH}:${CMAKE_INSTALL_PREFIX}/lib)
|
||||
target_link_libraries(MySQLClient utils log_manager)
|
||||
install(TARGETS MySQLClient DESTINATION modules)
|
||||
|
||||
add_library(MySQLBackend SHARED mysql_backend.c mysql_common.c)
|
||||
set_target_properties(MySQLBackend PROPERTIES INSTALL_RPATH ${CMAKE_INSTALL_RPATH}:${CMAKE_INSTALL_PREFIX}/lib)
|
||||
target_link_libraries(MySQLBackend utils log_manager)
|
||||
install(TARGETS MySQLBackend DESTINATION modules)
|
||||
|
||||
add_library(telnetd SHARED telnetd.c)
|
||||
set_target_properties(telnetd PROPERTIES INSTALL_RPATH ${CMAKE_INSTALL_RPATH}:${CMAKE_INSTALL_PREFIX}/lib)
|
||||
target_link_libraries(telnetd utils log_manager)
|
||||
install(TARGETS telnetd DESTINATION modules)
|
||||
|
||||
add_library(HTTPD SHARED httpd.c)
|
||||
set_target_properties(HTTPD PROPERTIES INSTALL_RPATH ${CMAKE_INSTALL_RPATH}:${CMAKE_INSTALL_PREFIX}/lib)
|
||||
target_link_libraries(HTTPD utils log_manager)
|
||||
install(TARGETS HTTPD DESTINATION modules)
|
||||
|
||||
add_library(maxscaled SHARED maxscaled.c)
|
||||
set_target_properties(maxscaled PROPERTIES INSTALL_RPATH ${CMAKE_INSTALL_RPATH}:${CMAKE_INSTALL_PREFIX}/lib)
|
||||
target_link_libraries(maxscaled utils log_manager)
|
||||
install(TARGETS maxscaled DESTINATION modules)
|
||||
|
||||
|
||||
|
||||
|
||||
|
22
server/modules/routing/CMakeLists.txt
Normal file
22
server/modules/routing/CMakeLists.txt
Normal file
@ -0,0 +1,22 @@
|
||||
add_library(testroute SHARED testroute.c)
|
||||
set_target_properties(testroute PROPERTIES INSTALL_RPATH ${CMAKE_INSTALL_RPATH}:${CMAKE_INSTALL_PREFIX}/lib)
|
||||
target_link_libraries(testroute utils log_manager)
|
||||
install(TARGETS testroute DESTINATION modules)
|
||||
|
||||
add_library(readconnroute SHARED readconnroute.c)
|
||||
set_target_properties(readconnroute PROPERTIES INSTALL_RPATH ${CMAKE_INSTALL_RPATH}:${CMAKE_INSTALL_PREFIX}/lib)
|
||||
target_link_libraries(readconnroute utils log_manager)
|
||||
install(TARGETS readconnroute DESTINATION modules)
|
||||
|
||||
add_library(debugcli SHARED debugcli.c debugcmd.c)
|
||||
set_target_properties(debugcli PROPERTIES INSTALL_RPATH ${CMAKE_INSTALL_RPATH}:${CMAKE_INSTALL_PREFIX}/lib)
|
||||
target_link_libraries(debugcli utils log_manager)
|
||||
install(TARGETS debugcli DESTINATION modules)
|
||||
|
||||
add_library(cli SHARED cli.c debugcmd.c)
|
||||
set_target_properties(cli PROPERTIES INSTALL_RPATH ${CMAKE_INSTALL_RPATH}:${CMAKE_INSTALL_PREFIX}/lib)
|
||||
target_link_libraries(cli utils log_manager)
|
||||
install(TARGETS cli DESTINATION modules)
|
||||
|
||||
add_subdirectory(readwritesplit)
|
||||
add_subdirectory(binlog)
|
4
server/modules/routing/binlog/CMakeLists.txt
Normal file
4
server/modules/routing/binlog/CMakeLists.txt
Normal file
@ -0,0 +1,4 @@
|
||||
add_library(binlogrouter SHARED blr.c blr_master.c blr_cache.c blr_slave.c blr_file.c)
|
||||
set_target_properties(binlogrouter PROPERTIES INSTALL_RPATH ${CMAKE_INSTALL_RPATH}:${CMAKE_INSTALL_PREFIX}/lib)
|
||||
target_link_libraries(binlogrouter ssl pthread log_manager mysqld)
|
||||
install(TARGETS binlogrouter DESTINATION modules)
|
4
server/modules/routing/readwritesplit/CMakeLists.txt
Normal file
4
server/modules/routing/readwritesplit/CMakeLists.txt
Normal file
@ -0,0 +1,4 @@
|
||||
add_library(readwritesplit SHARED readwritesplit.c)
|
||||
set_target_properties(readwritesplit PROPERTIES INSTALL_RPATH ${CMAKE_INSTALL_RPATH}:${CMAKE_INSTALL_PREFIX}/lib)
|
||||
target_link_libraries(readwritesplit utils ssl pthread log_manager query_classifier mysqld)
|
||||
install(TARGETS readwritesplit DESTINATION modules)
|
3
utils/CMakeLists.txt
Normal file
3
utils/CMakeLists.txt
Normal file
@ -0,0 +1,3 @@
|
||||
cmake_minimum_required(VERSION 2.6)
|
||||
set(UTILS_HEADERS skygw_debug.h skygw_types.h skygw_utils.h)
|
||||
add_library(utils skygw_utils.cc ${UTILS_HEADERS})
|
Loading…
x
Reference in New Issue
Block a user