@@ -654,14 +654,14 @@ let run targetName =
654
654
tracefn " Building project with version: %s " buildVersion
655
655
PrintDependencyGraph false targetName
656
656
657
- // determine a parallel build order
658
- let order = determineBuildOrder targetName
659
-
660
657
let parallelJobs = environVarOrDefault " parallel-jobs" " 1" |> int
661
658
662
659
// Figure out the order in in which targets can be run, and which can be run in parallel.
663
660
if parallelJobs > 1 then
664
661
tracefn " Running parallel build with %d workers" parallelJobs
662
+
663
+ // determine a parallel build order
664
+ let order = determineBuildOrder targetName
665
665
CurrentTargetOrder <- order |> List.map ( fun targets -> targets |> Array.map ( fun t -> t.Name) |> Array.toList)
666
666
667
667
PrintRunningOrder()
@@ -671,12 +671,15 @@ let run targetName =
671
671
runTargetsParallel parallelJobs par
672
672
else
673
673
674
- let flatenedOrder = order |> List.map ( fun targets -> targets |> Array.map ( fun t -> t.Name) |> Array.toList) |> List.concat
675
- CurrentTargetOrder <- flatenedOrder |> Seq.map ( fun t -> [ t]) |> Seq.toList
676
-
674
+ // Note: we could use the ordering resulting from flattening the result of determineBuildOrder
675
+ // for a single threaded build (thereby centralizing the algorithm for build order), but that
676
+ // ordering is inconsistent with earlier versions of FAKE.
677
+ let _ , order = visitDependencies ignore targetName
678
+ CurrentTargetOrder <- order |> Seq.map ( fun t -> [ t]) |> Seq.toList
679
+
677
680
PrintRunningOrder()
678
681
679
- runTargets ( flatenedOrder |> Seq.map getTarget |> Seq.toArray)
682
+ runTargets ( order |> Seq.map getTarget |> Seq.toArray)
680
683
681
684
finally
682
685
if errors <> [] then
0 commit comments