# encoding: utf-8
#
# WAF build scripts for XMMS2
# Copyright (C) 2006-2023 XMMS2 Team
#

from waflib import Options, Logs, Errors, Utils

def build(bld):
    source = """
    strlist.c
    utils.c
    log.c
    """.split()
    if bld.env.util_impl == 'win32':
        source.extend(['utils_win32.c'])
    else:
        source.extend(['utils_unix.c'])

    if bld.env.have_valgrind:
        source.extend(['stacktrace.c'])
    else:
        source.extend(['stacktrace_dummy.c'])

    bld.objects(
        features = 'visibilityhidden',
        cflags=bld.env.CFLAGS_cshlib,
        target = 'xmmsutils',
        source = source,
        includes = '. ../../.. ../../include ../../includepriv',
        uselib = 'rt valgrind',
        install_path = None,
        defines = 'XMMSC_LOG_DOMAIN="xmmsc/xmmsutils"'
        )


def configure(conf):
    if Utils.unversioned_sys_platform() == 'win32':
        conf.env.util_impl = 'win32'
    else:
        conf.env.util_impl = 'unix'

        nanosleep_fragment = """
        #include <time.h>
        int main(void) {
            return nanosleep(0,0);
        }
        """
        try:
            conf.check_cc(fragment=nanosleep_fragment, header_name="time.h")
        except Errors.ConfigurationError:
            conf.check_cc(fragment=nanosleep_fragment, header_name="time.h",
                    lib="rt", uselib_store="rt")
    return True


def options(opt):
    pass
