# 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')