# -*- python -*-

import os
import os.path
import glob

glibmm2_files = glob.glob('glib/glibmm/*.cc')
giomm_files = glob.glob('gio/giomm/*.cc')

Import('env libraries install_prefix')

glibmm2 = env.Clone()
glibmm2.Merge([libraries['sigc2'], libraries['glib2']])
glibmm2.Append(LIBPATH='#libs/glibmm2',
                 CPPPATH='#libs/glibmm2/glib')

giomm = env.Clone()
giomm.Merge([libraries['sigc2'], libraries['glib2'], libraries['gio']])
giomm.Append(LIBPATH='#libs/glibmm2',
             CPPPATH='#libs/glibmm2/gio')
giomm.Append(CPPPATH='#libs/glibmm2/glib')

glibmm2.Append(CXXFLAGS=['-DHAVE_CONFIG_H', '-DGLIBMM_EXCEPTIONS_ENABLED', '-DGLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED', '-DGLIBMM_PROPERTIES_ENABLED'])
giomm.Append(CXXFLAGS='-DG_DISABLE_DEPRECATED')
glibmm2.Append(CXXFLAGS='-DG_LOG_DOMAIN=\\\"glibmm\\\"')

giomm.Append(CXXFLAGS=['-DHAVE_CONFIG_H', '-DGLIBMM_EXCEPTIONS_ENABLED', '-DGLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED', '-DGLIBMM_PROPERTIES_ENABLED'])
giomm.Append(CXXFLAGS='-DG_LOG_DOMAIN=\\\"giomm\\\"')

libglibmm2 = glibmm2.SharedLibrary('glibmm2', glibmm2_files)
libgiomm = giomm.SharedLibrary('giomm', giomm_files)

if os.access ('autogen.sh', os.F_OK) :
    #
    # note that this should also build the giomm config.h and other files
    # 
    glibmm2_configure_script = glibmm2.Command ('configure', 'configure.in', 'cd libs/glibmm2; ./autogen.sh; cd -', ENV=os.environ)
    glibmm2_config_h = glibmm2.Command('glib/glibmmconfig.h', [glibmm2_configure_script, 'glib/glibmmconfig.h.in'],
                                       'cd libs/glibmm2; ./configure || exit 1; cd -', ENV=os.environ)
else :
    glibmm2_config_h = glibmm2.Command('glib/glibmmconfig.h', ['configure', 'glib/glibmmconfig.h.in'],
                                       'cd libs/glibmm2; ./configure || exit 1; cd -', ENV=os.environ)

Default([glibmm2_config_h, libglibmm2, libgiomm])

env.Alias('install', env.Install(os.path.join(install_prefix, env['LIBDIR'], 'ardour3'), libglibmm2))
env.Alias('install', env.Install(os.path.join(install_prefix, env['LIBDIR'], 'ardour3'), libgiomm))

env.Alias('tarball', env.Distribute (env['DISTTREE'],
                                     [ 'SConscript',
                                       'configure',
                                       'Makefile.in',
                                       'glib/glibmm.h',
                                       'glib/glibmmconfig.h',
                                       'glib/glibmmconfig.h.in',
                                       'glib/glibmm-2.4.pc.in',
                                       'glib/glibmm/Makefile.in',
                                       'scripts',
                                       'build_shared',
                                       'gio/giommconfig.h',
                                       'gio/giommconfig.h.in',
                                       'gio/giomm.h',
                                       'gio/Makefile.in',
                                       ] +
				     glibmm2_files + 
				     giomm_files + 
				     glob.glob('glib/glibmm/*.h') +
				     glob.glob('glib/glibmm/private/*.h') +
				     glob.glob('gio/giomm/*.h') +
				     glob.glob('gio/giomm/private/*.h')
				     ))

