Skip to content

Commit a8cd34f

Browse files
committed
Add support for building from server
1 parent 27ec629 commit a8cd34f

40 files changed

+125
-227
lines changed

CMakeLists.txt

+77-28
Original file line numberDiff line numberDiff line change
@@ -77,35 +77,68 @@ SET(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/lib)
7777
SET (ENGINE_SYSCONFDIR "/etc")
7878
SET (ENGINE_DATADIR "/var/lib/columnstore")
7979

80-
# TODO: This will all be replaced by variables from server install_layout.cmake once we are a submodule
8180
IF (RPM)
82-
SET(MARIADB_PLUGINDIR "/usr/lib64/mysql/plugin")
83-
SET(MARIADB_MYCNFDIR "/etc/my.cnf.d")
84-
SET (ENGINE_LIBDIR "/usr/lib64")
85-
SET (ENGINE_BINDIR "/usr/bin")
86-
SET (ENGINE_INCDIR "/usr/include")
87-
SET (ENGINE_MANDIR "/usr/share/man")
88-
SET (ENGINE_SBINDIR "/usr/sbin")
89-
SET (ENGINE_SUPPORTDIR "/usr/share/columnstore")
81+
# We are building from MariaDB server submodule if this is set
82+
if (INSTALL_LAYOUT)
83+
SET(MARIADB_PLUGINDIR "${CMAKE_INSTALL_PREFIX}/${INSTALL_PLUGINDIR_RPM}")
84+
SET(MARIADB_MYCNFDIR "${CMAKE_INSTALL_PREFIX}/${INSTALL_SYSCONF2DIR_RPM}")
85+
SET(ENGINE_LIBDIR "${CMAKE_INSTALL_PREFIX}/${INSTALL_LIBDIR_RPM}")
86+
SET(ENGINE_BINDIR "${CMAKE_INSTALL_PREFIX}/${INSTALL_BINDIR_RPM}")
87+
SET(ENGINE_INCDIR "${CMAKE_INSTALL_PREFIX}/include")
88+
SET(ENGINE_MANDIR "${CMAKE_INSTALL_PREFIX}/${INSTALL_MANDIR_RPM}")
89+
SET(ENGINE_SBINDIR "${CMAKE_INSTALL_PREFIX}/${INSTALL_SBINDIR_RPM}")
90+
SET(ENGINE_SUPPORTDIR "${CMAKE_INSTALL_PREFIX}/share/columnstore")
91+
else ()
92+
SET(MARIADB_PLUGINDIR "/usr/lib64/mysql/plugin")
93+
SET(MARIADB_MYCNFDIR "/etc/my.cnf.d")
94+
SET (ENGINE_LIBDIR "/usr/lib64")
95+
SET (ENGINE_BINDIR "/usr/bin")
96+
SET (ENGINE_INCDIR "/usr/include")
97+
SET (ENGINE_MANDIR "/usr/share/man")
98+
SET (ENGINE_SBINDIR "/usr/sbin")
99+
SET (ENGINE_SUPPORTDIR "/usr/share/columnstore")
100+
endif ()
90101
ELSEIF (DEB)
91-
SET(MARIADB_PLUGINDIR "/usr/lib/mysql/plugin")
92-
SET(MARIADB_MYCNFDIR "/etc/mysql/conf.d")
93-
SET (ENGINE_LIBDIR "/usr/lib")
94-
SET (ENGINE_BINDIR "/usr/bin")
95-
SET (ENGINE_INCDIR "/usr/include")
96-
SET (ENGINE_MANDIR "/usr/share/man")
97-
SET (ENGINE_SBINDIR "/usr/sbin")
98-
SET (ENGINE_SUPPORTDIR "/usr/share/columnstore")
102+
if (INSTALL_LAYOUT)
103+
SET(MARIADB_PLUGINDIR "${CMAKE_INSTALL_PREFIX}/${INSTALL_PLUGINDIR_DEB}")
104+
SET(MARIADB_MYCNFDIR "${CMAKE_INSTALL_PREFIX}/${INSTALL_SYSCONF2DIR_DEB}")
105+
SET(ENGINE_LIBDIR "${CMAKE_INSTALL_PREFIX}/${INSTALL_LIBDIR_DEB}")
106+
SET(ENGINE_BINDIR "${CMAKE_INSTALL_PREFIX}/${INSTALL_BINDIR_DEB}")
107+
SET(ENGINE_INCDIR "${CMAKE_INSTALL_PREFIX}/include")
108+
SET(ENGINE_MANDIR "${CMAKE_INSTALL_PREFIX}/${INSTALL_MANDIR_DEB}")
109+
SET(ENGINE_SBINDIR "${CMAKE_INSTALL_PREFIX}/${INSTALL_SBINDIR_DEB}")
110+
SET(ENGINE_SUPPORTDIR "${CMAKE_INSTALL_PREFIX}/share/columnstore")
111+
else ()
112+
SET(MARIADB_PLUGINDIR "/usr/lib/mysql/plugin")
113+
SET(MARIADB_MYCNFDIR "/etc/mysql/conf.d")
114+
SET (ENGINE_LIBDIR "/usr/lib")
115+
SET (ENGINE_BINDIR "/usr/bin")
116+
SET (ENGINE_INCDIR "/usr/include")
117+
SET (ENGINE_MANDIR "/usr/share/man")
118+
SET (ENGINE_SBINDIR "/usr/sbin")
119+
SET (ENGINE_SUPPORTDIR "/usr/share/columnstore")
120+
endif ()
99121
ELSE()
100-
# TODO: prefix should probably apply here
101-
SET(MARIADB_PLUGINDIR "/usr/local/lib/mysql/plugin")
102-
SET(MARIADB_MYCNFDIR "/etc/mysql")
103-
SET (ENGINE_LIBDIR "/usr/local/lib")
104-
SET (ENGINE_BINDIR "/usr/local/bin")
105-
SET (ENGINE_INCDIR "/usr/local/include")
106-
SET (ENGINE_MANDIR "/usr/local/man")
107-
SET (ENGINE_SBINDIR "/usr/local/sbin")
108-
SET (ENGINE_SUPPORTDIR "/usr/local/share/columnstore")
122+
if (INSTALL_LAYOUT)
123+
SET(MARIADB_PLUGINDIR "${CMAKE_INSTALL_PREFIX}/${INSTALL_PLUGINDIR_STANDALONE}")
124+
SET(MARIADB_MYCNFDIR "${CMAKE_INSTALL_PREFIX}/${INSTALL_SYSCONF2DIR_STANDALONE}")
125+
SET(ENGINE_LIBDIR "${CMAKE_INSTALL_PREFIX}/${INSTALL_LIBDIR_STANDALONE}")
126+
SET(ENGINE_BINDIR "${CMAKE_INSTALL_PREFIX}/${INSTALL_BINDIR_STANDALONE}")
127+
SET(ENGINE_INCDIR "${CMAKE_INSTALL_PREFIX}/include")
128+
SET(ENGINE_MANDIR "${CMAKE_INSTALL_PREFIX}/${INSTALL_MANDIR_STANDALONE}")
129+
SET(ENGINE_SBINDIR "${CMAKE_INSTALL_PREFIX}/${INSTALL_SBINDIR_STANDALONE}")
130+
SET(ENGINE_SUPPORTDIR "${CMAKE_INSTALL_PREFIX}/share/columnstore")
131+
else ()
132+
# TODO: prefix should probably apply here
133+
SET(MARIADB_PLUGINDIR "/usr/local/lib/mysql/plugin")
134+
SET(MARIADB_MYCNFDIR "/etc/mysql")
135+
SET (ENGINE_LIBDIR "/usr/local/lib")
136+
SET (ENGINE_BINDIR "/usr/local/bin")
137+
SET (ENGINE_INCDIR "/usr/local/include")
138+
SET (ENGINE_MANDIR "/usr/local/man")
139+
SET (ENGINE_SBINDIR "/usr/local/sbin")
140+
SET (ENGINE_SUPPORTDIR "/usr/local/share/columnstore")
141+
endif ()
109142
ENDIF()
110143

111144
SET_PROPERTY(DIRECTORY PROPERTY EP_BASE ${CMAKE_CURRENT_BINARY_DIR}/external)
@@ -200,6 +233,8 @@ IF (SERVER_BUILD_INCLUDE_DIR)
200233
IF (NOT IS_ABSOLUTE ${SERVER_BUILD_INCLUDE_DIR})
201234
SET (SERVER_BUILD_INCLUDE_DIR ${CMAKE_BINARY_DIR}/${SERVER_BUILD_INCLUDE_DIR})
202235
ENDIF()
236+
ELSEIF (INSTALL_LAYOUT)
237+
SET (SERVER_BUILD_INCLUDE_DIR ${CMAKE_SOURCE_DIR}/include)
203238
ELSE()
204239
SET (SERVER_BUILD_INCLUDE_DIR ${CMAKE_BINARY_DIR}/../include)
205240
ENDIF()
@@ -208,6 +243,8 @@ IF (SERVER_SOURCE_ROOT_DIR)
208243
IF (NOT IS_ABSOLUTE ${SERVER_SOURCE_ROOT_DIR})
209244
SET (SERVER_SOURCE_ROOT_DIR ${CMAKE_BINARY_DIR}/${SERVER_SOURCE_ROOT_DIR})
210245
ENDIF()
246+
ELSEIF (INSTALL_LAYOUT)
247+
SET (SERVER_SOURCE_ROOT_DIR ${CMAKE_SOURCE_DIR})
211248
ELSE()
212249
SET (SERVER_SOURCE_ROOT_DIR ${CMAKE_BINARY_DIR}/..)
213250
ENDIF()
@@ -219,7 +256,11 @@ ENDIF()
219256
MESSAGE("SERVER_BUILD_INCLUDE_DIR = ${SERVER_BUILD_INCLUDE_DIR}")
220257
MESSAGE("SERVER_SOURCE_ROOT_DIR = ${SERVER_SOURCE_ROOT_DIR}")
221258

222-
SET (MARIADB_CLIENT_LIBS -L${SERVER_BUILD_INCLUDE_DIR}/../libmariadb/libmariadb/ libmariadb.so)
259+
IF (INSTALL_LAYOUT)
260+
SET (MARIADB_CLIENT_LIBS libmariadb)
261+
ELSE()
262+
SET (MARIADB_CLIENT_LIBS -L${SERVER_BUILD_INCLUDE_DIR}/../libmariadb/libmariadb/ libmariadb.so)
263+
ENDIF()
223264

224265
#SET (ENGINE_UTILS_BOOSTIDB_INCLUDE "{CMAKE_CURRENT_SOURCE_DIR}/utils/boost_idb")
225266
SET (ENGINE_UTILS_MESSAGEQCPP_INCLUDE "${CMAKE_CURRENT_SOURCE_DIR}/utils/messageqcpp")
@@ -322,10 +363,18 @@ exec_program("git"
322363
CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/build/releasenum.in ${CMAKE_CURRENT_BINARY_DIR}/build/releasenum IMMEDIATE)
323364
INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/build/releasenum DESTINATION ${ENGINE_SUPPORTDIR} COMPONENT platform)
324365
CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/columnstoreversion.h.in ${CMAKE_CURRENT_SOURCE_DIR}/columnstoreversion.h)
325-
CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/config.h.in ${CMAKE_CURRENT_BINARY_DIR}/config.h)
366+
CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/mcsconfig.h.in ${CMAKE_CURRENT_BINARY_DIR}/mcsconfig.h)
326367

327368
CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/gitversionEngine.in ${CMAKE_CURRENT_BINARY_DIR}/gitversionEngine IMMEDIATE)
328369
INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/gitversionEngine DESTINATION ${ENGINE_SUPPORTDIR} COMPONENT platform)
329370

371+
# Do this or when MariaDB builds us we don't have GenError which is required for these
372+
IF (INSTALL_LAYOUT)
373+
ADD_DEPENDENCIES(udf_mysql GenError)
374+
ADD_DEPENDENCIES(funcexp GenError)
375+
ADD_DEPENDENCIES(oamcpp GenError)
376+
ADD_DEPENDENCIES(regr_mysql GenError)
377+
ENDIF ()
378+
330379
INCLUDE(cpackEngineRPM)
331380
INCLUDE(cpackEngineDEB)

build/CMakeLists.txt

-155
This file was deleted.

dbcon/mysql/CMakeLists.txt

+11-5
Original file line numberDiff line numberDiff line change
@@ -33,14 +33,20 @@ add_definitions(-DMYSQL_DYNAMIC_PLUGIN)
3333

3434
set_source_files_properties(ha_mcs.cpp PROPERTIES COMPILE_FLAGS "-fno-implicit-templates")
3535

36-
add_library(ha_columnstore SHARED ${libcalmysql_SRCS})
37-
SET_TARGET_PROPERTIES(ha_columnstore PROPERTIES PREFIX "")
36+
if (COMMAND mysql_add_plugin)
37+
mysql_add_plugin(columnstore ${libcalmysql_SRCS} STORAGE_ENGINE MODULE_ONLY DEFAULT
38+
LINK_LIBRARIES ${ENGINE_LDFLAGS} ${ENGINE_WRITE_LIBS} ${NETSNMP_LIBRARIES} ${SERVER_BUILD_DIR}/libservices/libmysqlservices.a threadpool
39+
COMPONENT columnstore-engine)
40+
else ()
41+
add_library(ha_columnstore SHARED ${libcalmysql_SRCS})
42+
SET_TARGET_PROPERTIES(ha_columnstore PROPERTIES PREFIX "")
3843

39-
target_link_libraries(ha_columnstore ${ENGINE_LDFLAGS} ${ENGINE_WRITE_LIBS} ${NETSNMP_LIBRARIES} ${SERVER_BUILD_DIR}/libservices/libmysqlservices.a threadpool)
44+
target_link_libraries(ha_columnstore ${ENGINE_LDFLAGS} ${ENGINE_WRITE_LIBS} ${NETSNMP_LIBRARIES} ${SERVER_BUILD_DIR}/libservices/libmysqlservices.a threadpool)
4045

41-
set_target_properties(ha_columnstore PROPERTIES VERSION 1.0.0 SOVERSION 1)
46+
set_target_properties(ha_columnstore PROPERTIES VERSION 1.0.0 SOVERSION 1)
4247

43-
install(TARGETS ha_columnstore DESTINATION ${MARIADB_PLUGINDIR} COMPONENT storage-engine)
48+
install(TARGETS ha_columnstore DESTINATION ${MARIADB_PLUGINDIR} COMPONENT storage-engine)
49+
endif ()
4450
install(FILES syscatalog_mysql.sql
4551
dumpcat_mysql.sql
4652
calsetuserpriority.sql

exemgr/main.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@
7373
#include "liboamcpp.h"
7474
#include "crashtrace.h"
7575
#include "utils_utf8.h"
76-
#include "config.h"
76+
#include "mcsconfig.h"
7777

7878
#if defined(SKIP_OAM_INIT)
7979
#include "dbrm.h"

config.h.in renamed to mcsconfig.h.in

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
/* config.h.cmake */
2-
#ifndef TEST_CONFIG_H
3-
#define TEST_CONFIG_H
1+
/* mcsconfig.h.cmake */
2+
#ifndef TEST_MCSCONFIG_H
3+
#define TEST_MCSCONFIG_H
44

55
/* Define to 1 to let the system come up without using OAM */
66
#cmakedefine SKIP_OAM_INIT 1

oam/oamcpp/CMakeLists.txt

-1
Original file line numberDiff line numberDiff line change
@@ -16,4 +16,3 @@ set_target_properties(oamcpp PROPERTIES VERSION 1.0.0 SOVERSION 1)
1616

1717
install(TARGETS oamcpp DESTINATION ${ENGINE_LIBDIR} COMPONENT libs)
1818

19-

oam/oamcpp/liboamcpp.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@
5656
#ifdef _MSC_VER
5757
#include "idbregistry.h"
5858
#endif
59-
#include "config.h"
59+
#include "mcsconfig.h"
6060
#include "installdir.h"
6161
#include "dbrm.h"
6262
#include "sessionmanager.h"

oam/oamcpp/oamcache.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ using namespace boost;
3434
#include "exceptclasses.h"
3535
#include "configcpp.h"
3636
#include "installdir.h"
37-
#include "config.h"
37+
#include "mcsconfig.h"
3838

3939
namespace
4040
{

oamapps/columnstoreSupport/columnstoreSupport.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@
2929
#include <netdb.h>
3030
#include <readline/readline.h>
3131

32-
#include "config.h"
32+
#include "mcsconfig.h"
3333
#include "liboamcpp.h"
3434
#include "configcpp.h"
3535
#include "installdir.h"

oamapps/mcsadmin/mcsadmin.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ extern int h_errno;
3333
#include <boost/scoped_ptr.hpp>
3434
#include <boost/tokenizer.hpp>
3535

36-
#include "config.h"
36+
#include "mcsconfig.h"
3737
#include "sessionmanager.h"
3838
#include "dbrm.h"
3939
#include "messagequeue.h"

oamapps/postConfigure/helpers.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525

2626
#include <readline/readline.h>
2727

28-
#include "config.h"
28+
#include "mcsconfig.h"
2929
#include "configcpp.h"
3030
using namespace config;
3131

0 commit comments

Comments
 (0)