@@ -155,34 +155,36 @@ void Config::clear_vars_cache() const
155155 }
156156}
157157
158- Project &Config::getProject (const String &pname) const
158+ Project &Config::getProject1 (const ProjectPath &ppath)
159159{
160- const Project *p = nullptr ;
160+ if (projects.empty ())
161+ throw std::runtime_error (" Projects are empty" );
161162 if (projects.size () == 1 )
162- p = &projects.begin ()->second ;
163- else if (!projects.empty ())
164- {
165- auto it = projects.find (pname);
166- if (it != projects.end ())
167- p = &it->second ;
168- }
169- if (!p)
170- throw std::runtime_error (" No such project '" + pname + " ' in dependencies list" );
171- return (Project &)*p;
163+ return projects.begin ()->second ;
164+ auto i = projects.find (ppath.toString ());
165+ if (i == projects.end ())
166+ throw std::runtime_error (" No such project '" + ppath.toString () + " ' in config" );
167+ return i->second ;
172168}
173169
174- Project &Config::getDefaultProject ( )
170+ Project &Config::getProject ( const ProjectPath &ppath )
175171{
176- if (projects.empty ())
177- throw std::runtime_error (" Projects are empty" );
178- return projects.begin ()->second ;
172+ return getProject1 (ppath);
179173}
180174
181- const Project &Config::getDefaultProject ( ) const
175+ const Project &Config::getProject ( const ProjectPath &ppath ) const
182176{
183- if (projects.empty ())
184- throw std::runtime_error (" Projects are empty" );
185- return projects.begin ()->second ;
177+ return (const Project &)((Config *)this )->getProject1 (ppath);
178+ }
179+
180+ Project &Config::getDefaultProject (const ProjectPath &ppath)
181+ {
182+ return getProject (ppath);
183+ }
184+
185+ const Project &Config::getDefaultProject (const ProjectPath &ppath) const
186+ {
187+ return getProject (ppath);
186188}
187189
188190void Config::process (const path &p) const
0 commit comments