9cc518e408
MySQL defines its own timespec_t. Official mysql builds are built using VS2013, so you still need to compile the client library yourself to be able to link it, but this change makes the dbi extension compatible with future versions already.
49 lines
1.6 KiB
Python
49 lines
1.6 KiB
Python
# vim: set sts=2 ts=8 sw=2 tw=99 et ft=python:
|
|
import os
|
|
|
|
if SM.mysql_root:
|
|
for arch in SM.archs:
|
|
binary = SM.ExtLibrary(builder, 'dbi.mysql.ext', arch)
|
|
binary.compiler.cxxincludes += [
|
|
os.path.join(SM.mysql_root[arch], 'include'),
|
|
os.path.join(SM.mms_root, 'core', 'sourcehook')
|
|
]
|
|
if binary.compiler.family == 'gcc' or binary.compiler.family == 'clang':
|
|
binary.compiler.cxxflags += ['-fno-rtti']
|
|
elif binary.compiler.family == 'msvc':
|
|
binary.compiler.cxxflags += ['/GR-']
|
|
|
|
if builder.target.platform == 'linux' or builder.target.platform == 'mac':
|
|
binary.compiler.postlink += [
|
|
os.path.join(SM.mysql_root[arch], 'lib', 'libmysqlclient_r.a'),
|
|
'-lz',
|
|
'-lpthread',
|
|
'-lm',
|
|
]
|
|
if builder.target.platform == 'linux':
|
|
binary.compiler.postlink += ['-lrt']
|
|
elif builder.target.platform == 'windows':
|
|
binary.compiler.defines += ['WIN32_LEAN_AND_MEAN']
|
|
binary.compiler.postlink += [
|
|
os.path.join(SM.mysql_root[arch], 'lib', 'mysqlclient.lib'),
|
|
'wsock32.lib'
|
|
]
|
|
|
|
binary.sources += [
|
|
'../../public/smsdk_ext.cpp',
|
|
'mysql/MyBasicResults.cpp',
|
|
'mysql/MyBoundResults.cpp',
|
|
'mysql/MyDatabase.cpp',
|
|
'mysql/MyDriver.cpp',
|
|
'mysql/MyStatement.cpp',
|
|
'extension.cpp'
|
|
]
|
|
|
|
if binary.compiler.family == 'msvc' and binary.compiler.version >= 1900:
|
|
binary.sources += [ 'msvc15hack.c' ]
|
|
binary.compiler.linkflags += ['legacy_stdio_definitions.lib', 'legacy_stdio_wide_specifiers.lib']
|
|
binary.compiler.defines += ['HAVE_STRUCT_TIMESPEC']
|
|
|
|
SM.extensions += [builder.Add(binary)]
|
|
|