from waflib import Options, Errors

source = """
main.c
cli_infos.c
cli_cache.c
command_trie.c
commands.c
matching_browse.c
command_utils.c
cmdnames.c
configuration.c
status.c
utils.c
alias.c
column_display.c
readline.c
playlist_positions.c
""".split()

def build(bld):
    compat = ['compat_%s.c' % bld.env.CLI_COMPAT_IMPL]

    bld(features = 'c cprogram',
        target = 'xmms2',
        source = source + compat,
        includes = '. ../../../ ../../include',
        uselib = 'glib2 readline readline_ncurses',
        use = 'xmmsclient'
        )

    bld(features = 'man',
        source = 'xmms2.1'
        )

    bld.symlink_as('${PREFIX}/bin/nyxmms2', 'xmms2')


def configure(conf):
    if Options.platform == 'win32':
        conf.env.CLI_COMPAT_IMPL = 'win32'
    else:
        conf.env.CLI_COMPAT_IMPL = 'unix'

    rl_headers=["stdio.h", "readline/readline.h"]

    conf.check_cc(header_name=rl_headers)

    # first try just linking against libreadline
    try:
        conf.check_cc(lib="readline", header_name=rl_headers,
                function_name='rl_filename_dequoting_function',
                uselib_store="readline", uselib="glib2")
    except Errors.ConfigurationError:
        pass
    else:
        return

    # then try ncurses
    conf.check_cc(lib="ncurses", uselib_store="readline_ncurses")
    conf.check_cc(lib="readline", header_name=rl_headers,
            function_name='rl_filename_dequoting_function',
            uselib_store="readline", uselib="glib2 readline_ncurses")


def options(opt):
    pass
