[jhbuild] get configuration values at runtime, not on object build time
- From: Frederic Peters <fpeters src gnome org>
- To: svn-commits-list gnome org
- Subject: [jhbuild] get configuration values at runtime, not on object build time
- Date: Sun, 3 May 2009 08:28:26 -0400 (EDT)
commit e928393814ee87ba13bbfa331c3d09d23423a01d
Author: Frederic Peters <fpeters 0d be>
Date: Sun May 3 14:27:22 2009 +0200
get configuration values at runtime, not on object build time
Updated module types to use build variables (autogenargs, makeargs,
extra_env) straight from the config object, instead of statically
constructing their values when constructing objects from the module
sets XML.
---
jhbuild/modtypes/__init__.py | 8 +++++---
jhbuild/modtypes/autotools.py | 40 ++++++++++++----------------------------
jhbuild/modtypes/cmake.py | 8 +++-----
jhbuild/modtypes/distutils.py | 8 +++-----
jhbuild/modtypes/linux.py | 22 +++++++++++-----------
jhbuild/modtypes/perl.py | 14 ++++++--------
jhbuild/modtypes/tarball.py | 7 +------
7 files changed, 41 insertions(+), 66 deletions(-)
diff --git a/jhbuild/modtypes/__init__.py b/jhbuild/modtypes/__init__.py
index 69401ac..664545d 100644
--- a/jhbuild/modtypes/__init__.py
+++ b/jhbuild/modtypes/__init__.py
@@ -127,19 +127,21 @@ class Package:
type = 'base'
STATE_START = 'start'
STATE_DONE = 'done'
- def __init__(self, name, dependencies = [], after = [], suggests = [],
- extra_env = None):
+ def __init__(self, name, dependencies = [], after = [], suggests = []):
self.name = name
self.dependencies = dependencies
self.after = after
self.suggests = suggests
self.tags = []
self.moduleset_name = None
- self.extra_env = extra_env
def __repr__(self):
return "<%s '%s'>" % (self.__class__.__name__, self.name)
+ def get_extra_env(self):
+ return self.config.module_extra_env.get(self.name)
+ extra_env = property(get_extra_env)
+
def get_srcdir(self, buildscript):
raise NotImplementedError
def get_builddir(self, buildscript):
diff --git a/jhbuild/modtypes/autotools.py b/jhbuild/modtypes/autotools.py
index 4cfee31..1e30101 100644
--- a/jhbuild/modtypes/autotools.py
+++ b/jhbuild/modtypes/autotools.py
@@ -54,10 +54,9 @@ class AutogenModule(Package):
skip_autogen=False,
autogen_sh='autogen.sh',
makefile='Makefile',
- extra_env = None,
autogen_template=None,
check_target=True):
- Package.__init__(self, name, dependencies, after, suggests, extra_env)
+ Package.__init__(self, name, dependencies, after, suggests)
self.branch = branch
self.autogenargs = autogenargs
self.makeargs = makeargs
@@ -153,9 +152,12 @@ class AutogenModule(Package):
template = ("%(srcdir)s/%(autogen-sh)s --prefix %(prefix)s"
" --libdir %(libdir)s %(autogenargs)s ")
+ autogenargs = self.autogenargs + ' ' + self.config.module_autogenargs.get(
+ self.name, self.config.autogenargs)
+
vars = {'prefix': buildscript.config.prefix,
'autogen-sh': self.autogen_sh,
- 'autogenargs': self.autogenargs}
+ 'autogenargs': autogenargs}
if buildscript.config.buildroot and self.supports_non_srcdir_builds:
vars['srcdir'] = self.get_srcdir(buildscript)
@@ -188,7 +190,7 @@ class AutogenModule(Package):
else:
# place --prefix and --libdir arguments after '-- '
# (GStreamer weirdness)
- if self.autogenargs.find('-- ') != -1:
+ if autogenargs.find('-- ') != -1:
p = re.compile('(.*)(--prefix %s )((?:--libdir %s )?)(.*)-- ' %
(buildscript.config.prefix, "'\${exec_prefix}/lib64'"))
cmd = p.sub(r'\1\4-- \2\3', cmd)
@@ -211,7 +213,9 @@ class AutogenModule(Package):
def do_clean(self, buildscript):
buildscript.set_action(_('Cleaning'), self)
- cmd = '%s %s clean' % (os.environ.get('MAKE', 'make'), self.makeargs)
+ makeargs = self.makeargs + ' ' + self.config.module_makeargs(
+ self.name, self.config.makeargs)
+ cmd = '%s %s clean' % (os.environ.get('MAKE', 'make'), makeargs)
buildscript.execute(cmd, cwd = self.get_builddir(buildscript),
extra_env = self.extra_env)
do_clean.next_state = STATE_BUILD
@@ -366,10 +370,6 @@ def parse_autotools(node, config, uri, repositories, default_repo):
makeargs = p.sub(config.prefix + libsubdir, makeargs)
makeinstallargs = p.sub(config.prefix + libsubdir, makeinstallargs)
- autogenargs += ' ' + config.module_autogenargs.get(id, config.autogenargs)
- makeargs += ' ' + config.module_makeargs.get(id, config.makeargs)
- extra_env = config.module_extra_env.get(id)
-
dependencies, after, suggests = get_dependencies(node)
branch = get_branch(node, repositories, default_repo, config)
if config.module_checkout_mode.get(id):
@@ -384,7 +384,6 @@ def parse_autotools(node, config, uri, repositories, default_repo):
skip_autogen=skip_autogen,
autogen_sh=autogen_sh,
makefile=makefile,
- extra_env=extra_env,
autogen_template=autogen_template,
check_target=check_target)
register_module_type('autotools', parse_autotools)
@@ -416,10 +415,6 @@ def parse_cvsmodule(node, config, uri, repositories, default_repo):
if not id:
id = checkoutdir or module
- autogenargs += ' ' + config.module_autogenargs.get(id, config.autogenargs)
- makeargs += ' ' + config.module_makeargs.get(id, config.makeargs)
- extra_env = config.module_extra_env.get(id)
-
dependencies, after, suggests = get_dependencies(node)
for attrname in ['cvsroot', 'root']:
@@ -440,8 +435,7 @@ def parse_cvsmodule(node, config, uri, repositories, default_repo):
return AutogenModule(id, branch, autogenargs, makeargs,
dependencies=dependencies,
after=after, suggests=suggests,
- supports_non_srcdir_builds=supports_non_srcdir_builds,
- extra_env=extra_env)
+ supports_non_srcdir_builds=supports_non_srcdir_builds)
register_module_type('cvsmodule', parse_cvsmodule)
def parse_svnmodule(node, config, uri, repositories, default_repo):
@@ -466,10 +460,6 @@ def parse_svnmodule(node, config, uri, repositories, default_repo):
if not id:
id = checkoutdir or os.path.basename(module)
- autogenargs += ' ' + config.module_autogenargs.get(id, config.autogenargs)
- makeargs += ' ' + config.module_makeargs.get(id, config.makeargs)
- extra_env = config.module_extra_env.get(id)
-
dependencies, after, suggests = get_dependencies(node)
if node.hasAttribute('root'):
@@ -481,8 +471,7 @@ def parse_svnmodule(node, config, uri, repositories, default_repo):
return AutogenModule(id, branch, autogenargs, makeargs,
dependencies=dependencies,
after=after, suggests=suggests,
- supports_non_srcdir_builds=supports_non_srcdir_builds,
- extra_env=extra_env)
+ supports_non_srcdir_builds=supports_non_srcdir_builds)
register_module_type('svnmodule', parse_svnmodule)
def parse_archmodule(node, config, uri, repositories, default_repo):
@@ -507,10 +496,6 @@ def parse_archmodule(node, config, uri, repositories, default_repo):
if not id:
id = checkoutdir or version
- autogenargs += ' ' + config.module_autogenargs.get(id, config.autogenargs)
- makeargs += ' ' + config.module_makeargs.get(id, makeargs)
- extra_env = config.module_extra_env.get(id)
-
dependencies, after, suggests = get_dependencies(node)
if node.hasAttribute('root'):
@@ -522,6 +507,5 @@ def parse_archmodule(node, config, uri, repositories, default_repo):
return AutogenModule(id, branch, autogenargs, makeargs,
dependencies=dependencies,
after=after, suggests=suggests,
- supports_non_srcdir_builds=supports_non_srcdir_builds,
- extra_env=extra_env)
+ supports_non_srcdir_builds=supports_non_srcdir_builds)
register_module_type('archmodule', parse_archmodule)
diff --git a/jhbuild/modtypes/cmake.py b/jhbuild/modtypes/cmake.py
index bcd7d69..d542462 100644
--- a/jhbuild/modtypes/cmake.py
+++ b/jhbuild/modtypes/cmake.py
@@ -38,9 +38,8 @@ class CMakeModule(Package):
STATE_DIST = 'dist'
STATE_INSTALL = 'install'
- def __init__(self, name, branch, dependencies=[], after=[], suggests=[],
- extra_env=None):
- Package.__init__(self, name, dependencies, after, suggests, extra_env)
+ def __init__(self, name, branch, dependencies=[], after=[], suggests=[]):
+ Package.__init__(self, name, dependencies, after, suggests)
self.branch = branch
def get_srcdir(self, buildscript):
@@ -133,14 +132,13 @@ class CMakeModule(Package):
def parse_cmake(node, config, uri, repositories, default_repo):
id = node.getAttribute('id')
dependencies, after, suggests = get_dependencies(node)
- extra_env = config.module_extra_env.get(id)
branch = get_branch(node, repositories, default_repo, config)
if config.module_checkout_mode.get(id):
branch.checkout_mode = config.module_checkout_mode[id]
return CMakeModule(id, branch, dependencies = dependencies, after = after,
- suggests = suggests, extra_env = extra_env)
+ suggests = suggests)
register_module_type('cmake', parse_cmake)
diff --git a/jhbuild/modtypes/distutils.py b/jhbuild/modtypes/distutils.py
index 909bb5f..a853ff6 100644
--- a/jhbuild/modtypes/distutils.py
+++ b/jhbuild/modtypes/distutils.py
@@ -39,8 +39,8 @@ class DistutilsModule(Package):
def __init__(self, name, branch,
dependencies = [], after = [], suggests = [],
- supports_non_srcdir_builds = True, extra_env = None):
- Package.__init__(self, name, dependencies, after, suggests, extra_env)
+ supports_non_srcdir_builds = True):
+ Package.__init__(self, name, dependencies, after, suggests)
self.branch = branch
self.supports_non_srcdir_builds = supports_non_srcdir_builds
@@ -123,7 +123,6 @@ def parse_distutils(node, config, uri, repositories, default_repo):
supports_non_srcdir_builds = \
(node.getAttribute('supports-non-srcdir-builds') != 'no')
dependencies, after, suggests = get_dependencies(node)
- extra_env = config.module_extra_env.get(id)
branch = get_branch(node, repositories, default_repo, config)
if config.module_checkout_mode.get(id):
branch.checkout_mode = config.module_checkout_mode[id]
@@ -131,7 +130,6 @@ def parse_distutils(node, config, uri, repositories, default_repo):
return DistutilsModule(id, branch,
dependencies = dependencies, after = after,
suggests = suggests,
- supports_non_srcdir_builds = supports_non_srcdir_builds,
- extra_env = extra_env)
+ supports_non_srcdir_builds = supports_non_srcdir_builds)
register_module_type('distutils', parse_distutils)
diff --git a/jhbuild/modtypes/linux.py b/jhbuild/modtypes/linux.py
index d6e111d..1f21891 100644
--- a/jhbuild/modtypes/linux.py
+++ b/jhbuild/modtypes/linux.py
@@ -62,8 +62,8 @@ class LinuxModule(Package):
STATE_HEADERS_INSTALL = 'headers_install'
def __init__(self, name, branch, kconfigs, makeargs,
- dependencies, after, suggests, extra_env = None):
- Package.__init__(self, name, dependencies, after, suggests, extra_env)
+ dependencies, after, suggests):
+ Package.__init__(self, name, dependencies, after, suggests)
self.branch = branch
self.kconfigs = kconfigs
self.makeargs = makeargs
@@ -108,12 +108,15 @@ class LinuxModule(Package):
def skip_mrproper(self, buildscript, last_state):
return buildscript.config.nobuild
+ def get_makeargs(self):
+ return self.makeargs + ' ' + self.config.module_makeargs.get(self.name, self.config.makeargs)
+
def do_mrproper(self, buildscript):
buildscript.set_action(_('make mrproper'), self)
for kconfig in self.kconfigs:
cmd = '%s %s mrproper EXTRAVERSION=%s O=%s' % (
os.environ.get('MAKE', 'make'),
- self.makeargs,
+ self.get_makeargs(),
kconfig.version,
'build-' + kconfig.version)
buildscript.execute(cmd, cwd = self.branch.srcdir,
@@ -170,7 +173,7 @@ class LinuxModule(Package):
for kconfig in self.kconfigs:
cmd = '%s %s clean EXTRAVERSION=%s O=%s' % (
os.environ.get('MAKE', 'make'),
- self.makeargs,
+ self.get_makeargs(),
kconfig.version,
'build-' + kconfig.version)
buildscript.execute(cmd, cwd = self.branch.srcdir,
@@ -186,7 +189,7 @@ class LinuxModule(Package):
buildscript.set_action(_('Building'), self)
for kconfig in self.kconfigs:
cmd = '%s %s EXTRAVERSION=%s O=%s' % (os.environ.get('MAKE', 'make'),
- self.makeargs,
+ self.get_makeargs(),
kconfig.version,
'build-' + kconfig.version)
buildscript.execute(cmd, cwd = self.branch.srcdir,
@@ -224,7 +227,7 @@ class LinuxModule(Package):
for kconfig in self.kconfigs:
cmd = '%s %s modules_install EXTRAVERSION=%s O=%s INSTALL_MOD_PATH=%s' % (
os.environ.get('MAKE', 'make'),
- self.makeargs,
+ self.get_makeargs(,
kconfig.version,
'build-' + kconfig.version,
buildscript.config.prefix)
@@ -242,7 +245,7 @@ class LinuxModule(Package):
for kconfig in self.kconfigs:
cmd = '%s %s headers_install EXTRAVERSION=%s O=%s INSTALL_HDR_PATH=%s' % (
os.environ.get('MAKE', 'make'),
- self.makeargs,
+ self.get_makeargs(),
kconfig.version,
'build-' + kconfig.version,
buildscript.config.prefix)
@@ -306,17 +309,14 @@ def parse_linux(node, config, uri, repositories, default_repo):
# Make some substitutions; do special handling of '${prefix}' and '${libdir}'
p = re.compile('(\${prefix})')
makeargs = p.sub(config.prefix, makeargs)
- makeargs += ' ' + config.module_makeargs.get(id, config.makeargs)
dependencies, after, suggests = get_dependencies(node)
- extra_env = config.module_extra_env.get(id)
branch = get_branch(node, repositories, default_repo, config)
if config.module_checkout_mode.get(id):
branch.checkout_mode = config.module_checkout_mode[id]
kconfigs = get_kconfigs(node, repositories, default_repo)
return LinuxModule(id, branch, kconfigs,
- makeargs, dependencies, after, suggests,
- extra_env = extra_env)
+ makeargs, dependencies, after, suggests)
register_module_type('linux', parse_linux)
diff --git a/jhbuild/modtypes/perl.py b/jhbuild/modtypes/perl.py
index ab181b8..8e7ee3d 100644
--- a/jhbuild/modtypes/perl.py
+++ b/jhbuild/modtypes/perl.py
@@ -39,8 +39,8 @@ class PerlModule(Package):
STATE_INSTALL = 'install'
def __init__(self, name, branch, makeargs='',
- dependencies=[], after=[], suggests=[], extra_env = None):
- Package.__init__(self, name, dependencies, after, suggests, extra_env)
+ dependencies=[], after=[], suggests=[]):
+ Package.__init__(self, name, dependencies, after, suggests)
self.branch = branch
self.makeargs = makeargs
@@ -81,7 +81,9 @@ class PerlModule(Package):
builddir = self.get_builddir(buildscript)
perl = os.environ.get('PERL', 'perl')
make = os.environ.get('MAKE', 'make')
- cmd = '%s Makefile.PL INSTALLDIRS=vendor PREFIX=%s %s' % (perl, buildscript.config.prefix, self.makeargs)
+ makeargs = self.makeargs + ' ' + self.config.module_makeargs.get(
+ self.name, self.config.makeargs)
+ cmd = '%s Makefile.PL INSTALLDIRS=vendor PREFIX=%s %s' % (perl, buildscript.config.prefix, makeargs)
buildscript.execute(cmd, cwd=builddir, extra_env = self.extra_env)
buildscript.execute([make, 'LD_RUN_PATH='], cwd=builddir,
extra_env = self.extra_env)
@@ -113,21 +115,17 @@ def parse_perl(node, config, uri, repositories, default_repo):
if node.hasAttribute('makeargs'):
makeargs = node.getAttribute('makeargs')
- # override revision tag if requested.
- makeargs += ' ' + config.module_makeargs.get(id, config.makeargs)
-
# Make some substitutions; do special handling of '${prefix}'
p = re.compile('(\${prefix})')
makeargs = p.sub(config.prefix, makeargs)
dependencies, after, suggests = get_dependencies(node)
- extra_env = config.module_extra_env.get(id)
branch = get_branch(node, repositories, default_repo, config)
if config.module_checkout_mode.get(id):
branch.checkout_mode = config.module_checkout_mode[id]
return PerlModule(id, branch, makeargs,
dependencies=dependencies, after=after,
- suggests=suggests, extra_env = extra_env)
+ suggests=suggests)
register_module_type('perl', parse_perl)
diff --git a/jhbuild/modtypes/tarball.py b/jhbuild/modtypes/tarball.py
index bd0e96b..ca97b07 100644
--- a/jhbuild/modtypes/tarball.py
+++ b/jhbuild/modtypes/tarball.py
@@ -75,15 +75,10 @@ def parse_tarball(node, config, uri, repositories, default_repo):
patchstrip = 0
patches.append((patchfile, patchstrip))
- autogenargs += ' ' + config.module_autogenargs.get(name,
- config.autogenargs)
- makeargs += ' ' + config.module_makeargs.get(name, config.makeargs)
-
# for tarballs, don't ever pass --enable-maintainer-mode
autogenargs = autogenargs.replace('--enable-maintainer-mode', '')
dependencies, after, suggests = get_dependencies(node)
- extra_env = config.module_extra_env.get(id)
from autotools import AutogenModule
from jhbuild.versioncontrol.tarball import TarballBranch, TarballRepository
@@ -101,6 +96,6 @@ def parse_tarball(node, config, uri, repositories, default_repo):
dependencies, after, suggests,
supports_non_srcdir_builds = supports_non_srcdir_builds,
skip_autogen = False, autogen_sh = 'configure',
- makefile = makefile, extra_env = extra_env)
+ makefile = makefile)
register_module_type('tarball', parse_tarball)
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]