@@ -36,14 +36,18 @@ void Configs::addConfig(Config &config,const Options &options,vector<Config> &co
36
36
configs.push_back (config);
37
37
}
38
38
39
+ void Configs::correctDirectories (vector<Config> &configs)
40
+ {
41
+ for (auto & config : configs)
42
+ config.correctDirectory ();
43
+ }
44
+
39
45
vector<Config> Configs::load (const Options &options)
40
46
{
41
47
vector<Config>
42
48
configs;
43
49
44
- loadDirectory (options,L" Dependencies" ,configs);
45
- loadDirectory (options,L" OptionalDependencies" ,configs);
46
-
50
+ loadDependencies (options,configs);
47
51
loadImageMagick (options,configs);
48
52
removeInvalidReferences (options,configs);
49
53
validate (options,configs);
@@ -92,6 +96,24 @@ void Configs::loadConfig(const Options &options,const wstring &name,const wstrin
92
96
addConfig (config,options,configs);
93
97
}
94
98
99
+ void Configs::loadDependencies (const Options &options,vector<Config> &configs)
100
+ {
101
+ if (!filesystem::exists (options.rootDirectory + L" Dependencies" ))
102
+ return ;
103
+
104
+ if (filesystem::exists (options.rootDirectory + L" Dependencies\\ Dependencies" ))
105
+ {
106
+ loadDirectory (options,L" Dependencies\\ Dependencies" ,configs);
107
+ loadDirectory (options,L" Dependencies\\ OptionalDependencies" ,configs);
108
+ correctDirectories (configs);
109
+ }
110
+ else
111
+ {
112
+ loadDirectory (options,L" Dependencies" ,configs);
113
+ loadDirectory (options,L" OptionalDependencies" ,configs);
114
+ }
115
+ }
116
+
95
117
void Configs::loadDirectory (const Options &options,const wstring directory,vector<Config> &configs)
96
118
{
97
119
const auto fullProjectDirectory=options.rootDirectory + L" \\ " + directory;
0 commit comments