my $reverse_on = 1; #enable reverse dependency
my $export_only = 0; # only export, not building
my $tarfile = 0; # generate tar file for dependence & reverse dependence xml file
+my $preordered_list = ""; # List of ordered packages to support user defined build order calculation
+
GetOptions (
"repository=s" => \@repos,
"arch=s" => \$arch,
"depends" => \$depends,
"export-only" => \$export_only,
"tarfile" => \$tarfile,
+ "preordered-list=s" => \$preordered_list,
);
if ( $help ) {
print "\n";
}
}
+
+if ($preordered_list ne "") {
+ my @build_order_new = ();
+ my @preordered_bins = ();
+
+ my @items = split(',', $preordered_list);
+ chomp(@items);
+ push @preordered_bins, @items;
+
+ foreach my $p (@preordered_bins) {
+ if ( !(grep $_ eq $p, @build_order_new) &&
+ (grep $_ eq $p, @build_order) ) {
+ push(@build_order_new, $p);
+ }
+ }
+ foreach my $p (@build_order) {
+ if (!(grep $_ eq $p, @build_order_new)) {
+ push(@build_order_new, $p);
+ }
+ }
+
+ if (scalar @build_order == scalar @build_order_new) {
+ info("Re-define order... (" . scalar @build_order . ")");
+ @build_order = @build_order_new;
+ }
+}
+
# Main process loop
# Every loop, first update package information
# include dependencies if there is new package