mirror of
https://github.com/MariaDB/server.git
synced 2025-07-29 05:21:33 +03:00
Clean up CMake configuration following review.
BitKeeper/deleted/.del-config-version.js~b31bb5a8: Delete: win/config-version.js BitKeeper/deleted/.del-config-handlerton.js~553d3402: Delete: win/config-handlerton.js cmakelists.txt: Clean up configuration, better integration with CMake. sql/cmakelists.txt: Only build ha_xxx.cc for configured storage engines. Only link with configured storage engine projects. win/configure.js: Move the task of config-version.js into configure.js.
This commit is contained in:
@ -1,8 +1,10 @@
|
||||
PROJECT(MySql)
|
||||
|
||||
EXEC_PROGRAM(cscript.exe win ARGS config-version.js OUT_VARIABLE out)
|
||||
# This reads user configuration, generated by configure.js.
|
||||
INCLUDE(win/configure.data)
|
||||
|
||||
CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/include/mysql_version.h.in ${CMAKE_SOURCE_DIR}/include/mysql_version.h @ONLY)
|
||||
|
||||
# in some places we use DBUG_OFF
|
||||
SET(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -D DBUG_OFF")
|
||||
SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -D DBUG_OFF")
|
||||
@ -32,6 +34,32 @@ ENDIF(CMAKE_GENERATOR MATCHES "Visual Studio 7" OR CMAKE_GENERATOR MATCHES "Visu
|
||||
|
||||
ADD_DEFINITIONS("-D_WINDOWS -D__WIN__ -D _CRT_SECURE_NO_DEPRECATE")
|
||||
|
||||
SUBDIRS(vio dbug strings regex mysys extra/yassl extra/yassl/taocrypt extra
|
||||
zlib storage/heap storage/myisam storage/myisammrg client
|
||||
${se_subdirs} sql server-tools/instance-manager libmysql tests)
|
||||
ADD_SUBDIRECTORY(vio)
|
||||
ADD_SUBDIRECTORY(dbug)
|
||||
ADD_SUBDIRECTORY(strings)
|
||||
ADD_SUBDIRECTORY(regex)
|
||||
ADD_SUBDIRECTORY(mysys)
|
||||
ADD_SUBDIRECTORY(extra/yassl)
|
||||
ADD_SUBDIRECTORY(extra/yassl/taocrypt)
|
||||
ADD_SUBDIRECTORY(extra)
|
||||
ADD_SUBDIRECTORY(zlib)
|
||||
ADD_SUBDIRECTORY(storage/heap)
|
||||
ADD_SUBDIRECTORY(storage/myisam)
|
||||
ADD_SUBDIRECTORY(storage/myisammrg)
|
||||
ADD_SUBDIRECTORY(client)
|
||||
IF(WITH_ARCHIVE_STORAGE_ENGINE)
|
||||
ADD_SUBDIRECTORY(storage/archive)
|
||||
ENDIF(WITH_ARCHIVE_STORAGE_ENGINE)
|
||||
IF(WITH_BERKELEY_STORAGE_ENGINE)
|
||||
ADD_SUBDIRECTORY(storage/bdb)
|
||||
ENDIF(WITH_BERKELEY_STORAGE_ENGINE)
|
||||
IF(WITH_EXAMPLE_STORAGE_ENGINE)
|
||||
ADD_SUBDIRECTORY(storage/example)
|
||||
ENDIF(WITH_EXAMPLE_STORAGE_ENGINE)
|
||||
IF(WITH_INNOBASE_STORAGE_ENGINE)
|
||||
ADD_SUBDIRECTORY(storage/innobase)
|
||||
ENDIF(WITH_INNOBASE_STORAGE_ENGINE)
|
||||
ADD_SUBDIRECTORY(sql)
|
||||
ADD_SUBDIRECTORY(server-tools/instance-manager)
|
||||
ADD_SUBDIRECTORY(libmysql)
|
||||
ADD_SUBDIRECTORY(tests)
|
||||
|
@ -24,11 +24,13 @@ IF(WITH_ARCHIVE_STORAGE_ENGINE)
|
||||
ADD_DEFINITIONS(-D WITH_ARCHIVE_STORAGE_ENGINE)
|
||||
SET (mysql_se_htons "${mysql_se_htons}, &archive_hton")
|
||||
SET (mysql_se_decls "${mysql_se_decls}, archive_hton")
|
||||
SET (mysql_se_ha_src "${mysql_se_ha_src} ha_archive.cc")
|
||||
ENDIF(WITH_ARCHIVE_STORAGE_ENGINE)
|
||||
IF(WITH_BLACKHOLE_STORAGE_ENGINE)
|
||||
ADD_DEFINITIONS(-D WITH_BLACKHOLE_STORAGE_ENGINE)
|
||||
SET (mysql_se_htons "${mysql_se_htons}, &blackhole_hton")
|
||||
SET (mysql_se_decls "${mysql_se_decls}, blackhole_hton")
|
||||
SET (mysql_se_ha_src "${mysql_se_ha_src} ha_blackhole.cc")
|
||||
ENDIF(WITH_BLACKHOLE_STORAGE_ENGINE)
|
||||
IF(WITH_EXAMPLE_STORAGE_ENGINE)
|
||||
ADD_DEFINITIONS(-D WITH_EXAMPLE_STORAGE_ENGINE)
|
||||
@ -44,27 +46,35 @@ IF(WITH_PARTITION_STORAGE_ENGINE)
|
||||
ADD_DEFINITIONS(-D WITH_PARTITION_STORAGE_ENGINE)
|
||||
SET (mysql_se_htons "${mysql_se_htons}, &partition_hton")
|
||||
SET (mysql_se_decls "${mysql_se_decls}, partition_hton")
|
||||
SET (mysql_se_ha_src "${mysql_se_ha_src} ha_innodb.cc")
|
||||
SET (mysql_se_ha_src "${mysql_se_ha_src} ha_partition.cc")
|
||||
ENDIF(WITH_PARTITION_STORAGE_ENGINE)
|
||||
IF(WITH_FEDERATED_STORAGE_ENGINE)
|
||||
ADD_DEFINITIONS(-D WITH_FEDERATED_STORAGE_ENGINE)
|
||||
SET (mysql_se_htons "${mysql_se_htons}, &federated_hton")
|
||||
SET (mysql_se_decls "${mysql_se_decls}, federated_hton")
|
||||
SET (mysql_se_ha_src "${mysql_se_ha_src} ha_federated.cc")
|
||||
ENDIF(WITH_FEDERATED_STORAGE_ENGINE)
|
||||
IF(WITH_BERKELEY_STORAGE_ENGINE)
|
||||
ADD_DEFINITIONS(-D WITH_BERKELEY_STORAGE_ENGINE)
|
||||
SET (mysql_se_htons "${mysql_se_htons}, &berkeley_hton")
|
||||
SET (mysql_se_decls "${mysql_se_decls}, berkeley_hton")
|
||||
SET (mysql_se_ha_src "${mysql_se_ha_src} ha_berkeley.cc")
|
||||
ENDIF(WITH_BERKELEY_STORAGE_ENGINE)
|
||||
IF(__NT__)
|
||||
ADD_DEFINITIONS(-D __NT__)
|
||||
ENDIF(__NT__)
|
||||
IF(CYBOZU)
|
||||
ADD_DEFINITIONS(-D CYBOZU)
|
||||
ENDIF(CYBOZU)
|
||||
CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/sql/handlerton.cc.in ${CMAKE_SOURCE_DIR}/sql/handlerton.cc @ONLY)
|
||||
|
||||
ADD_DEFINITIONS(-DHAVE_ROW_BASED_REPLICATION -DMYSQL_SERVER -D_CONSOLE -DHAVE_DLOPEN)
|
||||
|
||||
SEPARATE_ARGUMENTS(mysql_se_ha_src)
|
||||
ADD_EXECUTABLE(mysqld ../sql-common/client.c derror.cc des_key_file.cc discover.cc ../libmysql/errmsg.c field.cc
|
||||
field_conv.cc filesort.cc gstream.cc ha_heap.cc ha_myisam.cc ha_myisammrg.cc
|
||||
${handlertons} handler.cc hash_filo.cc hash_filo.h hostname.cc
|
||||
${mysql_se_ha_src} handler.cc hash_filo.cc hash_filo.h hostname.cc
|
||||
init.cc item.cc item_buff.cc item_cmpfunc.cc item_create.cc item_func.cc item_geofunc.cc
|
||||
item_row.cc item_strfunc.cc item_subselect.cc item_sum.cc item_timefunc.cc item_uniq.cc
|
||||
key.cc log.cc lock.cc log_event.cc message.rc message.h mf_iocache.cc
|
||||
@ -89,7 +99,20 @@ ADD_EXECUTABLE(mysqld ../sql-common/client.c derror.cc des_key_file.cc discover.
|
||||
${PROJECT_SOURCE_DIR}/include/mysql_version.h
|
||||
${PROJECT_SOURCE_DIR}/sql/handlerton.cc
|
||||
${PROJECT_SOURCE_DIR}/sql/lex_hash.h)
|
||||
TARGET_LINK_LIBRARIES(mysqld heap myisam myisammrg ${se_deps} mysys yassl zlib dbug yassl taocrypt strings vio regex wsock32)
|
||||
TARGET_LINK_LIBRARIES(mysqld heap myisam myisammrg mysys yassl zlib dbug yassl taocrypt strings vio regex wsock32)
|
||||
IF(WITH_ARCHIVE_STORAGE_ENGINE)
|
||||
TARGET_LINK_LIBRARIES(mysqld archive)
|
||||
ENDIF(WITH_ARCHIVE_STORAGE_ENGINE)
|
||||
IF(WITH_EXAMPLE_STORAGE_ENGINE)
|
||||
TARGET_LINK_LIBRARIES(mysqld example)
|
||||
ENDIF(WITH_EXAMPLE_STORAGE_ENGINE)
|
||||
IF(WITH_INNOBASE_STORAGE_ENGINE)
|
||||
TARGET_LINK_LIBRARIES(mysqld innobase)
|
||||
ENDIF(WITH_INNOBASE_STORAGE_ENGINE)
|
||||
IF(WITH_BERKELEY_STORAGE_ENGINE)
|
||||
TARGET_LINK_LIBRARIES(mysqld bdb)
|
||||
ENDIF(WITH_BERKELEY_STORAGE_ENGINE)
|
||||
|
||||
ADD_DEPENDENCIES(mysqld GenError)
|
||||
|
||||
# Sql Parser custom command
|
||||
|
@ -1,196 +0,0 @@
|
||||
// Configure.js
|
||||
|
||||
ForReading = 1;
|
||||
ForWriting = 2;
|
||||
ForAppending = 8;
|
||||
|
||||
try
|
||||
{
|
||||
// first we attempt to open the main configure.in file
|
||||
var fso = new ActiveXObject("Scripting.FileSystemObject");
|
||||
|
||||
var args = WScript.Arguments
|
||||
|
||||
var datafile = fso.OpenTextFile(args.Item(0), ForReading);
|
||||
var extern_line = '';
|
||||
var address_line = '';
|
||||
while (! datafile.AtEndOfStream)
|
||||
{
|
||||
var line = datafile.ReadLine();
|
||||
if (line == "WITH_INNOBASE_STORAGE_ENGINE")
|
||||
{
|
||||
extern_line += ",innobase_hton";
|
||||
address_line += ",&innobase_hton";
|
||||
}
|
||||
else if (line == "WITH_PARTITION_STORAGE_ENGINE")
|
||||
{
|
||||
extern_line += ",partition_hton";
|
||||
address_line += ",&partition_hton";
|
||||
}
|
||||
else if (line == "WITH_ARCHIVE_STORAGE_ENGINE")
|
||||
{
|
||||
extern_line += ",archive_hton";
|
||||
address_line += ",&archive_hton";
|
||||
}
|
||||
else if (line == "WITH_BERKELEY_STORAGE_ENGINE")
|
||||
{
|
||||
extern_line += ",berkeley_hton";
|
||||
address_line += ",&berkeley_hton";
|
||||
}
|
||||
else if (line == "WITH_BLACKHOLE_STORAGE_ENGINE")
|
||||
{
|
||||
extern_line += ",blackhole_hton";
|
||||
address_line += ",&blackhole_hton";
|
||||
}
|
||||
else if (line == "WITH_EXAMPLE_STORAGE_ENGINE")
|
||||
{
|
||||
extern_line += ",example_hton";
|
||||
address_line += ",&example_hton";
|
||||
}
|
||||
else if (line == "WITH_FEDERATED_STORAGE_ENGINE")
|
||||
{
|
||||
extern_line += ",federated_hton";
|
||||
address_line += ",&federated_hton";
|
||||
}
|
||||
}
|
||||
datafile.Close();
|
||||
|
||||
var infile = fso.OpenTextFile("..\\sql\\handlerton.cc.in", ForReading);
|
||||
var infile_contents = infile.ReadAll();
|
||||
infile.Close();
|
||||
infile_contents = infile_contents.replace("@mysql_se_decls@", extern_line);
|
||||
infile_contents = infile_contents.replace("@mysql_se_htons@", address_line);
|
||||
|
||||
var outfile = fso.CreateTextFile("..\\sql\\handlerton.cc", true)
|
||||
outfile.Write(infile_contents);
|
||||
outfile.Close();
|
||||
|
||||
fso = null;
|
||||
|
||||
WScript.Echo("done!");
|
||||
}
|
||||
catch (e)
|
||||
{
|
||||
WScript.Echo("Error: " + e.description);
|
||||
}
|
||||
|
||||
function ConfigureBDB()
|
||||
{
|
||||
// read in the Unix configure.in file
|
||||
var dbIncTS = fso.OpenTextFile("..\\bdb\\dbinc\\db.in", ForReading);
|
||||
var dbIn = dbIncTS.ReadAll();
|
||||
dbIncTS.Close();
|
||||
|
||||
dbIn = dbIn.replace("@DB_VERSION_MAJOR@", "$DB_VERSION_MAJOR");
|
||||
dbIn = dbIn.replace("@DB_VERSION_MINOR@", "$DB_VERSION_MINOR");
|
||||
dbIn = dbIn.replace("@DB_VERSION_PATCH@", "$DB_VERSION_PATCH");
|
||||
dbIn = dbIn.replace("@DB_VERSION_STRING@", "$DB_VERSION_STRING");
|
||||
|
||||
dbIn = dbIn.replace("@u_int8_decl@", "typedef unsigned char u_int8_t;");
|
||||
dbIn = dbIn.replace("@int16_decl@", "typedef short int16_t;");
|
||||
dbIn = dbIn.replace("@u_int16_decl@", "typedef unsigned short u_int16_t;");
|
||||
dbIn = dbIn.replace("@int32_decl@", "typedef int int32_t;");
|
||||
dbIn = dbIn.replace("@u_int32_decl@", "typedef unsigned int u_int32_t;");
|
||||
|
||||
dbIn = dbIn.replace("@u_char_decl@", "{\r\n#if !defined(_WINSOCKAPI_)\r\n" +
|
||||
"typedef unsigned char u_char;");
|
||||
dbIn = dbIn.replace("@u_short_decl@", "typedef unsigned short u_short;");
|
||||
dbIn = dbIn.replace("@u_int_decl@", "typedef unsigned int u_int;");
|
||||
dbIn = dbIn.replace("@u_long_decl@", "typedef unsigned long u_long;");
|
||||
|
||||
dbIn = dbIn.replace("@ssize_t_decl@", "#endif\r\n#if defined(_WIN64)\r\n" +
|
||||
"typedef __int64 ssize_t;\r\n#else\r\n" +
|
||||
"typedef int ssize_t;\r\n#endif");
|
||||
}
|
||||
|
||||
function ConfigureMySqlVersion()
|
||||
{
|
||||
// read in the Unix configure.in file
|
||||
var configureInTS = fso.OpenTextFile("..\\configure.in", ForReading);
|
||||
var configureIn = configureInTS.ReadAll();
|
||||
configureInTS.Close();
|
||||
|
||||
// read in the mysql_version.h.in file
|
||||
var mysqlTS = fso.OpenTextFile("..\\include\\mysql_version.h.in", ForReading);
|
||||
var mysqlin = mysqlTS.ReadAll();
|
||||
mysqlTS.Close();
|
||||
|
||||
mysqlin = mysqlin.replace("@PROTOCOL_VERSION@", GetValue(configureIn, "PROTOCOL_VERSION"));
|
||||
mysqlin = mysqlin.replace("@DOT_FRM_VERSION@", GetValue(configureIn, "DOT_FRM_VERSION"));
|
||||
mysqlin = mysqlin.replace("@MYSQL_TCP_PORT@", GetValue(configureIn, "MYSQL_TCP_PORT_DEFAULT"));
|
||||
mysqlin = mysqlin.replace("@MYSQL_UNIX_ADDR@", GetValue(configureIn, "MYSQL_UNIX_ADDR_DEFAULT"));
|
||||
mysqlin = mysqlin.replace("@MYSQL_SERVER_SUFFIX@", '');
|
||||
mysqlin = mysqlin.replace("@COMPILATION_COMMENT@", 'Source distribution');
|
||||
|
||||
|
||||
var version = GetVersion(configureIn);
|
||||
mysqlin = mysqlin.replace("@VERSION@", version);
|
||||
mysqlin = mysqlin.replace("@MYSQL_BASE_VERSION@", GetBaseVersion(version));
|
||||
mysqlin = mysqlin.replace("@MYSQL_VERSION_ID@", GetVersionId(version));
|
||||
|
||||
|
||||
var mysqlfile = fso.CreateTextFile("..\\include\\mysql_version.h", true);
|
||||
mysqlfile.Write(mysqlin);
|
||||
mysqlfile.Close();
|
||||
|
||||
}
|
||||
|
||||
function GetValue(str, key)
|
||||
{
|
||||
var pos = str.indexOf(key+'=');
|
||||
if (pos == -1) return null;
|
||||
pos += key.length + 1;
|
||||
var end = str.indexOf("\n", pos);
|
||||
if (str.charAt(pos) == "\"")
|
||||
pos++;
|
||||
if (str.charAt(end-1) == "\"")
|
||||
end--;
|
||||
return str.substring(pos, end);
|
||||
}
|
||||
|
||||
function GetVersion(str)
|
||||
{
|
||||
var key = "AM_INIT_AUTOMAKE(mysql, ";
|
||||
var pos = str.indexOf(key); //5.0.6-beta)
|
||||
if (pos == -1) return null;
|
||||
pos += key.length;
|
||||
var end = str.indexOf(")", pos);
|
||||
if (end == -1) return null;
|
||||
return str.substring(pos, end);
|
||||
}
|
||||
|
||||
function GetBaseVersion(version)
|
||||
{
|
||||
var dot = version.indexOf(".");
|
||||
if (dot == -1) return null;
|
||||
dot = version.indexOf(".", dot+1);
|
||||
if (dot == -1) dot = version.length;
|
||||
return version.substring(0, dot);
|
||||
}
|
||||
|
||||
function GetVersionId(version)
|
||||
{
|
||||
var dot = version.indexOf(".");
|
||||
if (dot == -1) return null;
|
||||
var major = parseInt(version.substring(0, dot), 10);
|
||||
|
||||
dot++;
|
||||
var nextdot = version.indexOf(".", dot);
|
||||
if (nextdot == -1) return null;
|
||||
var minor = parseInt(version.substring(dot, nextdot), 10);
|
||||
dot = nextdot+1;
|
||||
|
||||
var stop = version.indexOf("-", dot);
|
||||
if (stop == -1) stop = version.length;
|
||||
var build = parseInt(version.substring(dot, stop), 10);
|
||||
|
||||
var id = major;
|
||||
if (minor < 10)
|
||||
id += '0';
|
||||
id += minor;
|
||||
if (build < 10)
|
||||
id += '0';
|
||||
id += build;
|
||||
return id;
|
||||
}
|
||||
|
@ -1,223 +0,0 @@
|
||||
// Configure.js
|
||||
|
||||
ForReading = 1;
|
||||
ForWriting = 2;
|
||||
ForAppending = 8;
|
||||
|
||||
try
|
||||
{
|
||||
// first we attempt to open the main configure.in file
|
||||
var fso = new ActiveXObject("Scripting.FileSystemObject");
|
||||
|
||||
var args = WScript.Arguments
|
||||
|
||||
// Find any configured MYSQL_SERVER_SUFFIX.
|
||||
// Find any extra preprocessor definitions.
|
||||
var datafile = fso.OpenTextFile(args.Item(0), ForReading);
|
||||
var server_suffix = '';
|
||||
var server_comment = 'Source distribution';
|
||||
var server_port = '';
|
||||
var defs = '';
|
||||
var htons = '';
|
||||
var subdirs = '';
|
||||
var depends = '';
|
||||
while (! datafile.AtEndOfStream)
|
||||
{
|
||||
var line = datafile.ReadLine();
|
||||
if (line.indexOf("MYSQL_SERVER_SUFFIX=") == 0)
|
||||
{
|
||||
server_suffix = line.substring(20, line.length);
|
||||
}
|
||||
else if (line.indexOf("COMPILATION_COMMENT=") == 0)
|
||||
{
|
||||
server_comment = line.substring(20, line.length);
|
||||
}
|
||||
else if (line.indexOf("MYSQL_TCP_PORT=") == 0)
|
||||
{
|
||||
server_port = line.substring(15, line.length);
|
||||
}
|
||||
else if (line == "WITH_ARCHIVE_STORAGE_ENGINE")
|
||||
{
|
||||
defs += " -D" + line;
|
||||
htons += " ha_archive.cc";
|
||||
subdirs += " storage/archive";
|
||||
depends += " archive";
|
||||
}
|
||||
else if (line == "WITH_BERKELEY_STORAGE_ENGINE")
|
||||
{
|
||||
defs += " -D" + line;
|
||||
htons += " ha_berkeley.cc";
|
||||
subdirs += " storage/bdb";
|
||||
depends += " bdb";
|
||||
}
|
||||
else if (line == "WITH_BLACKHOLE_STORAGE_ENGINE")
|
||||
{
|
||||
defs += " -D" + line;
|
||||
htons += " ha_blackhole.cc";
|
||||
}
|
||||
else if (line == "WITH_EXAMPLE_STORAGE_ENGINE")
|
||||
{
|
||||
defs += " -D" + line;
|
||||
subdirs += " storage/example";
|
||||
depends += " example";
|
||||
}
|
||||
else if (line == "WITH_FEDERATED_STORAGE_ENGINE")
|
||||
{
|
||||
defs += " -D" + line;
|
||||
htons += " ha_federated.cc";
|
||||
}
|
||||
else if (line == "WITH_INNOBASE_STORAGE_ENGINE")
|
||||
{
|
||||
defs += " -D" + line;
|
||||
htons += " ha_innodb.cc";
|
||||
subdirs += " storage/innobase";
|
||||
depends += " innobase";
|
||||
}
|
||||
else if (line == "WITH_PARTITION_STORAGE_ENGINE")
|
||||
{
|
||||
defs += " -D" + line;
|
||||
htons += " ha_partition.cc";
|
||||
}
|
||||
else if (line == "__NT__" ||
|
||||
line == "CYBOZU" ||
|
||||
line.indexOf("LICENSE=") == 0) {
|
||||
defs += " -D" + line;
|
||||
}
|
||||
}
|
||||
datafile.Close();
|
||||
|
||||
ConfigureMySqlVersion();
|
||||
//ConfigureBDB();
|
||||
fso = null;
|
||||
|
||||
WScript.Echo("DEFINITIONS@" + defs + "@");
|
||||
WScript.Echo("HANDLERTONS@" + htons + "@");
|
||||
WScript.Echo("DEPENDS@" + depends + "@");
|
||||
WScript.Echo("SUBDIRS@" + subdirs + "@");
|
||||
}
|
||||
catch (e)
|
||||
{
|
||||
WScript.Echo("Error: " + e.description);
|
||||
}
|
||||
|
||||
function ConfigureBDB()
|
||||
{
|
||||
// read in the Unix configure.in file
|
||||
var dbIncTS = fso.OpenTextFile("..\\bdb\\dbinc\\db.in", ForReading);
|
||||
var dbIn = dbIncTS.ReadAll();
|
||||
dbIncTS.Close();
|
||||
|
||||
dbIn = dbIn.replace("@DB_VERSION_MAJOR@", "$DB_VERSION_MAJOR");
|
||||
dbIn = dbIn.replace("@DB_VERSION_MINOR@", "$DB_VERSION_MINOR");
|
||||
dbIn = dbIn.replace("@DB_VERSION_PATCH@", "$DB_VERSION_PATCH");
|
||||
dbIn = dbIn.replace("@DB_VERSION_STRING@", "$DB_VERSION_STRING");
|
||||
|
||||
dbIn = dbIn.replace("@u_int8_decl@", "typedef unsigned char u_int8_t;");
|
||||
dbIn = dbIn.replace("@int16_decl@", "typedef short int16_t;");
|
||||
dbIn = dbIn.replace("@u_int16_decl@", "typedef unsigned short u_int16_t;");
|
||||
dbIn = dbIn.replace("@int32_decl@", "typedef int int32_t;");
|
||||
dbIn = dbIn.replace("@u_int32_decl@", "typedef unsigned int u_int32_t;");
|
||||
|
||||
dbIn = dbIn.replace("@u_char_decl@", "{\r\n#if !defined(_WINSOCKAPI_)\r\n" +
|
||||
"typedef unsigned char u_char;");
|
||||
dbIn = dbIn.replace("@u_short_decl@", "typedef unsigned short u_short;");
|
||||
dbIn = dbIn.replace("@u_int_decl@", "typedef unsigned int u_int;");
|
||||
dbIn = dbIn.replace("@u_long_decl@", "typedef unsigned long u_long;");
|
||||
|
||||
dbIn = dbIn.replace("@ssize_t_decl@", "#endif\r\n#if defined(_WIN64)\r\n" +
|
||||
"typedef __int64 ssize_t;\r\n#else\r\n" +
|
||||
"typedef int ssize_t;\r\n#endif");
|
||||
}
|
||||
|
||||
function ConfigureMySqlVersion()
|
||||
{
|
||||
// read in the Unix configure.in file
|
||||
var configureInTS = fso.OpenTextFile("..\\configure.in", ForReading);
|
||||
var configureIn = configureInTS.ReadAll();
|
||||
configureInTS.Close();
|
||||
|
||||
// read in the mysql_version.h.in file
|
||||
var mysqlTS = fso.OpenTextFile("..\\include\\mysql_version.h.in", ForReading);
|
||||
var mysqlin = mysqlTS.ReadAll();
|
||||
mysqlTS.Close();
|
||||
|
||||
mysqlin = mysqlin.replace("@PROTOCOL_VERSION@", GetValue(configureIn, "PROTOCOL_VERSION"));
|
||||
mysqlin = mysqlin.replace("@DOT_FRM_VERSION@", GetValue(configureIn, "DOT_FRM_VERSION"));
|
||||
if (server_port == '') { server_port = GetValue(configureIn, "MYSQL_TCP_PORT_DEFAULT"); }
|
||||
mysqlin = mysqlin.replace("@MYSQL_TCP_PORT@", server_port);
|
||||
mysqlin = mysqlin.replace("@MYSQL_UNIX_ADDR@", GetValue(configureIn, "MYSQL_UNIX_ADDR_DEFAULT"));
|
||||
mysqlin = mysqlin.replace("@MYSQL_SERVER_SUFFIX@", server_suffix);
|
||||
mysqlin = mysqlin.replace("@COMPILATION_COMMENT@", server_comment);
|
||||
|
||||
|
||||
var version = GetVersion(configureIn);
|
||||
mysqlin = mysqlin.replace("@VERSION@", version);
|
||||
mysqlin = mysqlin.replace("@MYSQL_BASE_VERSION@", GetBaseVersion(version));
|
||||
mysqlin = mysqlin.replace("@MYSQL_VERSION_ID@", GetVersionId(version));
|
||||
|
||||
|
||||
var mysqlfile = fso.CreateTextFile("..\\include\\mysql_version.h", true);
|
||||
mysqlfile.Write(mysqlin);
|
||||
mysqlfile.Close();
|
||||
|
||||
}
|
||||
|
||||
function GetValue(str, key)
|
||||
{
|
||||
var pos = str.indexOf(key+'=');
|
||||
if (pos == -1) return null;
|
||||
pos += key.length + 1;
|
||||
var end = str.indexOf("\n", pos);
|
||||
if (str.charAt(pos) == "\"")
|
||||
pos++;
|
||||
if (str.charAt(end-1) == "\"")
|
||||
end--;
|
||||
return str.substring(pos, end);
|
||||
}
|
||||
|
||||
function GetVersion(str)
|
||||
{
|
||||
var key = "AM_INIT_AUTOMAKE(mysql, ";
|
||||
var pos = str.indexOf(key); //5.0.6-beta)
|
||||
if (pos == -1) return null;
|
||||
pos += key.length;
|
||||
var end = str.indexOf(")", pos);
|
||||
if (end == -1) return null;
|
||||
return str.substring(pos, end);
|
||||
}
|
||||
|
||||
function GetBaseVersion(version)
|
||||
{
|
||||
var dot = version.indexOf(".");
|
||||
if (dot == -1) return null;
|
||||
dot = version.indexOf(".", dot+1);
|
||||
if (dot == -1) dot = version.length;
|
||||
return version.substring(0, dot);
|
||||
}
|
||||
|
||||
function GetVersionId(version)
|
||||
{
|
||||
var dot = version.indexOf(".");
|
||||
if (dot == -1) return null;
|
||||
var major = parseInt(version.substring(0, dot), 10);
|
||||
|
||||
dot++;
|
||||
var nextdot = version.indexOf(".", dot);
|
||||
if (nextdot == -1) return null;
|
||||
var minor = parseInt(version.substring(dot, nextdot), 10);
|
||||
dot = nextdot+1;
|
||||
|
||||
var stop = version.indexOf("-", dot);
|
||||
if (stop == -1) stop = version.length;
|
||||
var build = parseInt(version.substring(dot, stop), 10);
|
||||
|
||||
var id = major;
|
||||
if (minor < 10)
|
||||
id += '0';
|
||||
id += minor;
|
||||
if (build < 10)
|
||||
id += '0';
|
||||
id += build;
|
||||
return id;
|
||||
}
|
||||
|
@ -6,11 +6,17 @@ ForAppending = 8;
|
||||
|
||||
try
|
||||
{
|
||||
// first we attempt to open the main configure.in file
|
||||
var fso = new ActiveXObject("Scripting.FileSystemObject");
|
||||
|
||||
var args = WScript.Arguments
|
||||
|
||||
// read in the Unix configure.in file
|
||||
var configureInTS = fso.OpenTextFile("configure.in", ForReading);
|
||||
var configureIn = configureInTS.ReadAll();
|
||||
configureInTS.Close();
|
||||
var default_comment = "Source distribution";
|
||||
var default_port = GetValue(configureIn, "MYSQL_TCP_PORT_DEFAULT");
|
||||
|
||||
var configfile = fso.CreateTextFile("win\\configure.data", true);
|
||||
for (i=0; i < args.Count(); i++)
|
||||
{
|
||||
@ -25,19 +31,43 @@ try
|
||||
case "WITH_INNOBASE_STORAGE_ENGINE":
|
||||
case "WITH_PARTITION_STORAGE_ENGINE":
|
||||
case "__NT__":
|
||||
line = "SET (" + args.Item(i) + " TRUE)";
|
||||
case "CYBOZU":
|
||||
configfile.WriteLine("SET (" + args.Item(i) + " TRUE)");
|
||||
break;
|
||||
case "MYSQL_SERVER_SUFFIX":
|
||||
configfile.WriteLine("SET (" + parts[0] + " \""
|
||||
+ parts[1] + "\")");
|
||||
break;
|
||||
case "COMPILATION_COMMENT":
|
||||
default_comment = parts[1];
|
||||
break;
|
||||
case "MYSQL_TCP_PORT":
|
||||
line = "SET (" + parts[0] + " " + parts[1] + ")";
|
||||
default_port = parts[1];
|
||||
break;
|
||||
}
|
||||
|
||||
configfile.WriteLine(line);
|
||||
}
|
||||
|
||||
configfile.WriteLine("SET (COMPILATION_COMMENT \"" +
|
||||
default_comment + "\")");
|
||||
|
||||
configfile.WriteLine("SET (PROTOCOL_VERSION \"" +
|
||||
GetValue(configureIn, "PROTOCOL_VERSION") + "\")");
|
||||
configfile.WriteLine("SET (DOT_FRM_VERSION \"" +
|
||||
GetValue(configureIn, "DOT_FRM_VERSION") + "\")");
|
||||
configfile.WriteLine("SET (MYSQL_TCP_PORT \"" + default_port + "\")");
|
||||
configfile.WriteLine("SET (MYSQL_UNIX_ADDR \"" +
|
||||
GetValue(configureIn, "MYSQL_UNIX_ADDR_DEFAULT") + "\")");
|
||||
var version = GetVersion(configureIn);
|
||||
configfile.WriteLine("SET (VERSION \"" + version + "\")");
|
||||
configfile.WriteLine("SET (MYSQL_BASE_VERSION \"" +
|
||||
GetBaseVersion(version) + "\")");
|
||||
configfile.WriteLine("SET (MYSQL_VERSION_ID \"" +
|
||||
GetVersionId(version) + "\")");
|
||||
|
||||
configfile.Close();
|
||||
|
||||
//ConfigureBDB();
|
||||
|
||||
fso = null;
|
||||
|
||||
WScript.Echo("done!");
|
||||
@ -106,3 +136,31 @@ function GetVersionId(version)
|
||||
return id;
|
||||
}
|
||||
|
||||
function ConfigureBDB()
|
||||
{
|
||||
// read in the Unix configure.in file
|
||||
var dbIncTS = fso.OpenTextFile("..\\bdb\\dbinc\\db.in", ForReading);
|
||||
var dbIn = dbIncTS.ReadAll();
|
||||
dbIncTS.Close();
|
||||
|
||||
dbIn = dbIn.replace("@DB_VERSION_MAJOR@", "$DB_VERSION_MAJOR");
|
||||
dbIn = dbIn.replace("@DB_VERSION_MINOR@", "$DB_VERSION_MINOR");
|
||||
dbIn = dbIn.replace("@DB_VERSION_PATCH@", "$DB_VERSION_PATCH");
|
||||
dbIn = dbIn.replace("@DB_VERSION_STRING@", "$DB_VERSION_STRING");
|
||||
|
||||
dbIn = dbIn.replace("@u_int8_decl@", "typedef unsigned char u_int8_t;");
|
||||
dbIn = dbIn.replace("@int16_decl@", "typedef short int16_t;");
|
||||
dbIn = dbIn.replace("@u_int16_decl@", "typedef unsigned short u_int16_t;");
|
||||
dbIn = dbIn.replace("@int32_decl@", "typedef int int32_t;");
|
||||
dbIn = dbIn.replace("@u_int32_decl@", "typedef unsigned int u_int32_t;");
|
||||
|
||||
dbIn = dbIn.replace("@u_char_decl@", "{\r\n#if !defined(_WINSOCKAPI_)\r\n" +
|
||||
"typedef unsigned char u_char;");
|
||||
dbIn = dbIn.replace("@u_short_decl@", "typedef unsigned short u_short;");
|
||||
dbIn = dbIn.replace("@u_int_decl@", "typedef unsigned int u_int;");
|
||||
dbIn = dbIn.replace("@u_long_decl@", "typedef unsigned long u_long;");
|
||||
|
||||
dbIn = dbIn.replace("@ssize_t_decl@", "#endif\r\n#if defined(_WIN64)\r\n" +
|
||||
"typedef __int64 ssize_t;\r\n#else\r\n" +
|
||||
"typedef int ssize_t;\r\n#endif");
|
||||
}
|
||||
|
Reference in New Issue
Block a user