#! /usr/bin/env python
# WAF build script for midori
# This file is licensed under the terms of the expat license, see the file EXPAT.

import Options
import os

extensions = os.listdir ('extensions')
for extension in extensions:
    folder = 'extensions' + os.sep + extension
    if os.path.isdir (folder):
        files = os.listdir (folder)
        target = extension
        source = ''
        for fila in files:
            if fila[-2:] == '.c' or fila[-5:] == '.vala':
                source += ' ' + extension + os.sep + fila
        if not source:
            Utils.pprint ('RED', folder + ': No source files found')
            continue
    else:
        if extension[-2:] == '.c':
            target = extension[:-2]
        elif extension[-5:] == '.vala':
            target = extension[:-5]
        else:
            continue
        source = extension

    # FIXME
    if bld.env['HAVE_WEBKIT2'] and target in ['external-download-manager', 'nsplugin-manager', 'formhistory', 'adblock', 'cookie-permissions', 'addons', 'cookie-manager']:
        continue

    obj = bld.new_task_gen ('cc', 'shlib')
    obj.target = target
    obj.includes = '.. ../katze ../midori'
    obj.source = source
    obj.uselib = 'UNIQUE LIBSOUP GIO GTK SQLITE WEBKIT LIBXML GRANITE'
    if 'vala' in source:
        obj.env.append_value ('CCFLAGS', '-w')
        obj.vapi_dirs = '../midori ../katze'
        obj.packages = 'glib-2.0 gio-2.0 libsoup-2.4 sqlite3 midori midori-core katze'
        if bld.env['HAVE_GTK3']:
            obj.packages += ' gtk+-3.0'
        else:
            obj.packages += ' gtk+-2.0'
        if bld.env['HAVE_WEBKIT2']:
            obj.packages += ' webkit2gtk-3.0'
        else:
            obj.packages += ' webkitgtk-3.0'
        if bld.env['HAVE_GRANITE']:
            obj.packages += ' granite'
    obj.install_path = '${LIBDIR}/midori'
    # See LINKFLAGS in wscript: w/ o it we get several "undefined reference" errors
    if bld.env['platform'] == 'win32':
        obj.uselib_local = 'midori'
