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

import os
import Common

def configure(conf):
    conf.env['ENABLE_GNOMEVFS'] = bool(conf.check_pkg(
            'gnome-vfs-2.0 >= 2.14 pygobject-2.0',
            destvar='GNOMEVFS', mandatory=False))

    conf.env['ENABLE_GNOMEVFSBONOBO'] = bool(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['ENABLE_GNOMEVFSMODULE'] = bool(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))


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

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

        pyext = bld.create_obj('cc', 'shlib', '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.env.append_value('CPPPATH', '../gnomevfs') # work around possible WAF bug
        pyext.install_var = 'PYTHONDIR'
        pyext.install_subdir = vfsdir

    if bld.env()['ENABLE_GNOMEVFSBONOBO']:
        pyext = bld.create_obj('cc', 'shlib', 'pyext')
        pyext.source = 'vfsbonobomodule.c'
        pyext.target = 'gnomevfsbonobo'
        pyext.uselib = 'GNOMEVFSBONOBO'
        pyext.env.append_value('CPPPATH', '../gnomevfs') # work around possible WAF bug
        pyext.install_var = 'PYTHONDIR'
        pyext.install_subdir = vfsdir

    if bld.env()['ENABLE_GNOMEVFSMODULE']:
        pyembed = bld.create_obj('cc', 'shlib', 'pyembed')
        pyembed.source = 'gnome-vfs-python-method.c'
        pyembed.target = 'pythonmethod'
        pyembed.uselib = 'GNOMEVFSMODULE'
        pyembed.env.append_value('CPPPATH', '../gnomevfs') # work around possible WAF bug
        pyembed.install_var = 'LIBDIR'
        pyembed.install_subdir = 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'])
