# -*- python -*-
# encoding: utf-8

import os
import Common

def configure(conf):
    conf.env.append_value('MODULES_AVAILABLE', 'gnomevfs')
    conf.env.append_value('MODULES_AVAILABLE', 'gnomevfs.bonobo')
    conf.env.append_value('MODULES_AVAILABLE', 'gnomevfs.module')

    if 'gnomevfs' in conf.env['ENABLE_MODULES'] or 'all' in conf.env['ENABLE_MODULES']:
        if conf.check_pkg('gnome-vfs-2.0 >= 2.14 pygobject-2.0',
                          destvar='GNOMEVFS', mandatory=False):
            conf.env.append_value('MODULES_TO_BUILD', 'gnomevfs')

    if 'gnomevfs.bonobo' in conf.env['ENABLE_MODULES'] or 'all' in conf.env['ENABLE_MODULES']:
        if conf.check_pkg('gnome-vfs-2.0 >= 2.14 bonobo-activation-2.0 >= 2.8.0'
                          ' pyorbit-2 >= 2.0.1 pygobject-2.0',
                          destvar='GNOMEVFSBONOBO', mandatory=False):
            conf.env.append_value('MODULES_TO_BUILD', 'gnomevfs.bonobo')

    if 'gnomevfs.module' in conf.env['ENABLE_MODULES'] or 'all' in conf.env['ENABLE_MODULES']:
        if conf.check_pkg('gnome-vfs-module-2.0 >= 2.14 bonobo-activation-2.0 >= 2.8.0'
                          ' pyorbit-2 >= 2.0.1 pygobject-2.0',
                          destvar='GNOMEVFSMODULE', mandatory=False):
            conf.env.append_value('MODULES_TO_BUILD', 'gnomevfs.module')


def build(bld):
    
    if 'gnomevfs' in bld.env()['MODULES_TO_BUILD']:
        vfsdir = os.path.join('gtk-2.0', 'gnomevfs')

        py = bld.create_obj('py')
        py.inst_dir = vfsdir
        py.source = "__init__.py"

        pyext = bld.create_pyext()
        pyext.source = '''
vfsmodule.c vfs-uri.c vfs-file-info.c vfs-dir-handle.c
vfs-handle.c vfs-xfer-progress-info.c vfs-context.c
vfs-async-handle.c vfs-volume.c vfs-drive.c vfs-volume-monitor.c
'''
        pyext.target = '_gnomevfs'
        pyext.uselib = 'GNOMEVFS'
        pyext.includes = '.'
        pyext.inst_var = 'PYTHONDIR'
        pyext.inst_dir = vfsdir

    if 'gnomevfs.bonobo' in bld.env()['MODULES_TO_BUILD']:
        pyext = bld.create_pyext()
        pyext.source = 'vfsbonobomodule.c'
        pyext.target = 'gnomevfsbonobo'
        pyext.uselib = 'GNOMEVFSBONOBO'
        pyext.includes = '.'
        pyext.inst_var = 'PYTHONDIR'
        pyext.inst_dir = vfsdir

    if 'gnomevfs.module' in bld.env()['MODULES_TO_BUILD']:
        pyembed = bld.create_obj('cc', 'shlib', 'pyembed')
        pyembed.source = 'gnome-vfs-python-method.c'
        pyembed.target = 'pythonmethod'
        pyembed.uselib = 'GNOMEVFSMODULE'
        pyembed.includes = '.'
        pyembed.inst_var = 'LIBDIR'
        pyembed.inst_dir = os.path.join('gnome-vfs-2.0', 'modules')

        vfsmethoddir = os.path.join(pyembed.env['LIBDIR'], 'gnome-vfs-2.0', 'modules')
        pyembed.env.append_value('CCDEFINES', 'GNOME_VFS_PYTHON_DIR="\\"%s\\""' % vfsmethoddir)

    Common.install_files('PREFIX', os.path.join('include', 'gnome-python-2.0'),
                         ['pygnomevfs.h', 'pygnomevfsbonobo.h'])
