@@ -7958,6 +7958,23 @@ static int mysql_init_variables()
7958
7958
// sandbox build.
7959
7959
strcat (prg_dev," /../" ); // Remove containing directory to get base dir
7960
7960
cleanup_dirname (mysql_home, prg_dev);
7961
+
7962
+ // New layout: <cmake_binary_dir>/runtime_output_directory/<buildconfig>/
7963
+ char cmake_binary_dir[FN_REFLEN];
7964
+ size_t dlen= 0 ;
7965
+ dirname_part (cmake_binary_dir, mysql_home, &dlen);
7966
+ if (dlen > 26U &&
7967
+ (!strcmp (cmake_binary_dir + (dlen - 26 ), " /runtime_output_directory/" ) ||
7968
+ !strcmp (cmake_binary_dir + (dlen - 26 ), " \\ runtime_output_directory\\ " )))
7969
+ {
7970
+ mysql_home[strlen (mysql_home) - 1 ]= ' \0 ' ; // remove trailing
7971
+ dirname_part (cmake_binary_dir, mysql_home, &dlen);
7972
+ strcat (cmake_binary_dir, " sql\\ " );
7973
+ strmake (mysql_home, cmake_binary_dir, sizeof (mysql_home) - 1 );
7974
+ }
7975
+ // The sql_print_information below outputs nothing ??
7976
+ // fprintf(stderr, "mysql_home %s\n", mysql_home);
7977
+ // fflush(stderr);
7961
7978
#else
7962
7979
const char *tmpenv= getenv (" MY_BASEDIR_VERSION" );
7963
7980
if (tmpenv != nullptr )
@@ -7979,6 +7996,15 @@ static int mysql_init_variables()
7979
7996
}
7980
7997
strmake (mysql_home, progdir, sizeof (mysql_home) - 1 );
7981
7998
}
7999
+ else if (dlen > 26U &&
8000
+ !strcmp (progdir + (dlen - 26 ), " /runtime_output_directory/" ))
8001
+ {
8002
+ char cmake_binary_dir[FN_REFLEN];
8003
+ progdir[strlen (progdir) - 1 ]= ' \0 ' ; // remove trailing "/"
8004
+ dirname_part (cmake_binary_dir, progdir, &dlen);
8005
+ strcat (cmake_binary_dir, " sql/" );
8006
+ strmake (mysql_home, cmake_binary_dir, sizeof (mysql_home) - 1 );
8007
+ }
7982
8008
else
7983
8009
{
7984
8010
strcat (progdir, " /../" );
0 commit comments