@@ -268,8 +268,10 @@ void VSGenerator::generate(const SwBuild &b)
268268 dl (ts, tables1);
269269 dl (ts.substr (0 , ts.size () - 1 ), tables2);
270270
271+ auto &ttb = b.getTargetsToBuild ();
272+
271273 // get settings from targets to use settings equality later
272- for (auto &[pkg, tgts] : b. getTargetsToBuild () )
274+ for (auto &[pkg, tgts] : ttb )
273275 {
274276 decltype (s.settings ) s2;
275277 for (auto &st : s.settings )
@@ -400,7 +402,7 @@ void VSGenerator::generate(const SwBuild &b)
400402 }
401403 }
402404
403- for (auto &[pkg, tgts] : b. getTargetsToBuild () )
405+ for (auto &[pkg, tgts] : ttb )
404406 {
405407 // add project with settings
406408 for (auto &tgt : tgts)
@@ -527,7 +529,7 @@ void VSGenerator::generate(const SwBuild &b)
527529 d.build_rules .erase (d.main_command );
528530 }
529531 }
530- for (auto &[pkg, tgts] : b. getTargetsToBuild () )
532+ for (auto &[pkg, tgts] : ttb )
531533 {
532534 for (auto &tgt : tgts)
533535 {
@@ -542,7 +544,7 @@ void VSGenerator::generate(const SwBuild &b)
542544 continue ;
543545
544546 // filter out predefined & deps targets
545- auto &pd = b. getTargetsToBuild () ;
547+ auto &pd = ttb ;
546548 if (pd.find (d->getUnresolvedPackage ().ppath ) == pd.end (d->getUnresolvedPackage ().ppath ))
547549 {
548550 data.dependencies .insert (&d->getTarget ());
@@ -642,6 +644,8 @@ void VSGenerator::generate(const SwBuild &b)
642644 // create datas
643645 for (auto &st : s.settings )
644646 p.getData (st).type = p.type ;
647+
648+ bool has_deps = false ;
645649 for (auto &st : s.settings )
646650 {
647651 auto &d = p.getData (st);
@@ -669,6 +673,9 @@ void VSGenerator::generate(const SwBuild &b)
669673 p1.dependencies .insert (&p); // add dependency for project
670674 }
671675 }
676+ if (deps.empty ())
677+ continue ;
678+ has_deps = true ;
672679
673680 String deps_str;
674681 for (auto &[d,s] : deps)
@@ -701,6 +708,9 @@ void VSGenerator::generate(const SwBuild &b)
701708 be.command = " sw @" + normalize_path (rsp);
702709 d.pre_build_event = be;
703710 }
711+
712+ if (!has_deps)
713+ s.projects .erase (build_dependencies_name);
704714 }
705715
706716 // add path dirs
@@ -721,7 +731,7 @@ void VSGenerator::generate(const SwBuild &b)
721731 }
722732
723733 // set project dirs
724- for (auto &[pkg, tgts] : b. getTargetsToBuild () )
734+ for (auto &[pkg, tgts] : ttb )
725735 {
726736 for (auto &tgt : tgts)
727737 {
0 commit comments