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)]
 | 
						|
 |