]> Savannah Git Hosting - gnulib.git/commitdiff
gnulib-tool.py: Respect the specified module list.
authorBruno Haible <bruno@clisp.org>
Thu, 4 Aug 2022 10:48:56 +0000 (12:48 +0200)
committerBruno Haible <bruno@clisp.org>
Thu, 4 Aug 2022 10:48:56 +0000 (12:48 +0200)
* pygnulib/GLTestDir.py (GLTestDir.execute): Don't remove specific
modules (ftruncate, mountlist, etc.) from the specified module list.

ChangeLog
pygnulib/GLTestDir.py

index 2b2988c6bbdf6af715aed30470ad779a07d0f123..81b3104007641850f415c1250a18b1529dfce53a 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,9 @@
 2022-08-04  Bruno Haible  <bruno@clisp.org>
 
+       gnulib-tool.py: Respect the specified module list.
+       * pygnulib/GLTestDir.py (GLTestDir.execute): Don't remove specific
+       modules (ftruncate, mountlist, etc.) from the specified module list.
+
        gnulib-tool.py: Implement option --avoid.
        * pygnulib/GLModuleSystem.py (GLModuleTable.__init__): Compute the
        effective avoids list here.
index 384b5f3aeb4f955400eaec5fef33667d2f417593..fcf88098376dc38113aa8b4066a826bfdf1aa058 100644 (file)
@@ -162,28 +162,29 @@ class GLTestDir(object):
         macro_prefix = self.config['macro_prefix']
         verbose = self.config['verbosity']
 
-        base_modules = [self.modulesystem.find(
-            m) for m in self.config['modules']]
-        if not base_modules:
-            base_modules = self.modulesystem.list()
-            base_modules = [self.modulesystem.find(m) for m in base_modules]
-        # All modules together.
-        # Except config-h, which breaks all modules which use HAVE_CONFIG_H.
-        # Except non-recursive-gnulib-prefix-hack, which represents a
-        # nonstandard way of using Automake.
-        # Except ftruncate, mountlist, which abort the configuration on mingw.
-        # Except lib-ignore, which leads to link errors when Sun C++ is used.
-        base_modules = sorted(set(base_modules))
-        base_modules = [module
-                        for module in base_modules
-                        if str(module) not in ['config-h', 'non-recursive-gnulib-prefix-hack', 'ftruncate', 'mountlist', 'lib-ignore']]
+        specified_modules = self.config['modules']
+        if len(specified_modules) == 0:
+            # All modules together.
+            # Except config-h, which breaks all modules which use HAVE_CONFIG_H.
+            # Except non-recursive-gnulib-prefix-hack, which represents a
+            # nonstandard way of using Automake.
+            # Except ftruncate, mountlist, which abort the configuration on mingw.
+            # Except lib-ignore, which leads to link errors when Sun C++ is used.
+            specified_modules = self.modulesystem.list()
+            specified_modules = [module
+                                 for module in specified_modules
+                                 if module not in ['config-h', 'non-recursive-gnulib-prefix-hack', 'ftruncate', 'mountlist', 'lib-ignore']]
+
+        # Canonicalize the list of specified modules.
+        specified_modules = sorted(set(specified_modules))
+        specified_modules = [self.modulesystem.find(m) for m in specified_modules]
 
         # When computing transitive closures, don't consider $module to depend on
         # $module-tests. Need this because tests are implicitly GPL and may depend
         # on GPL modules - therefore we don't want a warning in this case.
         saved_inctests = self.config.checkInclTestCategory(TESTS['tests'])
         self.config.disableInclTestCategory(TESTS['tests'])
-        for requested_module in base_modules:
+        for requested_module in specified_modules:
             requested_licence = requested_module.getLicense()
             if requested_licence != 'GPL':
                 # Here we use self.moduletable.transitive_closure([module]), not
@@ -217,7 +218,7 @@ class GLTestDir(object):
         self.config.setInclTestCategory(TESTS['tests'], saved_inctests)
 
         # Determine final module list.
-        modules = self.moduletable.transitive_closure(base_modules)
+        modules = self.moduletable.transitive_closure(specified_modules)
         final_modules = list(modules)
 
         # Show final module list.
@@ -240,7 +241,7 @@ class GLTestDir(object):
             # Determine main module list and tests-related module list separately.
             main_modules, tests_modules = \
                 self.moduletable.transitive_closure_separately(
-                    base_modules, final_modules)
+                    specified_modules, final_modules)
             # Print main_modules and tests_modules.
             if verbose >= 1:
                 print('Main module list:')