gnome-python r642 - in trunk: . bonobo docs/gnomevfs gconf gnome gnomecanvas gnomevfs



Author: gjc
Date: Sat Jan  3 22:52:59 2009
New Revision: 642
URL: http://svn.gnome.org/viewvc/gnome-python?rev=642&view=rev

Log:
Experimental support for waf 1.5.x

Modified:
   trunk/   (props changed)
   trunk/README
   trunk/bonobo/wscript
   trunk/docs/gnomevfs/wscript
   trunk/gconf/wscript
   trunk/gnome/wscript
   trunk/gnomecanvas/wscript
   trunk/gnomevfs/wscript
   trunk/wscript

Modified: trunk/README
==============================================================================
--- trunk/README	(original)
+++ trunk/README	Sat Jan  3 22:52:59 2009
@@ -0,0 +1,7 @@
+GnomePython: Python bindings for a few GNOME Developer Platform libraries.
+
+Note: this branch requires a special branch of WAF: https://code.launchpad.net/~gjc/waf/cmd
+This WAF version can be retrieved by this command:
+
+$ bzr co lp:~gjc/waf/cmd waf-cmd
+

Modified: trunk/bonobo/wscript
==============================================================================
--- trunk/bonobo/wscript	(original)
+++ trunk/bonobo/wscript	Sat Jan  3 22:52:59 2009
@@ -2,89 +2,79 @@
 # encoding: utf-8
 
 import os
-import Common
 
 def configure(conf):
     conf.env.append_value('MODULES_AVAILABLE', 'bonobo')
     conf.env.append_value('MODULES_AVAILABLE', 'bonobo.ui')
 
     if 'bonobo' in conf.env['ENABLE_MODULES'] or 'all' in conf.env['ENABLE_MODULES']:
-        if conf.check_pkg('libbonobo-2.0 >= 2.8.0 pygobject-2.0 pyorbit-2 >= 2.0.1',
-                          destvar='BONOBO', mandatory=False):
+        if conf.pkg_check_modules('BONOBO',
+                                  'libbonobo-2.0 >= 2.8.0 pygobject-2.0 pyorbit-2 >= 2.0.1',
+                                  mandatory=False):
             conf.env.append_value('MODULES_TO_BUILD', 'bonobo')
 
     if 'bonobo.ui' in conf.env['ENABLE_MODULES'] or 'all' in conf.env['ENABLE_MODULES']:
-        if conf.check_pkg('libbonoboui-2.0 >= 2.8.0 pygobject-2.0 pyorbit-2 >= 2.0.1',
-                          destvar='BONOBOUI', mandatory=False):
+        if conf.pkg_check_modules('BONOBOUI',
+                                  'libbonoboui-2.0 >= 2.8.0 pygobject-2.0 pyorbit-2 >= 2.0.1',
+                                  mandatory=False):
             conf.env.append_value('MODULES_TO_BUILD', 'bonobo.ui')
 
-def codegen(bld, module):
-    cmd = bld.create_obj('command-output')
-    cmd.command = bld.env()['CODEGEN']
-    cmd.command_is_external = True
-    cmd.prio = 5
-    cmd.argv = [
-        '--py_ssize_t-clean',
-        '--load-types', cmd.input_file('bonobo-arg-types.py'),
-        '--register', os.path.join(cmd.env['PYGTK_DEFSDIR'], 'pango-types.defs'),
-        '--register', os.path.join(cmd.env['PYGTK_DEFSDIR'], 'gdk-types.defs'),
-        '--register', os.path.join(cmd.env['PYGTK_DEFSDIR'], 'gtk-types.defs'),
-        '--register', cmd.input_file('../gnome/gnome-types.defs'),
-        '--register', cmd.input_file('../gnomecanvas/canvas.defs'),
-        '--register', cmd.input_file('bonobo-types.defs'),
-        '--prefix', 'py'+module,
-        '--override', cmd.input_file("%s.override" % module),
-        cmd.input_file("%s.defs" % module),
-        ]
-    cmd.stdout = '%s.c' % module
-    return cmd
-
 
 def build(bld):
+    env = bld.env
     
-    if 'bonobo' in bld.env()['MODULES_TO_BUILD']:
-        py = bld.create_obj('py')
-        py.inst_dir = os.path.join('gtk-2.0', 'bonobo')
+    if 'bonobo' in bld.env['MODULES_TO_BUILD']:
+        py = bld.new_task_gen('py')
+        py.install_path = '${PYTHONDIR}/gtk-2.0/bonobo'
         py.source = "__init__.py"
 
-        codegen(bld, 'bonobo')
+        bld.codegen('bonobo', local_load_types=['bonobo-arg-types.py'],
+                    local_register=['../gnome/gnome-types.defs',
+                                    '../gnomecanvas/canvas.defs',
+                                    'bonobo-types.defs'],
+                    register=[os.path.join(env['PYGTK_DEFSDIR'], 'pango-types.defs'),
+                              os.path.join(env['PYGTK_DEFSDIR'], 'gdk-types.defs'),
+                              os.path.join(env['PYGTK_DEFSDIR'], 'gtk-types.defs')])
+
         pyext = bld.create_pyext()
         pyext.source = 'bonobomodule.c bonobo.c bonobo-arg.c pybonobo.c'
         pyext.target = '_bonobo'
         pyext.uselib = 'BONOBO'
         pyext.includes = '.'
-        pyext.inst_var = 'PYTHONDIR'
-        pyext.inst_dir = os.path.join('gtk-2.0', 'bonobo')
+        pyext.install_path = '${PYTHONDIR}/gtk-2.0/bonobo'
 
-        defsdir = Common.install_files('DATADIR', os.path.join('pygtk', '2.0', 'defs'),
-                                       ['bonobo.defs',
-                                        'bonobo-types.defs',
-                                        ])
+        defsdir = bld.install_files('${DATADIR}/pygtk/2.0/defs',
+                                    ['bonobo.defs',
+                                     'bonobo-types.defs',
+                                     ])
 
         pyext = bld.create_pyext()
         pyext.source = 'activationmodule.c'
         pyext.target = 'activation'
         pyext.uselib = 'BONOBO'
         pyext.includes = '.'
-        pyext.inst_var = 'PYTHONDIR'
-        pyext.inst_dir = os.path.join('gtk-2.0', 'bonobo')
+        pyext.install_path = '${PYTHONDIR}/gtk-2.0/bonobo'
 
     
-    if 'bonobo.ui' in bld.env()['MODULES_TO_BUILD']:
-        codegen(bld, 'bonoboui')
+    if 'bonobo.ui' in bld.env['MODULES_TO_BUILD']:
+        bld.codegen('bonoboui', local_load_types=['bonobo-arg-types.py'],
+                    local_register=['../gnome/gnome-types.defs',
+                                    '../gnomecanvas/canvas.defs',
+                                    'bonobo-types.defs'],
+                    register=[os.path.join(env['PYGTK_DEFSDIR'], 'pango-types.defs'),
+                              os.path.join(env['PYGTK_DEFSDIR'], 'gdk-types.defs'),
+                              os.path.join(env['PYGTK_DEFSDIR'], 'gtk-types.defs')])
 
         pyext = bld.create_pyext()
         pyext.source = 'bonobouimodule.c bonoboui.c'
         pyext.target = 'ui'
         pyext.uselib = 'BONOBOUI'
         pyext.includes = '.'
-        pyext.inst_var = 'PYTHONDIR'
-        pyext.inst_dir = os.path.join('gtk-2.0', 'bonobo')
+        pyext.install_path = '${PYTHONDIR}/gtk-2.0/bonobo'
 
-        defsdir = Common.install_files('DATADIR', os.path.join('pygtk', '2.0', 'defs'),
-                                       ['bonoboui.defs',
-                                        'bonoboui-types.defs',
-                                        ])
+        defsdir = bld.install_files('${DATADIR}/pygtk/2.0/defs',
+                                    ['bonoboui.defs',
+                                     'bonoboui-types.defs',
+                                     ])
 
-    Common.install_files('DATADIR', os.path.join('pygtk', '2.0', 'argtypes'),
-                         'bonobo-arg-types.py')
+    bld.install_files('${DATADIR}/pygtk/2.0/argtypes', 'bonobo-arg-types.py')

Modified: trunk/docs/gnomevfs/wscript
==============================================================================
--- trunk/docs/gnomevfs/wscript	(original)
+++ trunk/docs/gnomevfs/wscript	Sat Jan  3 22:52:59 2009
@@ -1,46 +1,40 @@
 # -*- python -*-
 import os
-import Common
 import glob
 
 def configure(conf):
     conf.find_program('xsltproc', var='XSLTPROC')
 
 def build(bld):
+    env = bld.env
     reference_doc_name = 'pygnomevfs'
 
-    d = bld.m_curdirnode.find_dir('html').abspath()
-    if bld.env()['XSLTPROC'] and not os.path.exists(os.path.join(d, 'index.html')):
+    d = bld.path.find_dir('html').abspath()
+    if env['XSLTPROC'] and not os.path.exists(os.path.join(d, 'index.html')):
         doc_module = 'pygnomevfs'
-        html_dir = os.path.join(bld.env()['DATADIR'], 'gtk-doc', 'html')
+        html_dir = os.path.join(bld.env['DATADIR'], 'gtk-doc', 'html')
         target_dir = os.path.join('html_dir', reference_doc_name)
 
         reference_main_file = 'gnomevfs-classes.xml'
 
-        cmd = bld.create_obj('command-output')
-        cmd.hidden_outputs = ['html/index.html']
-        cmd.command = bld.env()['XSLTPROC']
-        cmd.command_is_external = True
-        cmd.argv = ['--nonet', '--xinclude',
-                    '-o', cmd.output_dir('html', template='%s/'),
-                    '--stringparam', 'gtkdoc.bookname', reference_doc_name,
-                    '--stringparam', 'gtkdoc.version', bld.env()['VERSION'],
-                    '--stringparam', 'chunker.output.encoding', 'UTF-8',
-                    cmd.input_file('../ref-html-style.xsl'),
-                    cmd.input_file(reference_main_file),
-                    ]
-        cmd.prio = 100
-
-        cmd = bld.create_obj('command-output')
-        cmd.prio = 110
-        cmd.hidden_inputs = ['html/index.html']
-        cmd.hidden_outputs = ['html/gnomevfs-class-reference.html']
-        cmd.command = 'gtkdoc-fixxref'
-        cmd.command_is_external = True
-        cmd.argv = [cmd.input_dir('html', template='--module-dir=%s'),
-                    ('--html-dir=%s' % html_dir)]
-
-    html_files = glob.glob(os.path.join(bld.m_curdirnode.find_dir('html').abspath(bld.env()), '*'))
-    html_files += glob.glob(os.path.join(bld.m_curdirnode.find_dir('html').abspath(), '*'))
-    Common.install_files('DATADIR', os.path.join('gtk-doc', 'html', reference_doc_name),
-                         html_files)
+        cmd = bld.new_task_gen('command',
+                               target='html/index.html',
+                               source='../ref-html-style.xsl gnomevfs-classes.xml',
+                               command=(
+                '${XSLTPROC} --nonet --xinclude -o ${TGT[0].parent}/'
+                ' --stringparam gtkdoc.bookname pygnomevfs'
+                ' --stringparam gtkdoc.version ${VERSION}'
+                ' --stringparam chunker.output.encoding UTF-8'
+                ' ${SRC[0]} ${SRC[1]}'))
+
+        cmd = bld.new_task_gen('command',
+                               target='html/gnomevfs-class-reference.html',
+                               source='html/index.html',
+                               command='gtkdoc-fixxref --module-dir=${TGT[0].parent} --html-dir=${HTMLDIR}',
+                               variables=dict(HTMLDIR=html_dir))
+
+    # install html files from either the build dir or the source dir, whichever is found
+    html_files = glob.glob(os.path.join(bld.path.find_dir('html').abspath(env), '*'))
+    html_files += glob.glob(os.path.join(bld.path.find_dir('html').abspath(), '*'))
+    bld.install_files('${DATADIR}/gtk-doc/html/%s' % reference_doc_name,
+                      html_files)

Modified: trunk/gconf/wscript
==============================================================================
--- trunk/gconf/wscript	(original)
+++ trunk/gconf/wscript	Sat Jan  3 22:52:59 2009
@@ -2,46 +2,28 @@
 # encoding: utf-8
 
 import os
-import Common
 
 def configure(conf):
     conf.env.append_value('MODULES_AVAILABLE', 'gconf')
     if 'gconf' in conf.env['ENABLE_MODULES'] or 'all' in conf.env['ENABLE_MODULES']:
-        if conf.check_pkg('gconf-2.0 >= 2.12 pygobject-2.0',
-                          destvar='GCONF', mandatory=False):
+        if conf.pkg_check_modules('GCONF', 'gconf-2.0 >= 2.12 pygobject-2.0',
+                                  mandatory=False):
             conf.env.append_value('MODULES_TO_BUILD', 'gconf')
 
 
-def codegen(bld, module):
-    cmd = bld.create_obj('command-output')
-    cmd.command = bld.env()['CODEGEN']
-    cmd.command_is_external = True
-    cmd.prio = 5
-    cmd.argv = [
-        '--py_ssize_t-clean',
-        '--load-types', cmd.input_file('gconf-arg-types.py'),
-        '--prefix', 'py'+module,
-        '--override', cmd.input_file("%s.override" % module),
-        cmd.input_file("%s.defs" % module),
-        ]
-    cmd.stdout = '%s.c' % module
-    return cmd
-
-
 def build(bld):
     
-    if 'gconf' in bld.env()['MODULES_TO_BUILD']:
-        codegen(bld, 'gconf')
+    if 'gconf' in bld.env['MODULES_TO_BUILD']:
+        bld.codegen('gconf', local_load_types=['gconf-arg-types.py'])
         pyext = bld.create_pyext()
         pyext.source = 'gconfmodule.c gconf.c gconf-fixes.c gconf-types.c'
         pyext.target = 'gconf'
         pyext.uselib = 'GCONF'
         pyext.includes = '.'
-        pyext.inst_var = 'PYTHONDIR'
-        pyext.inst_dir = 'gtk-2.0'
+        pyext.install_path = '${PYTHONDIR}/gtk-2.0'
 
-        Common.install_files('DATADIR', os.path.join('pygtk', '2.0', 'defs'),
-                             ['gconf.defs'])
+        bld.install_files('${DATADIR}/pygtk/2.0/defs',
+                          ['gconf.defs'])
 
-        Common.install_files('DATADIR', os.path.join('pygtk', '2.0', 'argtypes'),
-                             'gconf-arg-types.py')
+        bld.install_files('${DATADIR}/pygtk/2.0/argtypes',
+                          'gconf-arg-types.py')

Modified: trunk/gnome/wscript
==============================================================================
--- trunk/gnome/wscript	(original)
+++ trunk/gnome/wscript	Sat Jan  3 22:52:59 2009
@@ -2,76 +2,67 @@
 # encoding: utf-8
 
 import os
-import Common
 
 def configure(conf):
     conf.env.append_value('MODULES_AVAILABLE', 'gnome')
     conf.env.append_value('MODULES_AVAILABLE', 'gnome.ui')
+
     if 'gnome' in conf.env['ENABLE_MODULES'] or 'all' in conf.env['ENABLE_MODULES']:
-        if conf.check_pkg('libgnome-2.0 >= 2.8.0 pygobject-2.0',
-                          destvar='GNOME', mandatory=False):
+        if conf.pkg_check_modules('GNOME',
+                                  'libgnome-2.0 >= 2.8.0 pygobject-2.0',
+                                  mandatory=False):
             conf.env.append_value('MODULES_TO_BUILD', 'gnome')
 
     if 'gnome.ui' in conf.env['ENABLE_MODULES'] or 'all' in conf.env['ENABLE_MODULES']:
-        if conf.check_pkg('libgnomeui-2.0 >= 2.8.0 pygobject-2.0',
-                          destvar='GNOMEUI', mandatory=False):
+        if conf.pkg_check_modules('GNOMEUI',
+                                  'libgnomeui-2.0 >= 2.8.0 pygobject-2.0',
+                                  mandatory=False):
             conf.env.append_value('MODULES_TO_BUILD', 'gnome.ui')
 
-def codegen(bld, module):
-    cmd = bld.create_obj('command-output')
-    cmd.command = bld.env()['CODEGEN']
-    cmd.command_is_external = True
-    cmd.prio = 5
-    cmd.argv = [
-        '--py_ssize_t-clean',
-        '--load-types', cmd.input_file('../bonobo/bonobo-arg-types.py'),
-        '--register', os.path.join(cmd.env['PYGTK_DEFSDIR'], 'pango-types.defs'),
-        '--register', os.path.join(cmd.env['PYGTK_DEFSDIR'], 'gdk-types.defs'),
-        '--register', os.path.join(cmd.env['PYGTK_DEFSDIR'], 'gtk-types.defs'),
-        '--register', cmd.input_file('../bonobo/bonobo-types.defs'),
-        '--register', cmd.input_file('../bonobo/bonoboui-types.defs'),
-        '--prefix', 'py'+module,
-        '--override', cmd.input_file("%s.override" % module),
-        cmd.input_file("%s.defs" % module),
-        ]
-    cmd.stdout = '%s.c' % module
-    return cmd
-
-
 def build(bld):
+    env = bld.env
     
-    if 'gnome' in bld.env()['MODULES_TO_BUILD']:
-        py = bld.create_obj('py')
-        py.inst_dir = os.path.join('gtk-2.0', 'gnome')
+    if 'gnome' in bld.env['MODULES_TO_BUILD']:
+        py = bld.new_task_gen('py')
+        py.install_path = '${PYTHONDIR}/gtk-2.0/gnome'
         py.source = "__init__.py canvas.py vfs.py"
 
-        codegen(bld, 'gnome')
+        bld.codegen('gnome', local_load_types=['../bonobo/bonobo-arg-types.py'],
+                    local_register=['gnome-types.defs',
+                                    '../gnomecanvas/canvas.defs',
+                                    '../bonobo/bonobo-types.defs'],
+                    register=[os.path.join(env['PYGTK_DEFSDIR'], 'pango-types.defs'),
+                              os.path.join(env['PYGTK_DEFSDIR'], 'gdk-types.defs'),
+                              os.path.join(env['PYGTK_DEFSDIR'], 'gtk-types.defs')],
+                    prefix='pygnome')
 
         pyext = bld.create_pyext()
         pyext.source = 'gnomemodule.c gnome.c'
         pyext.target = '_gnome'
         pyext.uselib = 'GNOME'
-        pyext.inst_var = 'PYTHONDIR'
-        pyext.inst_dir = os.path.join('gtk-2.0', 'gnome')
+        pyext.install_path = '${PYTHONDIR}/gtk-2.0/gnome'
 
-        defsdir = Common.install_files('DATADIR', os.path.join('pygtk', '2.0', 'defs'),
-                                       ['gnome.defs',
-                                        'gnome-types.defs',
-                                        ])
+        bld.install_files('${DATADIR}/pygtk/2.0/defs',
+                          ['gnome.defs',
+                           'gnome-types.defs',
+                           ])
 
     
-    if 'gnome.ui' in bld.env()['MODULES_TO_BUILD']:
-        codegen(bld, 'ui')
+    if 'gnome.ui' in bld.env['MODULES_TO_BUILD']:
+        bld.codegen('ui', local_load_types=['../bonobo/bonobo-arg-types.py'],
+                    local_register=['gnome-types.defs',
+                                    '../gnomecanvas/canvas.defs',
+                                    '../bonobo/bonobo-types.defs'],
+                    register=[os.path.join(env['PYGTK_DEFSDIR'], 'pango-types.defs'),
+                              os.path.join(env['PYGTK_DEFSDIR'], 'gdk-types.defs'),
+                              os.path.join(env['PYGTK_DEFSDIR'], 'gtk-types.defs')],
+                    prefix='pyui')
 
         pyext = bld.create_pyext()
         pyext.source = 'uimodule.c ui.c'
         pyext.target = 'ui'
         pyext.uselib = 'GNOMEUI'
         pyext.includes = '. ../gnomevfs'
-        pyext.inst_var = 'PYTHONDIR'
-        pyext.inst_dir = os.path.join('gtk-2.0', 'gnome')
+        pyext.install_path = '${PYTHONDIR}/gtk-2.0/gnome'
 
-    
-        defsdir = Common.install_files('DATADIR', os.path.join('pygtk', '2.0', 'defs'),
-                                       ['ui.defs',
-                                        ])
+        bld.install_files('${DATADIR}/pygtk/2.0/defs', 'ui.defs')

Modified: trunk/gnomecanvas/wscript
==============================================================================
--- trunk/gnomecanvas/wscript	(original)
+++ trunk/gnomecanvas/wscript	Sat Jan  3 22:52:59 2009
@@ -2,49 +2,33 @@
 # encoding: utf-8
 
 import os
-import Common
 
 def configure(conf):
     conf.env.append_value('MODULES_AVAILABLE', 'gnomecanvas')
     
     if 'gnomecanvas' in conf.env['ENABLE_MODULES'] or 'all' in conf.env['ENABLE_MODULES']:
-        if conf.check_pkg('libgnomecanvas-2.0 >= 2.8.0 pygobject-2.0 ',
-                          destvar='GNOMECANVAS', mandatory=False):
+        if conf.pkg_check_modules('GNOMECANVAS', 'libgnomecanvas-2.0 >= 2.8.0 pygobject-2.0 ',
+                                  mandatory=False):
             conf.env.append_value('MODULES_TO_BUILD', 'gnomecanvas')
 
 
-def codegen(bld, module):
-    cmd = bld.create_obj('command-output')
-    cmd.command = bld.env()['CODEGEN']
-    cmd.command_is_external = True
-    cmd.prio = 5
-    cmd.argv = [
-        '--py_ssize_t-clean',
-        '--load-types', cmd.input_file('../bonobo/bonobo-arg-types.py'),
-        '--register', os.path.join(cmd.env['PYGTK_DEFSDIR'], 'pango-types.defs'),
-        '--register', os.path.join(cmd.env['PYGTK_DEFSDIR'], 'gdk-types.defs'),
-        '--register', os.path.join(cmd.env['PYGTK_DEFSDIR'], 'gtk-types.defs'),
-        '--register', cmd.input_file('../bonobo/bonobo-types.defs'),
-        '--register', cmd.input_file('../bonobo/bonoboui-types.defs'),
-        '--prefix', 'py'+module,
-        '--override', cmd.input_file("%s.override" % module),
-        cmd.input_file("%s.defs" % module),
-        ]
-    cmd.stdout = '%s.c' % module
-    return cmd
-
-
 def build(bld):
-    
-    if 'gnomecanvas' in bld.env()['MODULES_TO_BUILD']:
-        codegen(bld, 'canvas')
+    env = bld.env
+    if 'gnomecanvas' in env['MODULES_TO_BUILD']:
+        bld.codegen('canvas', local_load_types=['../bonobo/bonobo-arg-types.py'],
+                    local_register=['../gnome/gnome-types.defs',
+                                    'canvas.defs',
+                                    '../bonobo/bonobo-types.defs'],
+                    register=[os.path.join(env['PYGTK_DEFSDIR'], 'pango-types.defs'),
+                              os.path.join(env['PYGTK_DEFSDIR'], 'gdk-types.defs'),
+                              os.path.join(env['PYGTK_DEFSDIR'], 'gtk-types.defs')])
+
         pyext = bld.create_pyext()
         pyext.source = 'canvasmodule.c canvas.c'
         pyext.target = 'gnomecanvas'
         pyext.uselib = 'GNOMECANVAS'
-        pyext.inst_var = 'PYTHONDIR'
-        pyext.inst_dir = 'gtk-2.0'
+        pyext.install_path = '${PYTHONDIR}/gtk-2.0'
 
-        defsdir = Common.install_files('DATADIR', os.path.join('pygtk', '2.0', 'defs'),
-                                       ['canvas.defs'])
+        bld.install_files('${DATADIR}/pygtk/2.0/defs',
+                          ['canvas.defs'])
 

Modified: trunk/gnomevfs/wscript
==============================================================================
--- trunk/gnomevfs/wscript	(original)
+++ trunk/gnomevfs/wscript	Sat Jan  3 22:52:59 2009
@@ -2,7 +2,6 @@
 # encoding: utf-8
 
 import os
-import Common
 
 def configure(conf):
     conf.env.append_value('MODULES_AVAILABLE', 'gnomevfs')
@@ -10,30 +9,29 @@
     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):
+        if conf.pkg_check_modules('GNOMEVFS', 'gnome-vfs-2.0 >= 2.14 pygobject-2.0',
+                                  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):
+        if conf.pkg_check_modules('GNOMEVFSBONOBO', 'gnome-vfs-2.0 >= 2.14 bonobo-activation-2.0 >= 2.8.0'
+                                  ' pyorbit-2 >= 2.0.1 pygobject-2.0',
+                                  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):
+        if conf.pkg_check_modules('GNOMEVFSMODULE', 'gnome-vfs-module-2.0 >= 2.14 bonobo-activation-2.0 >= 2.8.0'
+                                  ' pyorbit-2 >= 2.0.1 pygobject-2.0',
+                                  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
+    if 'gnomevfs' in bld.env['MODULES_TO_BUILD']:
+        vfsdir = '${PYTHONDIR}/gtk-2.0/gnomevfs'
+        py = bld.new_task_gen('py')
+        py.install_path = vfsdir
         py.source = "__init__.py"
 
         pyext = bld.create_pyext()
@@ -45,30 +43,27 @@
         pyext.target = '_gnomevfs'
         pyext.uselib = 'GNOMEVFS'
         pyext.includes = '.'
-        pyext.inst_var = 'PYTHONDIR'
-        pyext.inst_dir = vfsdir
+        pyext.install_path = vfsdir
 
-    if 'gnomevfs.bonobo' in bld.env()['MODULES_TO_BUILD']:
+    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
+        pyext.install_path = vfsdir
 
-    if 'gnomevfs.module' in bld.env()['MODULES_TO_BUILD']:
-        pyembed = bld.create_obj('cc', 'shlib', 'pyembed')
+    if 'gnomevfs.module' in bld.env['MODULES_TO_BUILD']:
+        pyembed = bld.new_task_gen('cc', 'shlib', 'pyembed')
         pyembed.mac_bundle = True
         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')
+        pyembed.install_path = '${LIBDIR}/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'])
+    bld.install_files('${PREFIX}/include/gnome-python-2.0',
+                      ['pygnomevfs.h', 'pygnomevfsbonobo.h'])

Modified: trunk/wscript
==============================================================================
--- trunk/wscript	(original)
+++ trunk/wscript	Sat Jan  3 22:52:59 2009
@@ -1,7 +1,9 @@
 # -*- python -*-
 
-import Params
-Params.g_autoconfig = True
+import Options
+Options.autoconfig = True
+
+import Build
 
 VERSION = '2.22.3'
 APPNAME = 'gnome-python'
@@ -37,6 +39,8 @@
     conf.check_tool('compiler_cc')
     conf.check_tool('gnome')
     conf.check_tool('python')
+    conf.check_tool('command')
+    conf.check_tool('pkgconfig')
 
     if sys.platform == 'darwin':
         conf.check_tool('osx')
@@ -56,9 +60,8 @@
     conf.define('PYGTK_REQUIRED_MINOR_VERSION', pygtk_version[1])
     conf.define('PYGTK_REQUIRED_MICRO_VERSION', pygtk_version[2])
 
-    values = conf.check_pkg('pygtk-2.0', destvar='PYGTK', vnum='.'.join([str(x) for x in pygtk_version]),
-                            pkgvars=['defsdir'], mandatory=True)
-    conf.env['PYGTK_DEFSDIR'] = values['PYGTK_DEFSDIR']
+    conf.pkg_check_modules('PYGTK', 'pygtk-2.0 >= %s' % ('.'.join([str(x) for x in pygtk_version]),))
+    conf.env['PYGTK_DEFSDIR'] = conf.pkg_check_module_variable('pygtk-2.0', 'defsdir')
 
     if not conf.find_program('pygobject-codegen-2.0', var='CODEGEN'):
         if not conf.find_program('pygtk-codegen-2.0', var='CODEGEN'):
@@ -66,7 +69,7 @@
 
     conf.env.append_value('CCDEFINES', 'HAVE_CONFIG_H')
 
-    conf.env['ENABLE_MODULES'] = Params.g_options.enable_modules.split(',')
+    conf.env['ENABLE_MODULES'] = Options.options.enable_modules.split(',')
     
     conf.sub_config('bonobo')
     conf.sub_config('gnome')
@@ -79,7 +82,7 @@
         if module == 'all':
             continue
         if module not in conf.env['MODULES_AVAILABLE']:
-            Params.warning("Requested module %r is not available in this source tree." % module)
+            Logs.warn("Requested module %r is not available in this source tree." % module)
     if conf.env['MODULES_TO_BUILD']:
         print "** The following modules will be built:"
         for m in conf.env['MODULES_TO_BUILD']:
@@ -94,35 +97,63 @@
             print "\t%s" % m
 
     conf.write_config_header('config.h')
+    
 
 
-def build(bld):
-    ## cater for WAF API change between 1.3 and 1.4
-    waf_version = [int (s) for s in Params.g_version.split('.')]
-    if waf_version >= [1,4]:
-        def create_pyext(bld):
-            return bld.create_obj('cc', 'shlib', 'pyext')
+def codegen(bld, module, local_load_types=(), register=(), local_register=(), prefix=None):
+    cmd = bld.new_task_gen('command',
+                           source=['%s.defs' % module, '%s.override' % module],
+                           target=['%s.c' % module])
+    cmd.command = ['${CODEGEN}']
+    cmd.command.append('--py_ssize_t-clean')
+    
+    for load in local_load_types:
+        cmd.source.append(load)
+        cmd.command.extend(['--load-types', '${SRC[%i]}' % (len(cmd.source)-1)])
+    
+    for reg in local_register:
+        cmd.source.append(reg)
+        cmd.command.extend(['--register', '${SRC[%i]}' % (len(cmd.source)-1)])
+
+    for reg in register:
+        cmd.command.extend(['--register', reg])
+
+    if prefix:
+        cmd.command.extend(['--prefix', prefix])
     else:
-        def create_pyext(bld):
-            return bld.create_obj('cc', 'plugin', 'pyext')
+        cmd.command.extend(['--prefix', 'py'+module])
+
+    cmd.command.extend(['--override', "${SRC[1]}",
+                        '${SRC[0]}',
+                        '>', '${TGT[0]}'])
+
+    return cmd
+
+
+def build(bld):
+
+    # Attach the 'codegen' method to the build context
+    bld.codegen = types.MethodType(codegen, bld)
+
+    def create_pyext(bld):
+        return bld.new_task_gen('cc', 'shlib', 'pyext')
     bld.create_pyext = types.MethodType(create_pyext, bld)
 
     ## generate and install the .pc file
-    obj=bld.create_obj('subst')
+    obj = bld.new_task_gen('subst')
     obj.source = 'gnome-python-2.0.pc.in'
     obj.target = 'gnome-python-2.0.pc'
     obj.dict = {
         'VERSION': VERSION,
-        'prefix': bld.env()['PREFIX'],
-        'exec_prefix': bld.env()['PREFIX'],
-        'libdir': bld.env()['LIBDIR'],
-        'includedir': os.path.join(bld.env()['PREFIX'], 'include'),
-        'datadir': bld.env()['DATADIR'],
-        'datarootdir': bld.env()['DATADIR'],
+        'prefix': bld.env['PREFIX'],
+        'exec_prefix': bld.env['PREFIX'],
+        'libdir': bld.env['LIBDIR'],
+        'includedir': os.path.join(bld.env['PREFIX'], 'include'),
+        'datadir': bld.env['DATADIR'],
+        'datarootdir': bld.env['DATADIR'],
         }
     obj.fun = misc.subst_func
-    obj.inst_var = 'LIBDIR'
-    obj.inst_dir = 'pkgconfig'
+    obj.install_path = '${LIBDIR}/pkgconfig'
 
     ## subdirs
     bld.add_subdirs('bonobo')
@@ -134,9 +165,8 @@
 
 
 def shutdown():
-    env = Params.g_build.env_of_name('default')
-
-    if Params.g_commands['check']:
+    env = Build.bld.env
+    if Options.commands['check']:
         _run_tests(env)
 
 



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]