summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorelliott_c <ocielliottc@users.noreply.github.com>2003-05-01 18:02:37 +0000
committerelliott_c <ocielliottc@users.noreply.github.com>2003-05-01 18:02:37 +0000
commite3535492071a82e03aebda9d9f1a47171d48b469 (patch)
treeaccf452af3bbc34d04188306df8ae5afc0af32c9
parentbca4dac13d702f675945998153bdf0f47f28c73e (diff)
downloadMPC-e3535492071a82e03aebda9d9f1a47171d48b469.tar.gz
ChangeLogTag: Thu May 1 12:55:13 2003 Chad Elliott <elliott_c@ociweb.com>
-rw-r--r--modules/VC6WorkspaceCreator.pm10
-rw-r--r--modules/VC7WorkspaceCreator.pm6
-rw-r--r--modules/WorkspaceCreator.pm60
3 files changed, 45 insertions, 31 deletions
diff --git a/modules/VC6WorkspaceCreator.pm b/modules/VC6WorkspaceCreator.pm
index d3a376a4..921461aa 100644
--- a/modules/VC6WorkspaceCreator.pm
+++ b/modules/VC6WorkspaceCreator.pm
@@ -57,8 +57,8 @@ sub write_comps {
my($dupfound) = 0;
foreach my $project (@$projects) {
- my($pi) = $$pjs{$project};
- my($name, $deps) = @$pi;
+ my($name) = $$pjs{$project}->[0];
+ my($deps) = $self->get_validated_ordering($project);
if (defined $names{$name}) {
## Having duplicate project names is an error in a VC6 Workspace.
## We will create the project, but we will warn the user that
@@ -71,12 +71,10 @@ sub write_comps {
$names{$name} = 1;
}
- ## Convert all /'s to \
- $project = $self->slash_to_backslash($project);
-
print $fh "###############################################################################$crlf" .
$crlf .
- "Project: \"$name\"=$project - Package Owner=<4>$crlf" .
+ "Project: \"$name\"=" . $self->slash_to_backslash($project) .
+ " - Package Owner=<4>$crlf" .
$crlf .
"Package=<5>$crlf" .
"{{{$crlf" .
diff --git a/modules/VC7WorkspaceCreator.pm b/modules/VC7WorkspaceCreator.pm
index 67c31ec2..146a775d 100644
--- a/modules/VC7WorkspaceCreator.pm
+++ b/modules/VC7WorkspaceCreator.pm
@@ -79,7 +79,8 @@ sub print_dependencies {
## Project Dependencies
print $fh "\tGlobalSection(ProjectDependencies) = postSolution$crlf";
foreach my $project (@$list) {
- my($name, $deps, $pguid) = @{$$pjs{$project}};
+ my($name, $rawdeps, $pguid) = @{$$pjs{$project}};
+ my($deps) = $self->get_validated_ordering($project);
if (defined $deps && $deps ne '') {
my($darr) = $self->create_array($deps);
my($i) = 0;
@@ -110,7 +111,8 @@ sub write_comps {
## Project Information
foreach my $project (sort @list) {
- my($name, $deps, $pguid) = @{$$pjs{$project}};
+ my($name, $rawdeps, $pguid) = @{$$pjs{$project}};
+ my($deps) = $self->get_validated_ordering($project);
## Convert all /'s to \
my($cpy) = $self->slash_to_backslash($project);
diff --git a/modules/WorkspaceCreator.pm b/modules/WorkspaceCreator.pm
index efa6ae54..cfd41aa0 100644
--- a/modules/WorkspaceCreator.pm
+++ b/modules/WorkspaceCreator.pm
@@ -573,7 +573,8 @@ sub generate_project_files {
}
## Generate the key for this project file
- my($prkey) = $self->getcwd() . "/$file-$postkey";
+ my($prkey) = $self->getcwd() . '/' .
+ ($file eq '' ? $dir : $file) . "-$postkey";
## We must change to the subdirectory for
## which this project file is intended
@@ -689,8 +690,8 @@ sub sort_dependencies {
## by the project dpendencies.
for(my $i = 0; $i <= $#list; $i++) {
my($project) = $list[$i];
- my($pi) = $$pjs{$project};
- my($name, $deps) = @$pi;
+ my($name) = $$pjs{$project}->[0];
+ my($deps) = $self->get_validated_ordering($project);
if ($deps ne '') {
my($darr) = $self->create_array($deps);
@@ -894,34 +895,47 @@ sub generate_recursive_input_list {
sub verify_build_ordering {
my($self) = shift;
my($projects) = $self->get_projects();
- my($pjs) = $self->get_project_info();
foreach my $project (@$projects) {
- my($name, $deps) = @{$$pjs{$project}};
- if (defined $deps && $deps ne '') {
- my($darr) = $self->create_array($deps);
- foreach my $dep (@$darr) {
- my($found) = 0;
- ## Avoid cirular dependencies
- if ($dep ne $name && $dep ne basename($project)) {
- foreach my $p (@$projects) {
- if ($dep eq $$pjs{$p}->[0] || $dep eq basename($p)) {
- $found = 1;
- last;
- }
+ $self->get_validated_ordering($project);
+ }
+}
+
+
+sub get_validated_ordering {
+ my($self) = shift;
+ my($project) = shift;
+ my($pjs) = $self->get_project_info();
+
+ my($name, $deps) = @{$$pjs{$project}};
+ if (defined $deps && $deps ne '') {
+ my($darr) = $self->create_array($deps);
+ my($projects) = $self->get_projects();
+ foreach my $dep (@$darr) {
+ my($found) = 0;
+ ## Avoid cirular dependencies
+ if ($dep ne $name && $dep ne basename($project)) {
+ foreach my $p (@$projects) {
+ if ($dep eq $$pjs{$p}->[0] || $dep eq basename($p)) {
+ $found = 1;
+ last;
}
- if (!$found) {
- if (defined $ENV{MPC_VERBOSE_ORDERING}) {
- print "WARNING: '$name' references '$dep' which has " .
- "not been processed\n";
- }
- $deps =~ s/\s*"$dep"\s*/ /g;
+ }
+ if (!$found) {
+ if (defined $ENV{MPC_VERBOSE_ORDERING}) {
+ print "WARNING: '$name' references '$dep' which has " .
+ "not been processed\n";
}
+ $deps =~ s/\s*"$dep"\s*/ /g;
}
}
- $$pjs{$project}->[1] = $deps;
}
}
+
+ $deps =~ s/^\s+//;
+ $deps =~ s/\s+$//;
+
+ return $deps;
}
# ************************************************************