# -*- mode: python -*-

Import("env use_system_version_of_library windows darwin usesm usev8")

env.SConscript( [
        "murmurhash3/SConscript",
        "s2/SConscript",
        ] )
env.Append(CPPPATH='$BUILD_DIR/third_party/s2')

if use_system_version_of_library("pcre"):
    env.StaticLibrary( "pcrecpp", ['shim_pcrecpp.cc'],
                       SYSLIBDEPS=[ 'pcre' , 'pcrecpp' ] )
else:
    env.SConscript('pcre-${PCRE_VERSION}/SConscript')
    env.StaticLibrary( "pcrecpp", ['shim_pcrecpp.cc'],
                       LIBDEPS=[ 'pcre-${PCRE_VERSION}/pcrecpp' ] )

if use_system_version_of_library("boost"):
    env.StaticLibrary("shim_boost", ['shim_boost.cpp'])
else:
    env.SConscript('boost/SConscript')
    env.StaticLibrary( "shim_boost", ['shim_boost.cpp'],
                       LIBDEPS=[ 'boost/boost_program_options',
                                 'boost/boost_filesystem',
                                 'boost/boost_thread',
                                 'boost/boost_system',
                                 ] )
if use_system_version_of_library("snappy"):
    env.StaticLibrary("shim_snappy", ['shim_snappy.cpp'],
                      SYSLIBDEPS=['snappy'])
else:
    env.Append(CPPPATH='$BUILD_DIR/third_party/snappy')
    env.SConscript('snappy/SConscript')
    env.StaticLibrary('shim_snappy', ['shim_snappy.cpp'], LIBDEPS=['snappy/snappy'])

if usesm:
    if use_system_version_of_library("sm"):
        env.StaticLibrary("shim_spidermonkey", ['shim_spidermonkey.cpp'], SYSLIBDEPS=['js'])
    else:
        if windows:
            env.Append(CPPDEFINES=['XP_WIN'])
        else:
            env.Append(CPPDEFINES=['XP_UNIX'])
        env.Append(CPPPATH='$BUILD_DIR/third_party/js-1.7')
        env.SConscript('js-1.7/SConscript')
        env.StaticLibrary('shim_spidermonkey', ['shim_spidermonkey.cpp'], LIBDEPS=['js-1.7/js'])
elif usev8:
    if use_system_version_of_library("v8"):
        env.StaticLibrary("shim_v8", ['shim_v8.cpp'], SYSLIBDEPS=['v8'])
    else:
        env.Append(CPPPATH='$BUILD_DIR/third_party/v8/include')
        env.SConscript('v8/SConscript')
        env.StaticLibrary('shim_v8', ['shim_v8.cpp'], LIBDEPS=['v8/v8'])

if (GetOption("allocator") != "tcmalloc") or use_system_version_of_library("tcmalloc"):
    env.StaticLibrary("shim_allocator", "shim_allocator.cpp")
else:
    env.SConscript('gperftools-2.0/SConscript')
    env.StaticLibrary('shim_allocator', 'shim_allocator.cpp',
                      LIBDEPS=['gperftools-2.0/tcmalloc_minimal'])

env.SConscript('libstemmer_c/SConscript')
