adchpp-docker/src/adchpp/SConscript

69 lines
1.8 KiB
Python

# vim: set filetype=py
def getRevision(env):
"""Attempt to get information about the repository, via the "hg log"
command. Its output is formatted via the "-T" parameter (see "hg templates"
for details).
:return: Version information string, or "[unknown]" on failure.
:rtype: str.
"""
try:
import subprocess
ret = subprocess.check_output(
'hg log -r tip -T "{node | short} - {date | isodate}"',
shell=True
)
if ret:
return ret
except:
pass
return '[unknown]'
Import('dev source_path')
env, target, sources = dev.prepare_build(source_path, 'adchpp', shared_precompiled_header = 'adchpp')
env.Append(CPPPATH = ['.'])
env.Append(CPPDEFINES=["BUILDING_ADCHPP=1"])
if env['CC'] == 'cl': # MSVC
env.Append(LIBS = ['advapi32', 'user32'])
if 'HAVE_DL' in env['CPPDEFINES']:
env.Append(LIBS = ['dl'])
if 'HAVE_PTHREAD' in env['CPPDEFINES']:
env.Append(LIBS = ['pthread'])
if 'HAVE_OPENSSL' in env['CPPDEFINES']:
if dev.is_win32():
if env['CC'] == 'cl': # MSVC
if env['mode'] == 'debug':
env.Prepend(LIBS = ['ssleay32d', 'libeay32d'])
else:
env.Prepend(LIBS = ['ssleay32', 'libeay32'])
else:
env.Prepend(LIBS = ['ssl', 'crypto'])
env.Append(LIBS = ['gdi32']) # something in OpenSSL uses CreateDC etc...
env.Append(CPPPATH=['#/openssl/include'])
openssl_lib = '#/openssl/lib/'
if env['arch'] != 'x86':
openssl_lib += env['arch'] + '/'
env.Append(LIBPATH=[openssl_lib])
else:
env.Prepend(LIBS = ['ssl', 'crypto'])
for i, source in enumerate(sources):
if source.find("version.cpp") != -1:
rev = ['ADCHPP_REVISION=' + getRevision(env)]
sources[i] = env.SharedObject(source, CPPDEFINES=env['CPPDEFINES'] + rev)
headers=dev.get_sources(source_path, "*.h")
ret = env.SharedLibrary(target, sources)
Return('ret')