Updating branch refs/heads/master
         to b994dbee7bb659a5f9022893a36f544f52396521 (commit)
       from bc8f76ec117699a57f51df8aac3b6c36559b9ad3 (commit)

commit b994dbee7bb659a5f9022893a36f544f52396521
Author: Enrico Tröger <enr...@xfce.org>
Date:   Sun Jan 2 14:42:46 2011 +0100

    Update Waf to 1.6.1 and adjust wscript

 waf     |  Bin 59403 -> 76329 bytes
 wscript |  396 ++++++++++++++++++++++++++++++---------------------------------
 2 files changed, 188 insertions(+), 208 deletions(-)

diff --git a/waf b/waf
index 29af63d..95ffdf3 100755
Binary files a/waf and b/waf differ
diff --git a/wscript b/wscript
index 3c721ec..b7fa147 100644
--- a/wscript
+++ b/wscript
@@ -20,238 +20,218 @@
 
 
 
-from TaskGen import taskgen, feature
-import Build, Configure, Options, Utils, UnitTest
-import sys, os, shutil
+import os
+from waflib import Logs, Options, Scripting
+from waflib.TaskGen import feature
 
 
 APPNAME = 'gigolo'
 VERSION = '0.4.1'
+LINGUAS_FILE = 'po/LINGUAS'
 
-srcdir = '.'
-blddir = '_build_'
+top = '.'
+out = '_build_'
 
 
-sources = [ 'src/compat.c', 'src/window.c', 'src/bookmark.c', 'src/settings.c',
-                       'src/menubuttonaction.c', 'src/mountoperation.c', 
'src/bookmarkdialog.c',
-                       'src/bookmarkeditdialog.c', 'src/preferencesdialog.c', 
'src/backendgvfs.c',
-                       'src/common.c', 'src/mountdialog.c', 
'src/browsenetworkpanel.c',
-                       'src/singleinstance.c', 'src/bookmarkpanel.c' ]
+sources = ['src/compat.c', 'src/window.c', 'src/bookmark.c', 'src/settings.c',
+           'src/menubuttonaction.c', 'src/mountoperation.c', 
'src/bookmarkdialog.c',
+           'src/bookmarkeditdialog.c', 'src/preferencesdialog.c', 
'src/backendgvfs.c',
+           'src/common.c', 'src/mountdialog.c', 'src/browsenetworkpanel.c',
+           'src/singleinstance.c', 'src/bookmarkpanel.c']
 
 
 
 def configure(conf):
-       conf.check_tool('compiler_cc intltool misc gnu_dirs')
+    conf.load('compiler_c intltool gnu_dirs waf_unit_test')
 
-       conf.check_cfg(package='gtk+-2.0', atleast_version='2.12.0', 
uselib_store='GTK',
-               mandatory=True, args='--cflags --libs')
-       conf.check_cfg(package='gio-2.0', atleast_version='2.16.0', 
uselib_store='GIO',
-               mandatory=True, args='--cflags --libs')
-       conf.check_cfg(package='x11', uselib_store='X11', mandatory=True, 
args='--libs')
+    conf.check_cfg(package='gtk+-2.0', atleast_version='2.12.0', 
uselib_store='GTK',
+        mandatory=True, args='--cflags --libs')
+    conf.check_cfg(package='gio-2.0', atleast_version='2.16.0', 
uselib_store='GIO',
+        mandatory=True, args='--cflags --libs')
+    conf.check_cfg(package='x11', uselib_store='X11', mandatory=True, 
args='--libs')
 
-       gtk_version = conf.check_cfg(modversion='gtk+-2.0', uselib_store='GTK')
-       gio_version = conf.check_cfg(modversion='gio-2.0', uselib_store='GIO')
+    gtk_version = conf.check_cfg(modversion='gtk+-2.0', uselib_store='GTK')
+    gio_version = conf.check_cfg(modversion='gio-2.0', uselib_store='GIO')
 
-       conf.define('GETTEXT_PACKAGE', APPNAME, 1)
-       conf.define('PACKAGE', APPNAME, 1)
-       conf.define('VERSION', VERSION, 1)
+    conf.define('GETTEXT_PACKAGE', APPNAME, 1)
+    conf.define('PACKAGE', APPNAME, 1)
+    conf.define('VERSION', VERSION, 1)
 
-       conf.write_config_header('config.h')
+    conf.write_config_header('config.h', remove=False)
 
-       if 'LINGUAS' in os.environ:
-               conf.env['LINGUAS'] = os.environ['LINGUAS']
+    if 'LINGUAS' in os.environ:
+        conf.env['LINGUAS'] = os.environ['LINGUAS']
 
-       # debug flags
-       if Options.options.debug:
-               conf.env.append_value('CCFLAGS', '-g -O0 -DDEBUG '.split())
+    # debug flags
+    if conf.options.debug:
+        conf.env.append_value('CCFLAGS', '-g -O0 -DDEBUG '.split())
 
-       Utils.pprint('BLUE', 'Summary:')
-       print_message(conf, 'Install Gigolo ' + VERSION + ' in', 
conf.env['PREFIX'])
-       print_message(conf, 'Using GTK version', gtk_version or 'Unknown')
-       print_message(conf, 'Using GIO version', gio_version or 'Unknown')
-       print_message(conf, 'Compiling with debugging support', 
Options.options.debug and 'yes' or 'no')
+    Logs.pprint('BLUE', 'Summary:')
+    conf.msg('Install Gigolo ' + VERSION + ' in', conf.env['PREFIX'])
+    conf.msg('Using GTK version', gtk_version or 'Unknown')
+    conf.msg('Using GIO version', gio_version or 'Unknown')
+    conf.msg('Compiling with debugging support', conf.options.debug and 'yes' 
or 'no')
 
 
-def set_options(opt):
-       opt.tool_options('compiler_cc')
-       opt.tool_options('intltool')
-       opt.tool_options('gnu_dirs')
+def options(opt):
+    opt.load('compiler_cc intltool gnu_dirs waf_unit_test')
 
-       # Features
-       opt.add_option('--enable-debug', action='store_true', default=False,
-               help='enable debug mode [default: No]', dest='debug')
-       opt.add_option('--update-po', action='store_true', default=False,
-               help='update the message catalogs for translation', 
dest='update_po')
+    opt.add_option('--enable-debug', action='store_true', default=False,
+        help='enable debug mode [default: No]', dest='debug')
 
 
-...@taskgen
-...@feature('intltool_po')
+def _remove_linguas_file():
+    try:
+        os.unlink(LINGUAS_FILE)
+    except OSError:
+        pass
+
+
+...@feature('linguas')
 def write_linguas_file(self):
-       linguas = ''
-       if 'LINGUAS' in Build.bld.env:
-               files = Build.bld.env['LINGUAS']
-               for po_filename in files.split(' '):
-                       if os.path.exists('po/%s.po' % po_filename):
-                               linguas += '%s ' % po_filename
-       else:
-               files = os.listdir('%s/po' % self.path.abspath())
-               files.sort()
-               for f in files:
-                       if f.endswith('.po'):
-                               linguas += '%s ' % f[:-3]
-       f = open("po/LINGUAS", "w")
-       f.write('# This file is autogenerated. Do not edit.\n%s\n' % linguas)
-       f.close()
+    if os.path.exists(LINGUAS_FILE):
+        return
+    linguas = ''
+    if 'LINGUAS' in self.env:
+        files = self.env['LINGUAS']
+        for po_filename in files.split(' '):
+            if os.path.exists ('po/%s.po' % po_filename):
+                linguas += '%s ' % po_filename
+    else:
+        files = os.listdir('%s/po' % self.path.abspath())
+        files.sort()
+        for filename in files:
+            if filename.endswith('.po'):
+                linguas += '%s ' % filename[:-3]
+    file_h = open(LINGUAS_FILE, 'w')
+    file_h.write('# This file is autogenerated. Do not edit.\n%s\n' % linguas)
+    file_h.close()
+
+
+def distclean(ctx):
+    Scripting.distclean(ctx)
+    _remove_linguas_file()
 
 
 def build(bld):
-       def add_tests(bld):
-               tests = os.listdir('tests')
-               for test in tests:
-                       if test[-2:] != '.c':
-                               continue
-                       target = test[:-2]
-                       source = os.path.join("tests", test)
-
-               bld.new_task_gen(
-                       features                = 'cc cprogram',
-                       target                  = 'test-' + target,
-                       source                  = source,
-                       includes                = '. src',
-                       uselib                  = 'GTK GIO',
-                       uselib_local    = 'gigolo_lib',
-                       unit_test               = 1,
-                       install_path    = None
-               )
-
-
-       bld.new_task_gen(
-               features                = 'cc cstaticlib',
-               name                    = 'gigolo_lib',
-               target                  = 'gigolo_lib',
-               source                  = sources,
-               includes                = '.',
-               uselib                  = 'GTK GIO',
-               install_path    = None
-       )
-
-       bld.new_task_gen(
-               features                = 'cc cprogram',
-               name                    = 'gigolo',
-               target                  = 'gigolo',
-               source                  = 'src/main.c',
-               includes                = '.',
-               uselib                  = 'GTK GIO X11',
-               uselib_local    = 'gigolo_lib',
-       )
-
-       if Options.commands['check']:
-               add_tests(bld)
-
-       # Translations
-       bld.new_task_gen(
-               features                = 'intltool_po',
-               podir                   = 'po',
-               appname                 = 'gigolo'
-       )
-
-       # gigolo.desktop
-       bld.new_task_gen(
-               features                = 'intltool_in',
-               source                  = 'gigolo.desktop.in',
-               flags                   = [ '-d', '-q', '-u', '-c' ],
-               install_path    = '${DATADIR}/applications'
-       )
-
-       # gigolo.1
-       bld.new_task_gen(
-               features                = 'subst',
-               source                  = 'gigolo.1.in',
-               target                  = 'gigolo.1',
-               dict                    = { 'VERSION' : VERSION },
-               install_path    = '${MANDIR}/man1'
-       )
-
-       # Docs
-       bld.install_files('${DOCDIR}', 'AUTHORS ChangeLog COPYING README NEWS 
TODO')
-
-
-def dist():
-       import md5
-       from Scripting import dist, excludes
-       excludes.append('gigolo-%s.tar.bz2.sig' % VERSION)
-       filename = dist(APPNAME, VERSION)
-       f = file(filename,'rb')
-       m = md5.md5()
-       readBytes = 100000
-       while (readBytes):
-               readString = f.read(readBytes)
-               m.update(readString)
-               readBytes = len(readString)
-       f.close()
-       launch('gpg --detach-sign --digest-algo SHA512 %s' % filename, 'Signing 
%s' % filename)
-       print 'MD5 sum:', filename, m.hexdigest()
-       sys.exit(0)
-
-
-def shutdown():
-       # the following code was taken from midori's WAF script, thanks
-       # (disabled because we don't need it at all as long as we don't have an 
own icon :( )
-       #~ if Options.commands['install'] or Options.commands['uninstall']:
-               #~ dir = Build.bld.get_install_path('${DATADIR}/icons/hicolor')
-               #~ icon_cache_updated = False
-               #~ if not Options.options.destdir:
-                       #~ try:
-                               #~ if not 
Utils.exec_command('gtk-update-icon-cache -q -f -t %s' % dir):
-                                       #~ Utils.pprint('YELLOW', "Updated Gtk 
icon cache.")
-                                       #~ icon_cache_updated = True
-                       #~ except:
-                               #~ Utils.pprint('RED', "Failed to update icon 
cache.")
-               #~ if not icon_cache_updated:
-                       #~ Utils.pprint('YELLOW', "Icon cache not updated. 
After install, run this:")
-                       #~ Utils.pprint('YELLOW', "gtk-update-icon-cache -q -f 
-t %s" % dir)
-       if Options.options.update_po:
-               os.chdir(os.path.join(srcdir, 'po'))
-               try:
-                       try:
-                               size_old = os.stat('gigolo.pot').st_size
-                       except:
-                               size_old = 0
-                       Utils.exec_command(['intltool-update', '--pot', '-g', 
APPNAME])
-                       size_new = os.stat('gigolo.pot').st_size
-                       if size_new != size_old:
-                               Utils.pprint('CYAN', 'Updated POT file.')
-                               launch('intltool-update -r %s' % APPNAME, 
'Updating translations', 'CYAN')
-                       else:
-                               Utils.pprint('CYAN', 'POT file is up to date.')
-               except:
-                       Utils.pprint('RED', 'Failed to generate pot file.')
-               os.chdir('..')
-
-
-def check(ch):
-       test = UnitTest.unit_test()
-       test.change_to_testfile_dir = False
-       test.want_to_see_test_output = True
-       test.want_to_see_test_error = True
-       test.run()
-       test.print_results()
-
-
-# Simple function to execute a command and print its exit status
-def launch(command, status, success_color='GREEN'):
-       ret = 0
-       Utils.pprint(success_color, status)
-       try:
-               ret = Utils.exec_command(command.split())
-       except:
-               ret = 1
-
-       if ret != 0:
-               Utils.pprint('RED', status + ' failed')
-
-       return ret
-
-def print_message(conf, msg, result, color = 'GREEN'):
-       conf.check_message_1(msg)
-       conf.check_message_2(result, color)
+    if bld.cmd == 'clean':
+        _remove_linguas_file()
+
+    bld.new_task_gen(
+        features        = 'c cstlib',
+        name            = 'gigolo_lib',
+        target          = 'gigolo_lib',
+        source          = sources,
+        includes        = '.',
+        uselib          = ['GTK', 'GIO'],
+        install_path    = None)
+
+    bld.new_task_gen(
+        features        = 'c cprogram',
+        name            = 'gigolo',
+        target          = 'gigolo',
+        source          = 'src/main.c',
+        includes        = '.',
+        use             = ['GTK', 'GIO', 'X11', 'gigolo_lib'])
+
+    # tests
+    bld(
+        features        = 'c cprogram test',
+        source          = 'tests/uri_parsing.c',
+        target          = 'test-uri-parsing',
+        includes        = ['.', 'src'],
+        use             = ['GTK', 'GIO', 'X11', 'gigolo_lib'],
+        install_path    = None)
+    bld.add_post_fun(_unit_test_summary)
+
+    # Translations
+    bld.new_task_gen(
+        features        = ['linguas', 'intltool_po'],
+        podir           = 'po',
+        install_path    = '${LOCALEDIR}',
+        appname         = 'gigolo')
+
+    # gigolo.desktop
+    bld.new_task_gen(
+        features        = 'intltool_in',
+        source          = 'gigolo.desktop.in',
+        flags           = ['-d', '-q', '-u', '-c'],
+        install_path    = '${DATADIR}/applications',
+        after           = 'intltool_po')
+
+    # gigolo.1
+    bld.new_task_gen(
+        features        = 'subst',
+        source          = 'gigolo.1.in',
+        target          = 'gigolo.1',
+        dct            = {'VERSION' : VERSION},
+        install_path    = '${MANDIR}/man1')
+
+    # Docs
+    bld.install_files('${DOCDIR}', 'AUTHORS ChangeLog COPYING README NEWS 
TODO')
+
+
+def _unit_test_summary(ctx):
+    lst = getattr(ctx, 'utest_results', [])
+    if lst:
+        Logs.pprint('CYAN', 'Execution summary:')
+
+        total = len(lst)
+        tfail = len([x for x in lst if x[1]])
+
+        Logs.pprint('CYAN', '  Passed tests: %d/%d' % (total-tfail, total))
+        for (filename, code, stdout, stderr) in lst:
+            if not code:
+                Logs.pprint('CYAN', '    %s' % filename)
+
+        Logs.pprint('CYAN', '  Failed tests: %d/%d' % (tfail, total))
+        for (filename, code, stdout, stderr) in lst:
+            if code:
+                Logs.pprint('CYAN', '%s:' % filename)
+                Logs.pprint('RED', '%s' % stdout)
+
+
+def updatepo(ctx):
+    """update the message catalogs for internationalization"""
+    potfile = '%s.pot' % APPNAME
+    os.chdir('%s/po' % top)
+    try:
+        try:
+            old_size = os.stat(potfile).st_size
+        except OSError:
+            old_size = 0
+        ctx.exec_command('intltool-update --pot -g %s' % APPNAME)
+        size_new = os.stat(potfile).st_size
+        if size_new != old_size:
+            Logs.pprint('CYAN', 'Updated POT file.')
+            Logs.pprint('CYAN', 'Updating translations')
+            ret = ctx.exec_command('intltool-update -r -g %s' % APPNAME)
+            if ret != 0:
+                Logs.pprint('RED', 'Updating translations failed')
+        else:
+            Logs.pprint('CYAN', 'POT file is up to date.')
+    except OSError:
+        Logs.pprint('RED', 'Failed to generate pot file.')
+
+
+def dist(ctx):
+    ctx.base_path = ctx.path
+    ctx.excl = ctx.get_excl() + 'gigolo-%s.tar.bz2.sig module.xml RUN 
.gitignore .intlcache' % VERSION
+
+
+def sign(ctx):
+    """sign the source tarball for distribution"""
+    from hashlib import md5
+    filename = '%s-%s.tar.bz2' % (APPNAME, VERSION)
+    md5_hash = md5()
+    read_bytes = 100000
+    archive_file = file(filename,'rb')
+    while read_bytes:
+        read_string = archive_file.read(read_bytes)
+        md5_hash.update(read_string)
+        read_bytes = len(read_string)
+    archive_file.close()
+
+    ctx.cmd_and_log('gpg --detach-sign --digest-algo SHA512 %s' % filename)
+    Logs.pprint('GREEN', 'MD5 sum: %s %s' % (filename, md5_hash.hexdigest()))
+
_______________________________________________
Xfce4-commits mailing list
Xfce4-commits@xfce.org
http://foo-projects.org/mailman/listinfo/xfce4-commits

Reply via email to