+2024-03-04 Collin Funk <collin.funk1@gmail.com>
+
+ gnulib-tool.py: Follow gnulib-tool changes, part 39.
+ Follow gnulib-tool change
+ 2017-12-28 Bruno Haible <bruno@clisp.org>
+ gnulib-tool: Make --conditional-dependencies work better.
+ * pygnulib/GLEmiter.py (GLEmiter.autoconfSnippets): Add argument
+ referenceable_modules. Use referencable_modules for dependencies.
+ * pygnulib/GLImport.py (GLImport.__init__): Don't reject the combination
+ of --conditional-dependencies with --with-tests when mode is 'import'.
+ (GLImport.gnulib_comp): Pass it.
+ * pygnulib/GLTestDir.py (GLTestDir.execute): Pass it.
+
2024-03-04 Bruno Haible <bruno@clisp.org>
doc: Tweak last commit.
--------------------------------------------------------------------------------
-commit 589e96475f8f2d21a83405ab0672ce95091b80e5
-Author: Bruno Haible <bruno@clisp.org>
-Date: Fri Dec 29 00:29:23 2017 +0100
-
- gnulib-tool: Make --conditional-dependencies work better.
-
- Reported by Dmitry Selyutin <ghostman.sd@gmail.com>.
-
- * gnulib-tool (Options): Don't reject the combination of
- --conditional-dependencies with --with-tests.
- (func_emit_autoconf_snippets): Add argument referenceable_modules.
- Don't reference $modules.
- (func_import, func_create_testdir): Pass it.
-
---------------------------------------------------------------------------------
-
commit cd58dba367a3b8ffbebb23f2099a820106197fae
Author: Bruno Haible <bruno@clisp.org>
Date: Sun Oct 29 16:57:32 2017 +0100
emit = '%s\n' % '\n'.join(lines)
return emit
- def autoconfSnippets(self, modules, moduletable,
+ def autoconfSnippets(self, modules, referenceable_modules, moduletable,
verifier, toplevel, disable_libtool, disable_gettext, replace_auxdir):
'''GLEmiter.autoconfSnippets(modules,
verifier, toplevel, disable_libtool, disable_gettext, replace_auxdir) -> str
modules after they were processed.
modules argument represents list of modules; every module in this list must
be a GLModule instance.
+ referenceable_modules is the list of modules which may be referenced as
+ dependencies.
moduletable is a GLModuleTable instance, which contains necessary
information about dependencies of the modules.
verifier is an integer, which can be 0, 1 or 2.
for module in modules:
if type(module) is not GLModule:
raise TypeError('each module must be a GLModule instance')
+ for module in referenceable_modules:
+ if type(module) is not GLModule:
+ raise TypeError('each referenceable module must be a GLModule instance')
if type(moduletable) is not GLModuleTable:
raise TypeError('moduletable must be a GLFileAssistant, not %s'
% type(moduletable).__name__)
emit += ' %s=true\n' % shellvar
depmodules = module.getDependenciesWithoutConditions()
# Intersect dependencies with the modules list.
- depmodules = [ dep
- for dep in depmodules
- if dep in modules ] # TODO should this be basemodules or modules?
+ depmodules = sorted(set(depmodules).intersection(referenceable_modules))
for depmodule in depmodules:
if moduletable.isConditional(depmodule):
shellfunc = depmodule.getShellFunc()
if not moduletable.isConditional(module):
depmodules = module.getDependenciesWithoutConditions()
# Intersect dependencies with the modules list.
- depmodules = [ dep
- for dep in depmodules
- if dep in modules ] # TODO should this be basemodules or modules?
+ depmodules = sorted(set(depmodules).intersection(referenceable_modules))
for depmodule in depmodules:
if moduletable.isConditional(depmodule):
shellfunc = depmodule.getShellFunc()
self.config.update_key(config, key)
self.config.setModules(modules)
- # Check if conddeps is enabled together with inctests.
- inctests = self.config.checkInclTestCategory(TESTS['tests'])
- if self.config['conddeps'] and inctests:
- raise GLError(10, None)
-
# Define GLImport attributes.
self.emitter = GLEmiter(self.config)
self.filesystem = GLFileSystem(self.config)
if witness_c_macro:
emit += ' m4_pushdef([gl_MODULE_INDICATOR_CONDITION], [%s])\n' % witness_c_macro
# Emit main autoconf snippets.
- emit += self.emitter.autoconfSnippets(moduletable['main'],
+ emit += self.emitter.autoconfSnippets(moduletable['main'], moduletable['main'],
moduletable, 0, True, False, True, replace_auxdir)
if witness_c_macro:
emit += ' m4_popdef([gl_MODULE_INDICATOR_CONDITION])\n'
emit += ' m4_pushdef([gl_MODULE_INDICATOR_CONDITION], '
emit += '[$gl_module_indicator_condition])\n'
# Emit tests autoconf snippets.
- emit += self.emitter.autoconfSnippets(moduletable['tests'],
+ emit += self.emitter.autoconfSnippets(moduletable['tests'], moduletable['main'] + moduletable['tests'],
moduletable, 0, True, True, True, replace_auxdir)
emit += ' m4_popdef([gl_MODULE_INDICATOR_CONDITION])\n'
emit += self.emitter.initmacro_end('%stests' % macro_prefix)
# autoconf snippets. It's cleanest to put those of the library before
# those of the tests.
emit += "gl_source_base='../%s'\n" % sourcebase
- emit += self.emitter.autoconfSnippets(modules,
+ emit += self.emitter.autoconfSnippets(modules, modules,
moduletable, 1, False, False, False,
replace_auxdir)
emit += "gl_source_base='.'"
- emit += self.emitter.autoconfSnippets(modules,
+ emit += self.emitter.autoconfSnippets(modules, modules,
moduletable, 2, False, False, False,
replace_auxdir)
emit += self.emitter.initmacro_end(macro_prefix)
emit += self.emitter.initmacro_start(macro_prefix)
emit += 'gl_source_base=\'%s\'\n' % sourcebase
if single_configure:
- emit += self.emitter.autoconfSnippets(main_modules, moduletable,
+ emit += self.emitter.autoconfSnippets(main_modules, main_modules, moduletable,
0, False, False, False, replace_auxdir)
else: # if not single_configure
- emit += self.emitter.autoconfSnippets(modules, moduletable,
+ emit += self.emitter.autoconfSnippets(modules, modules, moduletable,
1, False, False, False, replace_auxdir)
emit += self.emitter.initmacro_end(macro_prefix)
if single_configure:
emit += ' gl_module_indicator_condition=$%stests_WITNESS\n' % macro_prefix
emit += ' m4_pushdef([gl_MODULE_INDICATOR_CONDITION], '
emit += '[$gl_module_indicator_condition])\n'
- snippets = self.emitter.autoconfSnippets(tests_modules, moduletable,
- 1, True, False, False, replace_auxdir)
+ snippets = self.emitter.autoconfSnippets(tests_modules, main_modules + tests_modules,
+ moduletable, 1, True, False, False, replace_auxdir)
emit += snippets.strip()
emit += ' m4_popdef([gl_MODULE_INDICATOR_CONDITION])\n'
emit += self.emitter.initmacro_end('%stests' % macro_prefix)