mirror of
https://github.com/MariaDB/server.git
synced 2025-07-29 05:21:33 +03:00
WL#5161 : Cross-platform build with CMake
This commit is contained in:
@ -94,6 +94,7 @@ $SIG{INT}= sub { mtr_error("Got ^C signal"); };
|
||||
our $mysql_version_id;
|
||||
our $glob_mysql_test_dir;
|
||||
our $basedir;
|
||||
our $bindir;
|
||||
|
||||
our $path_charsetsdir;
|
||||
our $path_client_bindir;
|
||||
@ -943,7 +944,11 @@ sub command_line_setup {
|
||||
{
|
||||
$basedir= dirname($basedir);
|
||||
}
|
||||
|
||||
|
||||
# Respect MTR_BINDIR variable, which is typically set in to the
|
||||
# build directory in out-of-source builds.
|
||||
$bindir=$ENV{MTR_BINDIR}||$basedir;
|
||||
|
||||
# Look for the client binaries directory
|
||||
if ($path_client_bindir)
|
||||
{
|
||||
@ -952,21 +957,21 @@ sub command_line_setup {
|
||||
}
|
||||
else
|
||||
{
|
||||
$path_client_bindir= mtr_path_exists("$basedir/client_release",
|
||||
"$basedir/client_debug",
|
||||
$path_client_bindir= mtr_path_exists("$bindir/client_release",
|
||||
"$bindir/client_debug",
|
||||
vs_config_dirs('client', ''),
|
||||
"$basedir/client",
|
||||
"$basedir/bin");
|
||||
"$bindir/client",
|
||||
"$bindir/bin");
|
||||
}
|
||||
|
||||
# Look for language files and charsetsdir, use same share
|
||||
$path_language= mtr_path_exists("$basedir/share/mysql",
|
||||
"$basedir/sql/share",
|
||||
"$basedir/share");
|
||||
|
||||
|
||||
$path_language= mtr_path_exists("$bindir/share/mysql",
|
||||
"$bindir/sql/share",
|
||||
"$bindir/share");
|
||||
my $path_share= $path_language;
|
||||
$path_charsetsdir= mtr_path_exists("$path_share/charsets");
|
||||
$path_charsetsdir = mtr_path_exists("$basedir/share/mysql/charsets",
|
||||
"$basedir/sql/share/charsets",
|
||||
"$basedir/share/charsets");
|
||||
|
||||
if (using_extern())
|
||||
{
|
||||
@ -1104,7 +1109,14 @@ sub command_line_setup {
|
||||
# --------------------------------------------------------------------------
|
||||
# Set the "var/" directory, the base for everything else
|
||||
# --------------------------------------------------------------------------
|
||||
$default_vardir= "$glob_mysql_test_dir/var";
|
||||
if(defined $ENV{MTR_BINDIR})
|
||||
{
|
||||
$default_vardir= "$ENV{MTR_BINDIR}/mysql-test/var";
|
||||
}
|
||||
else
|
||||
{
|
||||
$default_vardir= "$glob_mysql_test_dir/var";
|
||||
}
|
||||
if ( ! $opt_vardir )
|
||||
{
|
||||
$opt_vardir= $default_vardir;
|
||||
@ -1558,7 +1570,8 @@ sub collect_mysqld_features_from_running_server ()
|
||||
}
|
||||
|
||||
sub find_mysqld {
|
||||
my ($mysqld_basedir)= @_;
|
||||
|
||||
my ($mysqld_basedir)= $ENV{MTR_BINDIR}|| @_;
|
||||
|
||||
my @mysqld_names= ("mysqld", "mysqld-max-nt", "mysqld-max",
|
||||
"mysqld-nt");
|
||||
@ -1644,7 +1657,7 @@ sub client_debug_arg($$) {
|
||||
|
||||
sub mysql_fix_arguments () {
|
||||
|
||||
return "" if ( IS_WINDOWS );
|
||||
return "" ;
|
||||
|
||||
my $exe=
|
||||
mtr_script_exists("$basedir/scripts/mysql_fix_privilege_tables",
|
||||
@ -1744,6 +1757,30 @@ sub mysql_client_test_arguments(){
|
||||
# Set environment to be used by childs of this process for
|
||||
# things that are constant during the whole lifetime of mysql-test-run
|
||||
#
|
||||
|
||||
sub find_plugin($$)
|
||||
{
|
||||
my ($plugin, $location) = @_;
|
||||
my $plugin_filename;
|
||||
|
||||
if (IS_WINDOWS)
|
||||
{
|
||||
$plugin_filename = $plugin.".dll";
|
||||
}
|
||||
else
|
||||
{
|
||||
$plugin_filename = $plugin.".so";
|
||||
}
|
||||
|
||||
my $lib_example_plugin=
|
||||
mtr_file_exists(vs_config_dirs($location,$plugin_filename),
|
||||
"$basedir/lib/plugin/".$plugin_filename,
|
||||
"$basedir/$location/.libs/".$plugin_filename,
|
||||
"$basedir/lib/mysql/plugin/".$plugin_filename,
|
||||
);
|
||||
return $lib_example_plugin;
|
||||
}
|
||||
|
||||
sub environment_setup {
|
||||
|
||||
umask(022);
|
||||
@ -1782,9 +1819,18 @@ sub environment_setup {
|
||||
# --------------------------------------------------------------------------
|
||||
# Add the path where mysqld will find udf_example.so
|
||||
# --------------------------------------------------------------------------
|
||||
my $udf_example_filename;
|
||||
if (IS_WINDOWS)
|
||||
{
|
||||
$udf_example_filename = "udf_example.dll";
|
||||
}
|
||||
else
|
||||
{
|
||||
$udf_example_filename = "udf_example.so";
|
||||
}
|
||||
my $lib_udf_example=
|
||||
mtr_file_exists(vs_config_dirs('sql', 'udf_example.dll'),
|
||||
"$basedir/sql/.libs/udf_example.so",);
|
||||
mtr_file_exists(vs_config_dirs('sql', $udf_example_filename),
|
||||
"$basedir/sql/.libs/$udf_example_filename",);
|
||||
|
||||
if ( $lib_udf_example )
|
||||
{
|
||||
@ -1800,60 +1846,46 @@ sub environment_setup {
|
||||
# Add the path where mysqld will find ha_example.so
|
||||
# --------------------------------------------------------------------------
|
||||
if ($mysql_version_id >= 50100) {
|
||||
my $plugin_filename;
|
||||
if (IS_WINDOWS)
|
||||
{
|
||||
$plugin_filename = "ha_example.dll";
|
||||
}
|
||||
else
|
||||
{
|
||||
$plugin_filename = "ha_example.so";
|
||||
}
|
||||
my $lib_example_plugin=
|
||||
mtr_file_exists(vs_config_dirs('storage/example',$plugin_filename),
|
||||
"$basedir/storage/example/.libs/".$plugin_filename,
|
||||
"$basedir/lib/mysql/plugin/".$plugin_filename);
|
||||
$ENV{'EXAMPLE_PLUGIN'}=
|
||||
($lib_example_plugin ? basename($lib_example_plugin) : "");
|
||||
$ENV{'EXAMPLE_PLUGIN_OPT'}= "--plugin-dir=".
|
||||
my ($lib_example_plugin) = find_plugin("ha_example", "storage/example");
|
||||
|
||||
if($lib_example_plugin)
|
||||
{
|
||||
$ENV{'EXAMPLE_PLUGIN'}=
|
||||
($lib_example_plugin ? basename($lib_example_plugin) : "");
|
||||
$ENV{'EXAMPLE_PLUGIN_OPT'}= "--plugin-dir=".
|
||||
($lib_example_plugin ? dirname($lib_example_plugin) : "");
|
||||
|
||||
$ENV{'HA_EXAMPLE_SO'}="'".$plugin_filename."'";
|
||||
$ENV{'EXAMPLE_PLUGIN_LOAD'}="--plugin_load=EXAMPLE=".$plugin_filename;
|
||||
}
|
||||
else
|
||||
{
|
||||
# Some ".opt" files use some of these variables, so they must be defined
|
||||
$ENV{'EXAMPLE_PLUGIN'}= "";
|
||||
$ENV{'EXAMPLE_PLUGIN_OPT'}= "";
|
||||
$ENV{'HA_EXAMPLE_SO'}= "";
|
||||
$ENV{'EXAMPLE_PLUGIN_LOAD'}= "";
|
||||
$ENV{'HA_EXAMPLE_SO'}="'".basename($lib_example_plugin)."'";
|
||||
$ENV{'EXAMPLE_PLUGIN_LOAD'}="--plugin_load=EXAMPLE=".basename($lib_example_plugin);
|
||||
}
|
||||
else
|
||||
{
|
||||
# Some ".opt" files use some of these variables, so they must be defined
|
||||
$ENV{'EXAMPLE_PLUGIN'}= "";
|
||||
$ENV{'EXAMPLE_PLUGIN_OPT'}= "";
|
||||
$ENV{'HA_EXAMPLE_SO'}= "";
|
||||
$ENV{'EXAMPLE_PLUGIN_LOAD'}= "";
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
# --------------------------------------------------------------------------
|
||||
# Add the path where mysqld will find semisync plugins
|
||||
# --------------------------------------------------------------------------
|
||||
if (!$opt_embedded_server) {
|
||||
my $semisync_master_filename;
|
||||
my $semisync_slave_filename;
|
||||
my $semisync_lib_prefix;
|
||||
if (IS_WINDOWS)
|
||||
{
|
||||
$semisync_master_filename = "semisync_master.dll";
|
||||
$semisync_slave_filename = "semisync_slave.dll";
|
||||
$semisync_lib_prefix = "";
|
||||
}
|
||||
else
|
||||
{
|
||||
$semisync_master_filename = "libsemisync_master.so";
|
||||
$semisync_slave_filename = "libsemisync_slave.so";
|
||||
$semisync_lib_prefix= "lib";
|
||||
}
|
||||
my $lib_semisync_master_plugin=
|
||||
mtr_file_exists(vs_config_dirs('plugin/semisync',$semisync_master_filename),
|
||||
"$basedir/plugin/semisync/.libs/" . $semisync_master_filename,
|
||||
"$basedir/lib/mysql/plugin/" . $semisync_master_filename);
|
||||
my $lib_semisync_slave_plugin=
|
||||
mtr_file_exists(vs_config_dirs('plugin/semisync',$semisync_slave_filename),
|
||||
"$basedir/plugin/semisync/.libs/" . $semisync_slave_filename,
|
||||
"$basedir/lib/mysql/plugin/" . $semisync_slave_filename);
|
||||
|
||||
my ($lib_semisync_master_plugin) = find_plugin($semisync_lib_prefix."semisync_master", "plugin/semisync");
|
||||
my ($lib_semisync_slave_plugin) = find_plugin($semisync_lib_prefix."semisync_slave", "plugin/semisync");
|
||||
|
||||
if ($lib_semisync_master_plugin && $lib_semisync_slave_plugin)
|
||||
{
|
||||
$ENV{'SEMISYNC_MASTER_PLUGIN'}= basename($lib_semisync_master_plugin);
|
||||
@ -1871,10 +1903,10 @@ sub environment_setup {
|
||||
# ----------------------------------------------------
|
||||
# Add the path where mysqld will find mypluglib.so
|
||||
# ----------------------------------------------------
|
||||
my $lib_simple_parser=
|
||||
mtr_file_exists(vs_config_dirs('plugin/fulltext', 'mypluglib.dll'),
|
||||
"$basedir/plugin/fulltext/.libs/mypluglib.so",);
|
||||
|
||||
my ($lib_simple_parser) = find_plugin("mypluglib", "plugin/fulltext");
|
||||
|
||||
$ENV{'MYPLUGLIB_SO'}="'".basename($lib_simple_parser)."'";
|
||||
$ENV{'SIMPLE_PARSER'}=
|
||||
($lib_simple_parser ? basename($lib_simple_parser) : "");
|
||||
$ENV{'SIMPLE_PARSER_OPT'}= "--plugin-dir=".
|
||||
@ -2303,18 +2335,15 @@ sub vs_config_dirs ($$) {
|
||||
my ($path_part, $exe) = @_;
|
||||
|
||||
$exe = "" if not defined $exe;
|
||||
|
||||
# Don't look in these dirs when not on windows
|
||||
return () unless IS_WINDOWS;
|
||||
|
||||
if ($opt_vs_config)
|
||||
{
|
||||
return ("$basedir/$path_part/$opt_vs_config/$exe");
|
||||
return ("$bindir/$path_part/$opt_vs_config/$exe");
|
||||
}
|
||||
|
||||
return ("$basedir/$path_part/release/$exe",
|
||||
"$basedir/$path_part/relwithdebinfo/$exe",
|
||||
"$basedir/$path_part/debug/$exe");
|
||||
return ("$bindir/$path_part/Release/$exe",
|
||||
"$bindir/$path_part/RelWithDebinfo/$exe",
|
||||
"$bindir/$path_part/Debug/$exe",
|
||||
"$bindir/$path_part/$exe");
|
||||
}
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user