@@ -567,11 +567,10 @@ def add_config_files(self, flist):
567
567
raise ConfigException ("; " .join (
568
568
self .format_validation_error (x , config_file )
569
569
for x in errors ))
570
- if (
571
- "requires" in self .app_config_data
572
- and cfg ["name" ] not in self .app_config_data ["requires" ]
573
- ):
574
- continue
570
+ if "requires" in self .app_config_data :
571
+ if cfg ["name" ] not in self .app_config_data ["requires" ]:
572
+ continue
573
+ self .app_config_data ["requires" ].extend (cfg .get ("requires" , []))
575
574
576
575
self .processed_configs [full_path ] = True
577
576
@@ -1279,6 +1278,7 @@ def load_resources(self, resources):
1279
1278
"""
1280
1279
# Update configuration files until added features creates no changes
1281
1280
prev_features = set ()
1281
+ prev_requires = set ()
1282
1282
while True :
1283
1283
# Add/update the configuration with any .json files found while
1284
1284
# scanning
@@ -1288,12 +1288,14 @@ def load_resources(self, resources):
1288
1288
1289
1289
# Add features while we find new ones
1290
1290
features = set (self .get_features ())
1291
- if features == prev_features :
1291
+ requires = set (self .app_config_data .get ("requires" , []))
1292
+ if features == prev_features and requires == prev_requires :
1292
1293
break
1293
1294
1294
1295
resources .add_features (features )
1295
1296
1296
1297
prev_features = features
1298
+ prev_requires = requires
1297
1299
self .validate_config ()
1298
1300
1299
1301
if (hasattr (self .target , "release_versions" ) and
0 commit comments