Skip to content

Commit 2c3d165

Browse files
committed
Allow loading the dependencies from a checkout of the Dependencies repository instead.
1 parent 1b06df8 commit 2c3d165

File tree

4 files changed

+37
-3
lines changed

4 files changed

+37
-3
lines changed

src/Config.cpp

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -124,6 +124,12 @@ const Config Config::copyInfo(const Config &config) const
124124
return(newConfig);
125125
}
126126

127+
void Config::correctDirectory()
128+
{
129+
if (startsWith(_directory,L"Dependencies\\"))
130+
_directory=L"Dependencies\\" + _directory;
131+
}
132+
127133
Config Config::load(const wstring name,const wstring &directory,const wstring &configFile)
128134
{
129135
Config config(name,directory);

src/Config.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,8 @@ class Config
7575

7676
const Config copyInfo(const Config &config) const;
7777

78+
void correctDirectory();
79+
7880
static Config load(const wstring name,const wstring &directory,const wstring &configFile);
7981

8082
void rename(const wstring& name);

src/Configs.cpp

Lines changed: 25 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -36,14 +36,18 @@ void Configs::addConfig(Config &config,const Options &options,vector<Config> &co
3636
configs.push_back(config);
3737
}
3838

39+
void Configs::correctDirectories(vector<Config> &configs)
40+
{
41+
for(auto& config : configs)
42+
config.correctDirectory();
43+
}
44+
3945
vector<Config> Configs::load(const Options &options)
4046
{
4147
vector<Config>
4248
configs;
4349

44-
loadDirectory(options,L"Dependencies",configs);
45-
loadDirectory(options,L"OptionalDependencies",configs);
46-
50+
loadDependencies(options,configs);
4751
loadImageMagick(options,configs);
4852
removeInvalidReferences(options,configs);
4953
validate(options,configs);
@@ -92,6 +96,24 @@ void Configs::loadConfig(const Options &options,const wstring &name,const wstrin
9296
addConfig(config,options,configs);
9397
}
9498

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+
95117
void Configs::loadDirectory(const Options &options,const wstring directory,vector<Config> &configs)
96118
{
97119
const auto fullProjectDirectory=options.rootDirectory + L"\\" + directory;

src/Configs.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,12 +31,16 @@ class Configs
3131
private:
3232
static void addConfig(Config &config,const Options &options,vector<Config> &configs);
3333

34+
static void correctDirectories(vector<Config> &configs);
35+
3436
static void loadCoders(const Options &options,vector<Config> &configs);
3537

3638
static Config loadConfig(const Options &options,const wstring &name,const wstring &directory);
3739

3840
static void loadConfig(const Options &options,const wstring &name,const wstring &directory,vector<Config> &configs);
3941

42+
static void loadDependencies(const Options &options,vector<Config> &configs);
43+
4044
static void loadDirectory(const Options &options,const wstring directory,vector<Config> &configs);
4145

4246
static void loadImageMagick(const Options &options,vector<Config> &configs);

0 commit comments

Comments
 (0)