#! /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 os
import sys
import Utils

tests = os.listdir ('tests')
for test in tests:
    folder = 'tests' + os.sep + test
    if os.path.isdir (folder):
        files = os.listdir (folder)
        target = test
        source = ''
        for fila in files:
            if fila[-2:] == '.c' or fila[-5:] == '.vala':
                source += ' ' + test + os.sep + fila
        if not source:
            Utils.pprint ('RED', folder + ': No source files found')
            sys.exit (1)

    elif test[-3:] == '.py' or test[-3:] == '.sh':
        obj = bld.new_task_gen ('command-output')
        obj.no_inputs = obj.no_outputs = obj.command_is_external = True
        obj.command = ['python', 'sh'][test[-3:] == '.sh']
        os.environ['SRCDIR'] = os.getcwd ()
        os.environ['BLDDIR'] = '_build'
        obj.argv = [os.path.join (os.getcwd (), folder)]
        continue
    elif test[-2:] == '.c':
        target = test[:-2]
        source = test
    elif test[-5:] == '.vala':
        target = test[:-5]
        source = test
    else:
        Utils.pprint ('YELLOW', folder + ': Skipped')
        continue

    obj = bld.new_task_gen ('cc', 'program')
    obj.target = 'test-' + target
    obj.includes = '.. ../midori ../panels'
    obj.source = source
    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 katze midori midori-core'
        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'
    obj.uselib = 'UNIQUE LIBSOUP GIO GTK SQLITE WEBKIT LIBXML GRANITE ZEITGEIST'
    obj.uselib_local = 'midori-c'
    obj.unit_test = 1
