#! /usr/bin/env python
# encoding: utf-8

def configure(conf):
    pass

def build(bld):
    sources_engine = [
        'gx_jack.cpp',
        'gx_preset.cpp',
        'gx_json.cpp',
        'gx_faust_plugins.cpp',
        'gx_internal_plugins.cpp',
        'gx_internal_ui_plugins.cpp',
        'gx_midi_plugin.cpp',
        'gx_engine_audio.cpp',
        'gx_paramtable.cpp',
        'gx_ui.cpp',
        'gx_pitch_tracker.cpp',
        'gx_convolver.cpp',
        'gx_resampler.cpp',
        'gx_system.cpp',
        'gx_engine.cpp',
        'gx_engine_midi.cpp',
        'gx_pluginloader.cpp',
        ]

    sources_gui = [
        'gx_gui_helpers.cpp',
        'gx_main_interface.cpp',
        'gx_child_process.cpp',
        'gx_main_midi.cpp',
        'gx_jconv_settings.cpp',
        'gxw_mm_controllers.cpp',
        'gx_main_boxes.cpp',
        'gx_interface_builder.cpp',
        'gx_mono_rack_builder.cpp',
        'gx_stereo_rack_builder.cpp',
        'gx_cairo_callbacks.cpp',
        'gx_threads.cpp',
        'gx_portmap.cpp',
        'gx_main.cpp',
        ]

    builder_files = [
        'midi.glade',
        'ports.glade',
        'iredit.glade',
        'jackstarter.glade',
        ]

    sources = sources_engine + sources_gui
    incl = ['.','../..','..','../headers','../../libgxwmm','../../libgxw'] # need ".." for config.h
    libpath = []
    lib = ['dl']
    uselib = ['JACK', 'SNDFILE', 'GTHREAD', 'GMODULE_EXPORT',
              'GTK2', 'GTKMM', 'GIOMM', 'FFTW3', 'BOOST_THREAD']
    uselib_local = []
    if bld.env['ZITA_CONVOLVER']:
        uselib.append('ZITA_CONVOLVER')
    else:
        sources.append('../zita-convolver/zita-convolver.cc')
        incl.append('../zita-convolver');
    if bld.env['ZITA_RESAMPLER']:
        uselib.append('ZITA_RESAMPLER')
    else:
        sources.append('../zita-resampler/zita-resampler.cc')
        incl.append('../zita-resampler')
    if bld.env["HAVE_PLUGINLIB"]:
        uselib_local += ["plugins"]
    if bld.env["GX_LIB_SHARED"]:
        lib += ['gxwmm','gxw']
        libpath += [bld.path.find_dir("../../libgxw/gxw").bldpath(bld.env),
                    bld.path.find_dir("../../libgxwmm/gxwmm").bldpath(bld.env)]
    else:
        uselib_local += ['gxwmm','gxw']
    bld(features = 'cxx cprogram',
        includes = incl,
        obj_ext  = '.o',
        source = sources,
        lib = lib,
        uselib = uselib,
        uselib_local = uselib_local,
        libpath = libpath,
        target = bld.env['BIN_NAME'],
        chmod = 0755,
        install_path = bld.env['BINDIR'],
        )
    bld.install_files(bld.env['GX_BUILDER_DIR'], builder_files, chmod=0644)
