@@ -677,19 +677,19 @@ void Project::load(const yaml &root)
677677
678678 // deps
679679 {
680- auto read_version = [](auto &dependency, const auto &node )
680+ auto read_version = [](auto &dependency, const String &v )
681681 {
682682 if (!dependency.flags [pfLocalProject])
683683 {
684- dependency.version = node. template as <String>() ;
684+ dependency.version = v ;
685685 return ;
686686 }
687687
688688 if (rd.has_local_package (dependency.ppath ))
689689 dependency.version = Version (LOCAL_VERSION_NAME);
690690 else
691691 {
692- auto nppath = dependency.ppath / node. template as <String>() ;
692+ auto nppath = dependency.ppath / v ;
693693 if (rd.has_local_package (nppath))
694694 {
695695 dependency.ppath = nppath;
@@ -713,6 +713,13 @@ void Project::load(const yaml &root)
713713 dependency.ppath = this ->relative_name_to_absolute (d[" name" ].template as <String>());
714714 if (d[" package" ].IsDefined ())
715715 dependency.ppath = this ->relative_name_to_absolute (d[" package" ].template as <String>());
716+ if (dependency.ppath .empty () && d.size () == 1 )
717+ {
718+ dependency.ppath = this ->relative_name_to_absolute (d.begin ()->first .template as <String>());
719+ if (dependency.ppath .is_loc ())
720+ dependency.flags .set (pfLocalProject);
721+ read_version (dependency, d.begin ()->second .template as <String>());
722+ }
716723 if (d[" local" ].IsDefined () && allow_local_dependencies)
717724 {
718725 // WARNING!
@@ -753,14 +760,14 @@ void Project::load(const yaml &root)
753760
754761 // version will be read for local project
755762 // even 2nd arg is not valid
756- read_version (dependency, d[" version" ]);
763+ read_version (dependency, d[" version" ]. template as <String>() );
757764 }
758765
759766 if (d.IsMap ())
760767 {
761768 // read other map fields
762769 if (d[" version" ].IsDefined ())
763- read_version (dependency, d[" version" ]);
770+ read_version (dependency, d[" version" ]. template as <String>() );
764771 if (d[" ref" ].IsDefined ())
765772 dependency.reference = d[" ref" ].template as <String>();
766773 if (d[" reference" ].IsDefined ())
@@ -796,7 +803,7 @@ void Project::load(const yaml &root)
796803 dependency.flags .set (pfLocalProject);
797804
798805 if (d.second .IsScalar ())
799- read_version (dependency, d.second );
806+ read_version (dependency, d.second . template as <String>() );
800807 else if (d.second .IsMap ())
801808 {
802809 read_single_dep (deps, d.second , dependency);
@@ -811,11 +818,9 @@ void Project::load(const yaml &root)
811818 deps[dependency.ppath .toString ()] = dependency;
812819 };
813820
814- Packages dependencies_private;
815-
816821 auto extract_deps = [&dall, this , &get_dep, &read_single_dep](const auto &str, auto &deps)
817822 {
818- auto & priv = dall[str];
823+ auto priv = dall[str];
819824 if (!priv.IsDefined ())
820825 return ;
821826 if (priv.IsMap ())
@@ -833,6 +838,7 @@ void Project::load(const yaml &root)
833838 }
834839 };
835840
841+ Packages dependencies_private;
836842 extract_deps (" private" , dependencies_private);
837843 extract_deps (" public" , dependencies);
838844
0 commit comments