]> Savannah Git Hosting - gnulib.git/commitdiff
gnulib-tool.py: Follow gnulib-tool changes, part 39.
authorCollin Funk <collin.funk1@gmail.com>
Mon, 4 Mar 2024 20:35:15 +0000 (12:35 -0800)
committerBruno Haible <bruno@clisp.org>
Mon, 4 Mar 2024 21:59:08 +0000 (22:59 +0100)
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.

ChangeLog
gnulib-tool.py.TODO
pygnulib/GLEmiter.py
pygnulib/GLImport.py
pygnulib/GLTestDir.py

index c22d5ce9ff26cf50834a244611862b024c6d3dfe..e6393e213d24ebdbd2ee0fbd6c517c591452833b 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,16 @@
+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.
index babf3abb103c201f799d7ac0aca31dd11537cbb3..1cb436d90dcc13541b094068aa071a89be37b20b 100644 (file)
@@ -688,22 +688,6 @@ Date:   Mon Sep 3 21:19:16 2018 +0200
 
 --------------------------------------------------------------------------------
 
-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
index 8939917a0afb22c0513ebe2d6acd6757c1f6ada2..9435b10666180931d2979d5433d062c7ba5beae8 100644 (file)
@@ -178,7 +178,7 @@ class GLEmiter(object):
         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
@@ -191,6 +191,8 @@ class GLEmiter(object):
           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.
@@ -207,6 +209,9 @@ class GLEmiter(object):
         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__)
@@ -290,9 +295,7 @@ class GLEmiter(object):
                         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()
@@ -322,9 +325,7 @@ class GLEmiter(object):
                     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()
index e18a9601ec7904e8833ffd6f056c90353c244227..9cf9a96e301e0862070a2c93b268a73e25f553f1 100644 (file)
@@ -253,11 +253,6 @@ class GLImport(object):
                     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)
@@ -651,7 +646,7 @@ AC_DEFUN([%s_INIT],
         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'
@@ -674,7 +669,7 @@ AC_DEFUN([%s_INIT],
         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)
index 51c3f7a944caa3f2a0c1099083cd02d1fadc3ff2..5f290c30c3d528891c93a0f717e102b80eb6398a 100644 (file)
@@ -470,11 +470,11 @@ class GLTestDir(object):
                 # 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)
@@ -588,10 +588,10 @@ class GLTestDir(object):
         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:
@@ -605,8 +605,8 @@ class GLTestDir(object):
             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)