69 lines
1.8 KiB
Python
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')
|