[ekg2-commit] r4258 - trunk: trunk/SConstruct
SVN commit
svn w toxygen.net
Sob, 9 Sie 2008, 21:33:55 CEST
Author: peres
Date: 2008-08-09 21:33:54 +0200 (Sat, 09 Aug 2008)
New Revision: 4258
Modified:
trunk/SConstruct
Log:
Pass 'libs' to plugin build, support optional depends.
Modified: trunk/SConstruct
===================================================================
--- trunk/SConstruct 2008-08-09 19:22:33 UTC (rev 4257)
+++ trunk/SConstruct 2008-08-09 19:33:54 UTC (rev 4258)
@@ -118,12 +118,12 @@
plugins_state = plugin_states.index(st)
plugins.extend(avplugins)
-plugins = {}.fromkeys(plugins).keys() # uniq()
plugins.sort()
+plugins = {}.fromkeys(plugins)
pl = {}
-for plugin in list(plugins):
+for plugin in list(plugins.keys()):
plugpath = 'plugins/%s' % (plugin)
info = SConscript('%s/SConscript' % (plugpath))
if not info:
@@ -133,21 +133,30 @@
if not k in info:
info[k] = plugin_def[k]
if plugin_states.index(info['state']) < plugins_state:
- plugins.remove(plugin)
+ del plugins[plugin]
continue
if 'nocompile' in info:
- plugins.remove(plugin)
+ del plugins[plugin]
print '[%s] Disabling due to build system incompatibility (probably junk in srcdir).' % (plugin)
continue
+
+ libs = []
for dep in info['depends']:
- if not ExtTest(dep):
- plugins.remove(plugin)
+ if not ExtTest(dep, ['libs']):
print '[%s] Dependency not satisfied: %s' % (plugin, dep)
info['fail'] = True
if 'fail' in info:
+ del plugins[plugin]
continue
+ for dep in info['optdepends']:
+ if not ExtTest(dep, ['libs']):
+ print '[%s] Optional dependency not satisfied: %s' % (plugin, dep)
+ plugins[plugin] = {
+ 'libs': libs
+ }
+
type = info['type']
if not pl.has_key(type):
pl[type] = []
@@ -164,9 +173,9 @@
env.Program('ekg/ekg2', Glob('ekg/*.c'), LIBS = ekg_libs, LIBPATH = './compat')
-for plugin in plugins:
+for plugin, data in plugins.items():
plugpath = 'plugins/%s' % (plugin)
Mkdir('%s/.libs' % (plugin))
- env.SharedLibrary('%s/.libs/%s' % (plugpath, plugin), Glob('%s/*.c' % (plugpath)), LIBPREFIX = '', LIBS = [])
+ env.SharedLibrary('%s/.libs/%s' % (plugpath, plugin), Glob('%s/*.c' % (plugpath)), LIBPREFIX = '', LIBS = data['libs'])
# vim:ts=4:sts=4:syntax=python
Więcej informacji o liście dyskusyjnej ekg2-commit