63 lines
2.0 KiB
Plaintext
63 lines
2.0 KiB
Plaintext
|
# vim: set sts=2 ts=8 sw=2 tw=99 et ft=python:
|
||
|
import os
|
||
|
|
||
|
for cxx in builder.targets:
|
||
|
arch = cxx.target.arch
|
||
|
binary = SM.ExtLibrary(builder, cxx, 'dbi.pgsql.ext')
|
||
|
compiler = binary.compiler
|
||
|
compiler.cxxincludes += [
|
||
|
os.path.join(SM.mms_root, 'core', 'sourcehook')
|
||
|
]
|
||
|
if compiler.family == 'gcc' or compiler.family == 'clang':
|
||
|
compiler.cxxflags += ['-fno-rtti']
|
||
|
elif compiler.family == 'msvc':
|
||
|
compiler.cxxflags += ['/GR-']
|
||
|
|
||
|
if compiler.target.platform == 'linux' or compiler.target.platform == 'mac':
|
||
|
compiler.postlink += [
|
||
|
'-lz',
|
||
|
'-lpthread',
|
||
|
'-lm'
|
||
|
]
|
||
|
if compiler.target.platform == 'linux':
|
||
|
if arch == 'x86':
|
||
|
path = os.path.join(builder.sourcePath, 'extensions', 'pgsql', 'lib_linux')
|
||
|
elif arch == 'x86_64':
|
||
|
path = os.path.join(builder.sourcePath, 'extensions', 'pgsql', 'lib_linux64')
|
||
|
compiler.postlink += [
|
||
|
os.path.join(path, 'libpq.a'),
|
||
|
'-lrt'
|
||
|
]
|
||
|
elif compiler.target.platform == 'windows':
|
||
|
if arch == 'x86':
|
||
|
path = os.path.join(builder.sourcePath, 'extensions', 'pgsql', 'lib_win')
|
||
|
elif arch == 'x86_64':
|
||
|
path = os.path.join(builder.sourcePath, 'extensions', 'pgsql', 'lib_win64')
|
||
|
compiler.postlink += [
|
||
|
os.path.join(path, 'libpq.lib'),
|
||
|
'wsock32.lib',
|
||
|
'ws2_32.lib',
|
||
|
'secur32.lib'
|
||
|
]
|
||
|
elif compiler.target.platform == 'mac':
|
||
|
if arch == 'x86':
|
||
|
path = os.path.join(builder.sourcePath, 'extensions', 'pgsql', 'lib_darwin')
|
||
|
elif arch == 'x86_64':
|
||
|
path = os.path.join(builder.sourcePath, 'extensions', 'pgsql', 'lib_darwin64')
|
||
|
compiler.postlink += [
|
||
|
os.path.join(path, 'libpq.a')
|
||
|
]
|
||
|
|
||
|
compiler.cxxincludes += [path]
|
||
|
|
||
|
binary.sources += [
|
||
|
os.path.join('..', '..', 'public', 'smsdk_ext.cpp'),
|
||
|
os.path.join('pgsql', 'PgBasicResults.cpp'),
|
||
|
os.path.join('pgsql', 'PgDatabase.cpp'),
|
||
|
os.path.join('pgsql', 'PgDriver.cpp'),
|
||
|
os.path.join('pgsql', 'PgStatement.cpp'),
|
||
|
'extension.cpp'
|
||
|
]
|
||
|
SM.extensions += [builder.Add(binary)]
|
||
|
|