diff options
author | unknown <iggy@amd64.(none)> | 2007-08-03 14:43:12 -0400 |
---|---|---|
committer | unknown <iggy@amd64.(none)> | 2007-08-03 14:43:12 -0400 |
commit | c6c57ed783eabf5d9c99a3c1fd4f5ea5518c069c (patch) | |
tree | 743ce671890386580cfb5fe72e9393a21c9f567f /client | |
parent | 6f88aa45dbc129751890421b13e8c4e13b8bd888 (diff) | |
download | mariadb-git-c6c57ed783eabf5d9c99a3c1fd4f5ea5518c069c.tar.gz |
Bug#29903 The CMake build method does not produce the embedded library.
- Changes to correct and test Windows embedded build.
BitKeeper/etc/ignore:
Bug#29903 The CMake build method does not produce the embedded library.
- Ignore auto-generated Windows embedded resources.
CMakeLists.txt:
Bug#29903 The CMake build method does not produce the embedded library.
- Hardcode CSV for all configurations.
- Add client directory for gen_lex_hash dependency.
client/CMakeLists.txt:
Bug#29903 The CMake build method does not produce the embedded library.
- Build the mysqlclient library and echo for the embedded solution.
client/client_priv.h:
Bug#29903 The CMake build method does not produce the embedded library.
- Defined new option.
client/mysql.cc:
Bug#29903 The CMake build method does not produce the embedded library.
- Add server-arg command line parameter
libmysqld/CMakeLists.txt:
Bug#29903 The CMake build method does not produce the embedded library.
- Added auto generated resources; sql_yacc.cc, sql_yacc.h, message.rc
message.h and lex_hash.h.
- Link csv library to libmsyqld.
libmysqld/Makefile.am:
Bug#29903 The CMake build method does not produce the embedded library.
- Include CMakeLists.txt in dist.
libmysqld/examples/CMakeLists.txt:
Bug#29903 The CMake build method does not produce the embedded library.
- Follow existing naming convention.
libmysqld/examples/Makefile.am:
Bug#29903 The CMake build method does not produce the embedded library.
- Include CMakeLists.txt in dist.
mysql-test/mysql-test-run.pl:
Bug#29903 The CMake build method does not produce the embedded library.
- Move embedded option block earlier in the script.
- Added the path to the libmysqld.dll to Windows path.
win/README:
Bug#29903 The CMake build method does not produce the embedded library.
- Add instructions for building/testing the embedded library.
Diffstat (limited to 'client')
-rw-r--r-- | client/CMakeLists.txt | 69 | ||||
-rw-r--r-- | client/client_priv.h | 2 | ||||
-rw-r--r-- | client/mysql.cc | 48 |
3 files changed, 73 insertions, 46 deletions
diff --git a/client/CMakeLists.txt b/client/CMakeLists.txt index 8a670cf4c4b..d8a967e02d8 100644 --- a/client/CMakeLists.txt +++ b/client/CMakeLists.txt @@ -104,40 +104,43 @@ ADD_LIBRARY(mysqlclient ../mysys/array.c ../strings/bchange.c ../strings/bmove.c ) ADD_DEPENDENCIES(mysqlclient GenError) -ADD_EXECUTABLE(mysql completion_hash.cc mysql.cc readline.cc sql_string.cc) -LINK_DIRECTORIES(${MYSQL_BINARY_DIR}/mysys ${MYSQL_BINARY_DIR}/zlib) -TARGET_LINK_LIBRARIES(mysql mysqlclient mysys zlib dbug wsock32) -ADD_EXECUTABLE(mysqltest mysqltest.c) -TARGET_LINK_LIBRARIES(mysqltest mysqlclient mysys zlib dbug regex wsock32) - -ADD_EXECUTABLE(mysqlcheck mysqlcheck.c) -TARGET_LINK_LIBRARIES(mysqlcheck mysqlclient dbug zlib wsock32) - -ADD_EXECUTABLE(mysqldump mysqldump.c ../sql-common/my_user.c) -TARGET_LINK_LIBRARIES(mysqldump mysqlclient mysys dbug zlib wsock32) - -ADD_EXECUTABLE(mysqlimport mysqlimport.c) -TARGET_LINK_LIBRARIES(mysqlimport mysqlclient mysys dbug zlib wsock32) - -ADD_EXECUTABLE(mysql_upgrade mysql_upgrade.c ../mysys/my_getpagesize.c) -TARGET_LINK_LIBRARIES(mysql_upgrade mysqlclient dbug zlib wsock32) -ADD_DEPENDENCIES(mysql_upgrade GenFixPrivs) - -ADD_EXECUTABLE(mysqlshow mysqlshow.c) -TARGET_LINK_LIBRARIES(mysqlshow mysqlclient mysys dbug zlib wsock32) - -ADD_EXECUTABLE(mysqlbinlog mysqlbinlog.cc ../mysys/mf_tempdir.c ../mysys/my_new.cc - ../mysys/my_bit.c ../mysys/my_bitmap.c ../mysys/my_vle.c - ../mysys/base64.c) -TARGET_LINK_LIBRARIES(mysqlbinlog mysqlclient dbug zlib wsock32) - -ADD_EXECUTABLE(mysqladmin mysqladmin.cc) -TARGET_LINK_LIBRARIES(mysqladmin mysqlclient mysys dbug zlib wsock32) - -ADD_EXECUTABLE(mysqlslap mysqlslap.c) -SET_SOURCE_FILES_PROPERTIES(mysqlslap.c PROPERTIES COMPILE_FLAGS "-DTHREADS") -TARGET_LINK_LIBRARIES(mysqlslap mysqlclient mysys zlib wsock32 dbug) +IF(NOT EMBEDDED_ONLY) + ADD_EXECUTABLE(mysql completion_hash.cc mysql.cc readline.cc sql_string.cc) + LINK_DIRECTORIES(${MYSQL_BINARY_DIR}/mysys ${MYSQL_BINARY_DIR}/zlib) + TARGET_LINK_LIBRARIES(mysql mysqlclient mysys zlib dbug wsock32) + + ADD_EXECUTABLE(mysqltest mysqltest.c) + TARGET_LINK_LIBRARIES(mysqltest mysqlclient mysys zlib dbug regex wsock32) + + ADD_EXECUTABLE(mysqlcheck mysqlcheck.c) + TARGET_LINK_LIBRARIES(mysqlcheck mysqlclient dbug zlib wsock32) + + ADD_EXECUTABLE(mysqldump mysqldump.c ../sql-common/my_user.c) + TARGET_LINK_LIBRARIES(mysqldump mysqlclient mysys dbug zlib wsock32) + + ADD_EXECUTABLE(mysqlimport mysqlimport.c) + TARGET_LINK_LIBRARIES(mysqlimport mysqlclient mysys dbug zlib wsock32) + + ADD_EXECUTABLE(mysql_upgrade mysql_upgrade.c ../mysys/my_getpagesize.c) + TARGET_LINK_LIBRARIES(mysql_upgrade mysqlclient dbug zlib wsock32) + ADD_DEPENDENCIES(mysql_upgrade GenFixPrivs) + + ADD_EXECUTABLE(mysqlshow mysqlshow.c) + TARGET_LINK_LIBRARIES(mysqlshow mysqlclient mysys dbug zlib wsock32) + + ADD_EXECUTABLE(mysqlbinlog mysqlbinlog.cc ../mysys/mf_tempdir.c ../mysys/my_new.cc + ../mysys/my_bit.c ../mysys/my_bitmap.c ../mysys/my_vle.c + ../mysys/base64.c) + TARGET_LINK_LIBRARIES(mysqlbinlog mysqlclient dbug zlib wsock32) + + ADD_EXECUTABLE(mysqladmin mysqladmin.cc) + TARGET_LINK_LIBRARIES(mysqladmin mysqlclient mysys dbug zlib wsock32) + + ADD_EXECUTABLE(mysqlslap mysqlslap.c) + SET_SOURCE_FILES_PROPERTIES(mysqlslap.c PROPERTIES COMPILE_FLAGS "-DTHREADS") + TARGET_LINK_LIBRARIES(mysqlslap mysqlclient mysys zlib wsock32 dbug) +ENDIF(NOT EMBEDDED_ONLY) ADD_EXECUTABLE(echo echo.c) diff --git a/client/client_priv.h b/client/client_priv.h index 8bc8ef692de..f992f19938b 100644 --- a/client/client_priv.h +++ b/client/client_priv.h @@ -48,7 +48,7 @@ enum options_client OPT_PROMPT, OPT_IGN_LINES,OPT_TRANSACTION,OPT_MYSQL_PROTOCOL, OPT_SHARED_MEMORY_BASE_NAME, OPT_FRM, OPT_SKIP_OPTIMIZATION, OPT_COMPATIBLE, OPT_RECONNECT, OPT_DELIMITER, OPT_SECURE_AUTH, - OPT_OPEN_FILES_LIMIT, OPT_SET_CHARSET, OPT_CREATE_OPTIONS, + OPT_OPEN_FILES_LIMIT, OPT_SET_CHARSET, OPT_CREATE_OPTIONS, OPT_SERVER_ARG, OPT_START_POSITION, OPT_STOP_POSITION, OPT_START_DATETIME, OPT_STOP_DATETIME, OPT_SIGINT_IGNORE, OPT_HEXBLOB, OPT_ORDER_BY_PRIMARY, OPT_COUNT, #ifdef HAVE_NDBCLUSTER_DB diff --git a/client/mysql.cc b/client/mysql.cc index fe057c8b8a4..cd6a9fa40b2 100644 --- a/client/mysql.cc +++ b/client/mysql.cc @@ -51,6 +51,9 @@ const char *VER= "14.13"; /* Buffer to hold 'version' and 'version_comment' */ #define MAX_SERVER_VERSION_LENGTH 128 +/* Array of options to pass to libemysqld */ +#define MAX_SERVER_ARGS 64 + void* sql_alloc(unsigned size); // Don't use mysqld alloc for these void sql_element_free(void *ptr); #include "sql_string.h" @@ -302,7 +305,10 @@ static COMMANDS commands[] = { }; static const char *load_default_groups[]= { "mysql","client",0 }; -static const char *server_default_groups[]= + +static int embedded_server_arg_count= 0; +static char *embedded_server_args[MAX_SERVER_ARGS]; +static const char *embedded_server_groups[]= { "server", "embedded", "mysql_SERVER", 0 }; #ifdef HAVE_READLINE @@ -347,15 +353,6 @@ static sig_handler handle_sigint(int sig); int main(int argc,char *argv[]) { char buff[80]; - char *defaults, *extra_defaults, *group_suffix; - char *emb_argv[4]; - int emb_argc; - - /* Get --defaults-xxx args for mysql_server_init() */ - emb_argc= get_defaults_options(argc, argv, &defaults, &extra_defaults, - &group_suffix)+1; - memcpy((char*) emb_argv, (char*) argv, emb_argc * sizeof(*argv)); - emb_argv[emb_argc]= 0; MY_INIT(argv[0]); DBUG_ENTER("main"); @@ -416,7 +413,8 @@ int main(int argc,char *argv[]) my_end(0); exit(1); } - if (mysql_server_init(emb_argc, emb_argv, (char**) server_default_groups)) + if (mysql_server_init(embedded_server_arg_count, embedded_server_args, + (char**) embedded_server_groups)) { free_defaults(defaults_argv); my_end(0); @@ -539,6 +537,8 @@ sig_handler mysql_end(int sig) my_free(shared_memory_base_name,MYF(MY_ALLOW_ZERO_PTR)); #endif my_free(current_prompt,MYF(MY_ALLOW_ZERO_PTR)); + while (embedded_server_arg_count > 1) + my_free(embedded_server_args[--embedded_server_arg_count],MYF(0)); mysql_server_end(); free_defaults(defaults_argv); my_end(info_flag ? MY_CHECK_ERROR : 0); @@ -761,6 +761,8 @@ static struct my_option my_long_options[] = {"secure-auth", OPT_SECURE_AUTH, "Refuse client connecting to server if it" " uses old (pre-4.1.1) protocol", (uchar**) &opt_secure_auth, (uchar**) &opt_secure_auth, 0, GET_BOOL, NO_ARG, 0, 0, 0, 0, 0, 0}, + {"server-arg", OPT_SERVER_ARG, "Send embedded server this as a parameter.", + 0, 0, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0}, {"show-warnings", OPT_SHOW_WARNINGS, "Show warnings after every statement.", (uchar**) &show_warnings, (uchar**) &show_warnings, 0, GET_BOOL, NO_ARG, 0, 0, 0, 0, 0, 0}, @@ -888,7 +890,29 @@ get_one_option(int optid, const struct my_option *opt __attribute__((unused)), opt_protocol= find_type_or_exit(argument, &sql_protocol_typelib, opt->name); break; - break; + case OPT_SERVER_ARG: +#ifdef EMBEDDED_LIBRARY + /* + When the embedded server is being tested, the client needs to be + able to pass command-line arguments to the embedded server so it can + locate the language files and data directory. + */ + if (!embedded_server_arg_count) + { + embedded_server_arg_count= 1; + embedded_server_args[0]= (char*) ""; + } + if (embedded_server_arg_count == MAX_SERVER_ARGS-1 || + !(embedded_server_args[embedded_server_arg_count++]= + my_strdup(argument, MYF(MY_FAE)))) + { + put_info("Can't use server argument", INFO_ERROR); + return 0; + } +#else /*EMBEDDED_LIBRARY */ + printf("WARNING: --server-arg option not supported in this configuration.\n"); +#endif + break; case 'A': opt_rehash= 0; break; |