diff options
author | Vladislav Vaintroub <wlad@mariadb.com> | 2019-06-28 13:21:39 +0200 |
---|---|---|
committer | Vladislav Vaintroub <wlad@mariadb.com> | 2019-06-30 17:48:19 +0200 |
commit | 6dc71d4f1060ac50fb5d48daa7424039c4e8f9df (patch) | |
tree | 8eb192e18b347bd4b8479fa0318a00054af506fb | |
parent | a89f1faf7b55dad33c40c840917c30ca9234cc06 (diff) | |
download | mariadb-git-6dc71d4f1060ac50fb5d48daa7424039c4e8f9df.tar.gz |
improve build, allow sql library to be built in parallel with builtins
-rw-r--r-- | extra/mariabackup/CMakeLists.txt | 6 | ||||
-rw-r--r-- | sql/CMakeLists.txt | 17 | ||||
-rw-r--r-- | unittest/sql/CMakeLists.txt | 8 | ||||
-rw-r--r-- | unittest/sql/dummy_builtins.cc | 26 |
4 files changed, 49 insertions, 8 deletions
diff --git a/extra/mariabackup/CMakeLists.txt b/extra/mariabackup/CMakeLists.txt index 5326ba9f8f5..71d97886b3f 100644 --- a/extra/mariabackup/CMakeLists.txt +++ b/extra/mariabackup/CMakeLists.txt @@ -74,6 +74,7 @@ MYSQL_ADD_EXECUTABLE(mariabackup backup_mysql.cc backup_copy.cc encryption_plugin.cc + ${PROJECT_BINARY_DIR}/sql/sql_builtin.cc ${PROJECT_SOURCE_DIR}/sql/net_serv.cc ${NT_SERVICE_SOURCE} ${PROJECT_SOURCE_DIR}/libmysqld/libmysql.c @@ -81,13 +82,14 @@ MYSQL_ADD_EXECUTABLE(mariabackup ) + + # Export all symbols on Unix, for better crash callstacks SET_TARGET_PROPERTIES(mariabackup PROPERTIES ENABLE_EXPORTS TRUE) ADD_SUBDIRECTORY(crc) -TARGET_LINK_LIBRARIES(mariabackup sql crc) - +TARGET_LINK_LIBRARIES(mariabackup sql sql_builtins crc) IF(NOT HAVE_SYSTEM_REGEX) TARGET_LINK_LIBRARIES(mariabackup pcreposix) ENDIF() diff --git a/sql/CMakeLists.txt b/sql/CMakeLists.txt index 1215ff096ac..64a61201322 100644 --- a/sql/CMakeLists.txt +++ b/sql/CMakeLists.txt @@ -146,11 +146,11 @@ SET (SQL_SOURCE ${WSREP_SOURCES} table_cache.cc encryption.cc temporary_tables.cc proxy_protocol.cc backup.cc xa.cc - ${CMAKE_CURRENT_BINARY_DIR}/sql_builtin.cc ${CMAKE_CURRENT_BINARY_DIR}/sql_yacc.cc ${CMAKE_CURRENT_BINARY_DIR}/sql_yacc_ora.cc ${CMAKE_CURRENT_BINARY_DIR}/lex_hash.h ${CMAKE_CURRENT_BINARY_DIR}/lex_token.h + ${GEN_SOURCES} ${MYSYS_LIBWRAP_SOURCE} ) @@ -179,13 +179,20 @@ RECOMPILE_FOR_EMBEDDED) ADD_LIBRARY(sql STATIC ${SQL_SOURCE}) DTRACE_INSTRUMENT(sql) -TARGET_LINK_LIBRARIES(sql ${MYSQLD_STATIC_PLUGIN_LIBS} +TARGET_LINK_LIBRARIES(sql mysys mysys_ssl dbug strings vio pcre ${LIBWRAP} ${LIBCRYPT} ${LIBDL} ${CMAKE_THREAD_LIBS_INIT} ${WSREP_LIB} ${SSL_LIBRARIES} ${LIBSYSTEMD}) +FOREACH(se aria partition perfschema sql_sequence) + # These engines are used directly in sql sources. + IF(TARGET ${se}) + TARGET_LINK_LIBRARIES(sql ${se}) + ENDIF() +ENDFOREACH() + IF(WIN32) SET(MYSQLD_SOURCE main.cc nt_servc.cc message.rc) TARGET_LINK_LIBRARIES(sql psapi) @@ -288,6 +295,9 @@ IF(MSVC AND NOT WITHOUT_DYNAMIC_PLUGINS) SET_TARGET_PROPERTIES(mysqld_import_lib PROPERTIES IMPORTED_LOCATION ${MYSQLD_LIB}) ENDIF() +ADD_LIBRARY( sql_builtins ${CMAKE_CURRENT_BINARY_DIR}/sql_builtin.cc) +TARGET_LINK_LIBRARIES(sql_builtins ${MYSQLD_STATIC_PLUGIN_LIBS}) + MYSQL_ADD_EXECUTABLE(mysqld ${MYSQLD_SOURCE} DESTINATION ${INSTALL_SBINDIR} COMPONENT Server) IF(APPLE) @@ -315,7 +325,8 @@ IF(NOT WITHOUT_DYNAMIC_PLUGINS) ENDIF() ENDIF(NOT WITHOUT_DYNAMIC_PLUGINS) -TARGET_LINK_LIBRARIES(mysqld LINK_PRIVATE sql) +TARGET_LINK_LIBRARIES(mysqld LINK_PRIVATE sql sql_builtins) + # Provide plugins with minimal set of libraries SET(INTERFACE_LIBS ${LIBRT}) diff --git a/unittest/sql/CMakeLists.txt b/unittest/sql/CMakeLists.txt index a4ba1019e49..987e78433a4 100644 --- a/unittest/sql/CMakeLists.txt +++ b/unittest/sql/CMakeLists.txt @@ -21,10 +21,12 @@ INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/sql ${CMAKE_SOURCE_DIR}/extra/yassl/include) IF(WIN32) - ADD_EXECUTABLE(explain_filename-t explain_filename-t.cc - ../../sql/nt_servc.cc) + ADD_EXECUTABLE(explain_filename-t + explain_filename-t.cc + dummy_builtins.cc + ../../sql/nt_servc.cc) ELSE() - ADD_EXECUTABLE(explain_filename-t explain_filename-t.cc) + ADD_EXECUTABLE(explain_filename-t explain_filename-t.cc dummy_builtins.cc) ENDIF() TARGET_LINK_LIBRARIES(explain_filename-t sql mytap) diff --git a/unittest/sql/dummy_builtins.cc b/unittest/sql/dummy_builtins.cc new file mode 100644 index 00000000000..31d043d19ec --- /dev/null +++ b/unittest/sql/dummy_builtins.cc @@ -0,0 +1,26 @@ +/* 2018 MariaDB + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + +#include <my_global.h> +#include <mysql/plugin.h> +struct st_maria_plugin *mysql_optional_plugins[]= +{ + 0 +}; + +struct st_maria_plugin *mysql_mandatory_plugins[]= +{ + 0 +}; |