# -*- mode: python; -*-

Import("env")

env.Library('boost_system', ['libs/system/src/error_code.cpp'])

boost_thread_source = dict(
    posix=['libs/thread/src/pthread/once.cpp',
           'libs/thread/src/pthread/thread.cpp'],
    win=['libs/thread/src/win32/thread.cpp',
         'libs/thread/src/win32/tss_pe.cpp']
    ).get(env['OS_FAMILY'], 'UNKNOWN_OS_FAMILY_FOR_BOOST_THREADS__%s' % env['OS_FAMILY'])

threadlib_env = env.Clone()
threadlib_env.Append(CPPDEFINES=['BOOST_THREAD_BUILD_LIB'])
threadlib_env.Library('boost_thread', [
                    'libs/thread/src/future.cpp',
                    'libs/thread/src/tss_null.cpp'
                    ] + boost_thread_source)

env.Library('boost_filesystem', [
        'libs/filesystem/src/codecvt_error_category.cpp',
        'libs/filesystem/src/operations.cpp',
        'libs/filesystem/src/path.cpp',
        'libs/filesystem/src/path_traits.cpp',
        'libs/filesystem/src/portability.cpp',
        'libs/filesystem/src/unique_path.cpp',
        'libs/filesystem/src/utf8_codecvt_facet.cpp',
        'libs/filesystem/src/windows_file_codecvt.cpp',
        ])

env.Library('boost_program_options', [
        'libs/program_options/src/cmdline.cpp',
        'libs/program_options/src/config_file.cpp',
        'libs/program_options/src/convert.cpp',
        'libs/program_options/src/options_description.cpp',
        'libs/program_options/src/parsers.cpp',
        'libs/program_options/src/positional_options.cpp',
        'libs/program_options/src/split.cpp',
        'libs/program_options/src/utf8_codecvt_facet.cpp',
        'libs/program_options/src/value_semantic.cpp',
        'libs/program_options/src/variables_map.cpp',
        'libs/program_options/src/winmain.cpp',
        ])
