# -*- mode: python; -*-

Import("env")

env = env.Clone()

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

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',
        ],
        LIBDEPS=[
            'boost_system',
        ])

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',
        ],
        # Because `::environ` is resolved in `/usr/lib/crt1.o` on FreeBSD, this library needs to be
        # marked `incomplete` on FreeBSD.
        LIBDEPS_TAGS=[] if not env.TargetOSIs('freebsd') else [
            'illegal_cyclic_or_unresolved_dependencies_whitelisted',
        ])

env.Library('boost_iostreams', [
        'libs/iostreams/src/file_descriptor.cpp',
        'libs/iostreams/src/mapped_file.cpp',
        ],
        LIBDEPS=[
            'boost_system',
        ])
