sourcemod/extensions/mysql/mariadb/AMBuilder
2023-11-30 12:49:06 +02:00

106 lines
3.7 KiB
Python

# vim: sts=2 ts=8 sw=2 tw=99 et ft=python:
import os, platform
builder.SetBuildFolder('libmariadb')
rvalue = {}
for cxx in builder.targets:
binary = SM.StaticLibrary(builder, cxx, 'mariadb')
binary.compiler.includes += [
os.path.join(builder.sourcePath, 'extensions', 'mysql', 'mariadb', 'include'),
os.path.join(builder.sourcePath, 'extensions', 'mysql', 'mariadb', 'connector', 'include'),
os.path.join(builder.sourcePath, 'extensions', 'mysql', 'mariadb', 'connector', 'libmariadb'),
os.path.join(builder.sourcePath, 'extensions', 'mysql', 'mariadb', 'connector', 'external', 'zlib'),
os.path.join(builder.sourcePath, 'extensions', 'mysql', 'openssl', 'include'),
os.path.join(builder.sourcePath, 'extensions', 'mysql', 'openssl', 'lib', 'include'),
]
binary.compiler.defines += [
'HAVE_COMPRESS',
'LIBMARIADB',
'THREAD',
]
# Work around mariadb warnings.
if binary.compiler.target.platform == 'linux':
binary.compiler.cflags += [
'-Wno-shift-count-overflow',
'-Wno-tautological-constant-out-of-range-compare',
]
binary.sources += [
'connector/plugins/auth/my_auth.c',
'connector/plugins/auth/old_password.c',
'connector/plugins/compress/c_zlib.c',
'connector/plugins/pvio/pvio_socket.c',
'connector/libmariadb/ma_array.c',
'connector/libmariadb/ma_charset.c',
'connector/libmariadb/ma_decimal.c',
'connector/libmariadb/ma_hashtbl.c',
'connector/libmariadb/ma_net.c',
'connector/libmariadb/mariadb_charset.c',
'connector/libmariadb/ma_time.c',
'connector/libmariadb/ma_default.c',
'connector/libmariadb/ma_errmsg.c',
'connector/libmariadb/mariadb_lib.c',
'connector/libmariadb/ma_list.c',
'connector/libmariadb/ma_pvio.c',
'connector/libmariadb/ma_tls.c',
'connector/libmariadb/ma_alloc.c',
'connector/libmariadb/ma_compress.c',
'connector/libmariadb/ma_init.c',
'connector/libmariadb/ma_password.c',
'connector/libmariadb/ma_ll2str.c',
'connector/libmariadb/ma_sha1.c',
'connector/libmariadb/mariadb_stmt.c',
'connector/libmariadb/ma_loaddata.c',
'connector/libmariadb/ma_stmt_codec.c',
'connector/libmariadb/ma_string.c',
'connector/libmariadb/ma_dtoa.c',
'connector/libmariadb/mariadb_rpl.c',
'connector/libmariadb/ma_io.c',
'connector/libmariadb/mariadb_async.c',
'connector/libmariadb/ma_context.c',
'ma_client_plugin.c',
]
if binary.compiler.target.platform == 'linux':
# TLS
binary.compiler.defines += [
'HAVE_OPENSSL', 'HAVE_TLS'
]
binary.sources += [
'connector/libmariadb/secure/openssl.c',
]
elif binary.compiler.target.platform == 'windows':
binary.compiler.defines += [
'HAVE_DLOPEN',
'_CRT_SECURE_NO_WARNINGS',
'_CRT_NONSTDC_NO_DEPRECATE',
'HAVE_SCHANNEL', 'HAVE_TLS'
]
binary.sources += [
'connector/libmariadb/win32_errmsg.c',
# TLS
'connector/libmariadb/secure/schannel.c',
'connector/libmariadb/secure/ma_schannel.c',
'connector/libmariadb/secure/schannel_certs.c',
# ZLIB
'connector/external/zlib/adler32.c',
'connector/external/zlib/compress.c',
'connector/external/zlib/crc32.c',
'connector/external/zlib/deflate.c',
'connector/external/zlib/gzclose.c',
'connector/external/zlib/gzlib.c',
'connector/external/zlib/gzread.c',
'connector/external/zlib/gzwrite.c',
'connector/external/zlib/infback.c',
'connector/external/zlib/inffast.c',
'connector/external/zlib/inflate.c',
'connector/external/zlib/inftrees.c',
'connector/external/zlib/trees.c',
'connector/external/zlib/uncompr.c',
'connector/external/zlib/zutil.c',
]
rvalue[binary.compiler.target.arch] = builder.Add(binary)