#!/usr/bin/env python


def build(bld):
    sources = [
        'AtomReader.cpp',
        'AtomWriter.cpp',
        'ClashAvoider.cpp',
        'ColorContext.cpp',
        'Configuration.cpp',
        'FilePath.cpp',
        'Forge.cpp',
        'LV2Features.cpp',
        'Library.cpp',
        'Log.cpp',
        'Parser.cpp',
        'Resource.cpp',
        'Serialiser.cpp',
        'Store.cpp',
        'StreamWriter.cpp',
        'TurtleWriter.cpp',
        'URI.cpp',
        'URIMap.cpp',
        'URIs.cpp',
        'World.cpp',
        'runtime_paths.cpp'
    ]
    if bld.is_defined('HAVE_SOCKET'):
        sources += ['SocketReader.cpp', 'SocketWriter.cpp']

    lib = []
    if bld.is_defined('HAVE_LIBDL'):
        lib += ['dl']

    bld(features        = 'cxx cxxshlib',
        source          = sources,
        export_includes = ['../include'],
        includes        = ['.', '..', '../include'],
        name            = 'libingen',
        target          = 'ingen-%s' % bld.env.INGEN_MAJOR_VERSION,
        vnum            = bld.env.INGEN_VERSION,
        install_path    = '${LIBDIR}',
        lib             = lib,
        uselib          = 'LV2 LILV RAUL SERD SORD SRATOM',
        cxxflags        = (['-fvisibility=hidden'] +
                           bld.env.PTHREAD_CFLAGS + bld.env.INGEN_TEST_CXXFLAGS),
        linkflags       = bld.env.PTHREAD_LINKFLAGS + bld.env.INGEN_TEST_LINKFLAGS)