summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorelliott_c <ocielliottc@users.noreply.github.com>2003-09-16 16:50:31 +0000
committerelliott_c <ocielliottc@users.noreply.github.com>2003-09-16 16:50:31 +0000
commitdc11885c0bd8f2a3c0f8e509133d3811e71295f2 (patch)
treeb8f65246bee863c57d0159e1b4f327e7df1294e4
parent05b28f8685002e1304da8c21f96a80a5841e0dcd (diff)
downloadATCD-dc11885c0bd8f2a3c0f8e509133d3811e71295f2.tar.gz
ChangeLogTag: Tue Sep 16 11:49:19 2003 Chad Elliott <elliott_c@ociweb.com>
-rw-r--r--ChangeLog32
-rw-r--r--bin/MakeProjectCreator/modules/AutomakeProjectCreator.pm4
-rw-r--r--bin/MakeProjectCreator/modules/Creator.pm64
-rw-r--r--bin/MakeProjectCreator/modules/FeatureParser.pm2
-rw-r--r--bin/MakeProjectCreator/modules/GNUACEProjectCreator.pm12
-rw-r--r--bin/MakeProjectCreator/modules/GNUACEWorkspaceCreator.pm7
-rw-r--r--bin/MakeProjectCreator/modules/Parser.pm22
-rw-r--r--bin/MakeProjectCreator/modules/ProjectCreator.pm70
-rw-r--r--bin/MakeProjectCreator/modules/TemplateInputReader.pm4
-rw-r--r--bin/MakeProjectCreator/modules/TemplateParser.pm47
-rw-r--r--bin/MakeProjectCreator/modules/VC71WorkspaceCreator.pm4
-rw-r--r--bin/MakeProjectCreator/modules/VC7WorkspaceCreator.pm6
-rw-r--r--bin/MakeProjectCreator/modules/WorkspaceCreator.pm25
13 files changed, 124 insertions, 175 deletions
diff --git a/ChangeLog b/ChangeLog
index 7a12a2a75bf..552e9fcaaba 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,8 +1,26 @@
+Tue Sep 16 11:49:19 2003 Chad Elliott <elliott_c@ociweb.com>
+
+ * bin/MakeProjectCreator/modules/AutomakeProjectCreator.pm:
+ * bin/MakeProjectCreator/modules/Creator.pm:
+ * bin/MakeProjectCreator/modules/FeatureParser.pm:
+ * bin/MakeProjectCreator/modules/GNUACEProjectCreator.pm:
+ * bin/MakeProjectCreator/modules/GNUACEWorkspaceCreator.pm:
+ * bin/MakeProjectCreator/modules/Parser.pm:
+ * bin/MakeProjectCreator/modules/ProjectCreator.pm:
+ * bin/MakeProjectCreator/modules/TemplateInputReader.pm:
+ * bin/MakeProjectCreator/modules/TemplateParser.pm:
+ * bin/MakeProjectCreator/modules/VC71WorkspaceCreator.pm:
+ * bin/MakeProjectCreator/modules/VC7WorkspaceCreator.pm:
+ * bin/MakeProjectCreator/modules/WorkspaceCreator.pm:
+
+ Perform some optimizations on the code to decrease generation
+ time.
+
Tue Sep 16 11:55:18 2003 Gautam H. Thaker <gthaker@atl.lmco.com>
-
- * performance-tests/SCTP/SOCK_SEQPACK_srv.cpp:
-
+
+ * performance-tests/SCTP/SOCK_SEQPACK_srv.cpp:
+
fix compiler warning due to unintialized pointer
* performance-tests/SCTP/README.LKSCTP
@@ -15,11 +33,11 @@ Tue Sep 16 11:55:18 2003 Gautam H. Thaker <gthaker@atl.lmco.com>
* ace/SOCK_SEQPACK_Association.h
* ace/SOCK_SEQPACK_Connector.cpp
* ace/SOCK_SEQPACK_Connector.h
-
- Changes to support changed LKSCTP API support from 2.6.test.4
+
+ Changes to support changed LKSCTP API support from 2.6.test.4
kernel an onward.
-
-
+
+
Tue Sep 16 10:28:02 2003 Chad Elliott <elliott_c@ociweb.com>
* bin/MakeProjectCreator/modules/ProjectCreator.pm:
diff --git a/bin/MakeProjectCreator/modules/AutomakeProjectCreator.pm b/bin/MakeProjectCreator/modules/AutomakeProjectCreator.pm
index a0c95fa4bef..2266e8589fc 100644
--- a/bin/MakeProjectCreator/modules/AutomakeProjectCreator.pm
+++ b/bin/MakeProjectCreator/modules/AutomakeProjectCreator.pm
@@ -44,7 +44,7 @@ sub fill_value {
my($names) = $self->{'source_files'};
foreach my $name (keys %$names) {
my($comps) = $$names{$name};
- foreach my $key (sort keys %$comps) {
+ foreach my $key (keys %$comps) {
foreach my $item (@{$$comps{$key}}) {
my($dname) = dirname($item);
if ($dname ne '.' && $dname !~ /^\.\.\//) {
@@ -53,7 +53,7 @@ sub fill_value {
}
}
}
- my($str) = join(':', keys %vpath);
+ my($str) = join(':', sort keys %vpath);
if ($str ne '') {
$value = 'VPATH = .:' . $str . $self->crlf();
}
diff --git a/bin/MakeProjectCreator/modules/Creator.pm b/bin/MakeProjectCreator/modules/Creator.pm
index c97af376e61..21071be4864 100644
--- a/bin/MakeProjectCreator/modules/Creator.pm
+++ b/bin/MakeProjectCreator/modules/Creator.pm
@@ -119,28 +119,28 @@ sub generate_default_input {
sub parse_file {
- my($self) = shift;
- my($input) = shift;
- my($typecheck) = $self->{'type_check'};
- my($oline) = $self->line_number();
+ my($self) = shift;
+ my($input) = shift;
+ my($oline) = $self->get_line_number();
## Read the input file and get the last line number
my($status, $errorString) = $self->read_file($input);
- my($linenumber) = $self->line_number();
if (!$status) {
print STDERR $self->getcwd() .
- "/$input: line $linenumber:\n$errorString\n";
+ "/$input: line " . $self->get_line_number() .
+ ":\n$errorString\n";
}
- elsif ($status && $self->{$typecheck}) {
+ elsif ($status && $self->{$self->{'type_check'}}) {
## If we are at the end of the file and the type we are looking at
## is still defined, then we have an error
print STDERR $self->getcwd() .
- "/$input: line $linenumber:\nERROR: Did not " .
+ "/$input: line " . $self->get_line_number() .
+ ":\nERROR: Did not " .
"find the end of the $self->{'grammar_type'}\n";
$status = 0;
}
- $self->line_number($oline);
+ $self->set_line_number($oline);
return $status;
}
@@ -187,15 +187,15 @@ sub parse_assignment {
my($values) = shift;
my($status) = 1;
- if ($line =~ /^(\w+)\s*=\s*(.*)?/) {
+ if ($line =~ /^(\w+)\s*\+=\s*(.*)?/) {
my($name) = lc($1);
my($value) = $2;
- push(@$values, 'assignment', $name, $value);
+ push(@$values, 'assign_add', $name, $value);
}
- elsif ($line =~ /^(\w+)\s*\+=\s*(.*)?/) {
+ elsif ($line =~ /^(\w+)\s*=\s*(.*)?/) {
my($name) = lc($1);
my($value) = $2;
- push(@$values, 'assign_add', $name, $value);
+ push(@$values, 'assignment', $name, $value);
}
elsif ($line =~ /^(\w+)\s*\-=\s*(.*)?/) {
my($name) = lc($1);
@@ -217,7 +217,6 @@ sub parse_known {
my($errorString) = '';
my($type) = $self->{'grammar_type'};
my(@values) = ();
- my($typecheck) = $self->{'type_check'};
##
## Each regexp that looks for the '{' looks for it at the
@@ -231,14 +230,15 @@ sub parse_known {
elsif ($line =~ /^$type\s*(\([^\)]+\))?\s*(:.*)?\s*{$/) {
my($name) = $1;
my($parents) = $2;
- if ($self->{$typecheck}) {
+ if ($self->{$self->{'type_check'}}) {
$errorString = "ERROR: Did not find the end of the $type";
$status = 0;
}
else {
if (defined $parents) {
my(@parents) = ();
- foreach my $parent (split(/[:,]/, $parents)) {
+ $parents =~ s/^://;
+ foreach my $parent (split(',', $parents)) {
$parent =~ s/^\s+//;
$parent =~ s/\s+$//;
if ($parent ne '') {
@@ -257,7 +257,7 @@ sub parse_known {
}
}
elsif ($line =~ /^}$/) {
- if ($self->{$typecheck}) {
+ if ($self->{$self->{'type_check'}}) {
push(@values, $type, $line);
}
else {
@@ -271,7 +271,7 @@ sub parse_known {
my(@names) = split(/\s*,\s*/, $name);
push(@values, $type, \@names);
}
- elsif (!$self->{$typecheck}) {
+ elsif (!$self->{$self->{'type_check'}}) {
$errorString = "ERROR: No $type was defined";
$status = 0;
}
@@ -419,8 +419,7 @@ sub transform_file_name {
sub file_written {
my($self) = shift;
my($file) = shift;
- my($full) = $self->getcwd() . '/' . $file;
- return (defined $all_written{$full});
+ return (defined $all_written{$self->getcwd() . '/' . $file});
}
@@ -437,8 +436,7 @@ sub add_file_written {
}
push(@{$self->{'files_written'}}, $file);
- my($full) = $self->getcwd() . '/' . $file;
- $all_written{$full} = 1;
+ $all_written{$self->getcwd() . '/' . $file} = 1;
}
@@ -482,17 +480,18 @@ sub process_assignment {
my($name) = shift;
my($value) = shift;
my($assign) = shift;
- my($tag) = ($self->{'reading_global'} ? 'global_assign' : 'assign');
+
## If no hash table was passed in
if (!defined $assign) {
- $assign = $self->{$tag};
- }
+ my($tag) = ($self->{'reading_global'} ? 'global_assign' : 'assign');
+ $assign = $self->{$tag};
- ## If we haven't yet defined the hash table in this project
- if (!defined $assign) {
- $assign = {};
- $self->{$tag} = $assign;
+ ## If we haven't yet defined the hash table in this project
+ if (!defined $assign) {
+ $assign = {};
+ $self->{$tag} = $assign;
+ }
}
if (defined $value) {
@@ -500,10 +499,11 @@ sub process_assignment {
$value =~ s/\s+$//;
## Modify the assignment value before saving it
- $value = $self->modify_assignment_value($value);
+ $$assign{$name} = $self->modify_assignment_value($value);
+ }
+ else {
+ $$assign{$name} = undef;
}
-
- $$assign{$name} = $value;
}
diff --git a/bin/MakeProjectCreator/modules/FeatureParser.pm b/bin/MakeProjectCreator/modules/FeatureParser.pm
index 4f232b63e8e..c5d608bc7be 100644
--- a/bin/MakeProjectCreator/modules/FeatureParser.pm
+++ b/bin/MakeProjectCreator/modules/FeatureParser.pm
@@ -37,7 +37,7 @@ sub new {
if (!$status) {
## We only want to warn the user about problems
## with the feature file.
- my($lnumber) = $self->line_number();
+ my($lnumber) = $self->get_line_number();
$warn =~ s/ERROR/WARNING/;
print "$f: line $lnumber:\n$warn\n";
}
diff --git a/bin/MakeProjectCreator/modules/GNUACEProjectCreator.pm b/bin/MakeProjectCreator/modules/GNUACEProjectCreator.pm
index 375c0c5089d..1cb9f30c5e3 100644
--- a/bin/MakeProjectCreator/modules/GNUACEProjectCreator.pm
+++ b/bin/MakeProjectCreator/modules/GNUACEProjectCreator.pm
@@ -47,16 +47,13 @@ sub fill_value {
my($self) = shift;
my($name) = shift;
my($value) = undef;
- my($crlf) = $self->crlf();
- my($tag) = 'source_files';
- my($names) = $self->{$tag};
- my($dcomp) = $self->get_default_component_name();
+ my($names) = $self->{'source_files'};
if ($name eq 'vpath') {
my(%vpath) = ();
foreach my $name (keys %$names) {
my($comps) = $$names{$name};
- foreach my $key (sort keys %$comps) {
+ foreach my $key (keys %$comps) {
foreach my $item (@{$$comps{$key}}) {
my($dname) = dirname($item);
if ($dname ne '.' && $dname !~ /^\.\.\//) {
@@ -65,12 +62,13 @@ sub fill_value {
}
}
}
- my($str) = join(':', keys %vpath);
+ my($str) = join(':', sort keys %vpath);
if ($str ne '') {
- $value = 'VPATH = .:' . $str . $crlf;
+ $value = 'VPATH = .:' . $str . $self->crlf();
}
}
elsif ($name eq 'comptarget') {
+ my($crlf) = $self->crlf();
foreach my $name (keys %$names) {
if (defined $compscript{$name}) {
if (!defined $value) {
diff --git a/bin/MakeProjectCreator/modules/GNUACEWorkspaceCreator.pm b/bin/MakeProjectCreator/modules/GNUACEWorkspaceCreator.pm
index bd27942f92b..de23ac65ddb 100644
--- a/bin/MakeProjectCreator/modules/GNUACEWorkspaceCreator.pm
+++ b/bin/MakeProjectCreator/modules/GNUACEWorkspaceCreator.pm
@@ -73,11 +73,12 @@ sub pre_workspace {
sub write_comps {
my($self) = shift;
my($fh) = shift;
+ my($crlf) = $self->crlf();
my($projects) = $self->get_projects();
- my($pjs) = $self->get_project_info();
my(%targnum) = ();
- my(@list) = $self->number_target_deps($projects, $pjs, \%targnum);
- my($crlf) = $self->crlf();
+ my(@list) = $self->number_target_deps($projects,
+ $self->get_project_info(),
+ \%targnum);
## Only use the list if there is more than one project
if ($#list > 0) {
diff --git a/bin/MakeProjectCreator/modules/Parser.pm b/bin/MakeProjectCreator/modules/Parser.pm
index 25a2a1b1038..7977ae1aeb2 100644
--- a/bin/MakeProjectCreator/modules/Parser.pm
+++ b/bin/MakeProjectCreator/modules/Parser.pm
@@ -127,15 +127,16 @@ sub read_file {
}
-sub line_number {
- my($self) = shift;
- my($number) = shift;
+sub get_line_number {
+ my($self) = shift;
+ return $self->{'line_number'};
+}
- if (defined $number) {
- $self->{'line_number'} = $number;
- }
- return $self->{'line_number'};
+sub set_line_number {
+ my($self) = shift;
+ my($number) = shift;
+ $self->{'line_number'} = $number;
}
@@ -156,15 +157,14 @@ sub get_include_path {
sub search_include_path {
my($self) = shift;
my($file) = shift;
- my($found) = undef;
foreach my $include ('.', @{$self->{'include'}}) {
if (-r "$include/$file") {
- $found = "$include/$file";
- last;
+ return "$include/$file";
}
}
- return $found;
+
+ return undef;
}
diff --git a/bin/MakeProjectCreator/modules/ProjectCreator.pm b/bin/MakeProjectCreator/modules/ProjectCreator.pm
index fa0e5589759..d0d6c3993d5 100644
--- a/bin/MakeProjectCreator/modules/ProjectCreator.pm
+++ b/bin/MakeProjectCreator/modules/ProjectCreator.pm
@@ -218,7 +218,6 @@ sub parse_line {
my($self) = shift;
my($ih) = shift;
my($line) = shift;
- my($type) = $self->{'grammar_type'};
my($status,
$errorString,
@values) = $self->parse_known($line);
@@ -230,7 +229,7 @@ sub parse_line {
## sort.
if ($status && defined $values[0]) {
- if ($values[0] eq $type) {
+ if ($values[0] eq $self->{'grammar_type'}) {
my($name) = $values[1];
my($typecheck) = $self->{'type_check'};
if (defined $name && $name eq '}') {
@@ -267,19 +266,8 @@ sub parse_line {
}
if ($status) {
-# ## Now add in the features that have been defined
-# $self->{$typecheck} = 0;
-# $self->{'type_specific_assign'} = {};
-# ($status, $errorString) = $self->process_features();
-#
-# if ($status) {
-# ## If the feature added any type specific assignments
-# ## then we need to processs them before we write the project
-# $self->process_type_specific_assignments();
-
- ## End of project; Write out the file.
- ($status, $errorString) = $self->write_project();
-# }
+ ## End of project; Write out the file.
+ ($status, $errorString) = $self->write_project();
foreach my $key (keys %{$self->{'valid_components'}}) {
delete $self->{$key};
@@ -641,8 +629,7 @@ sub parse_components {
if (defined $over) {
$$over{$line} = \%flags;
}
- my($array) = $$comps{$current};
- push(@$array, $line);
+ push(@{$$comps{$current}}, $line);
}
}
else {
@@ -674,11 +661,9 @@ sub parse_verbatim {
while($_ = $fh->getline()) {
my($line) = $self->strip_line($_);
- if ($line eq '') {
- }
- elsif ($line =~ /^}/) {
+ if ($line =~ /^}/) {
## This is not an error,
- ## this is the end of the components
+ ## this is the end of the verbatim
last;
}
else {
@@ -690,35 +675,6 @@ sub parse_verbatim {
}
-#sub save_feature {
-# my($self) = shift;
-# my($fh) = shift;
-# my($names) = shift;
-# my(@lines) = ("project {\n");
-# my($curly) = 1;
-#
-# while($_ = $fh->getline()) {
-# my($line) = $self->strip_line($_);
-# push(@lines, "$line\n");
-#
-# ## This is a very simplistic way of finding the end of
-# ## the feature definition. It will work as long as no spurious
-# ## open curly braces are counted.
-# if ($line =~ /{$/) {
-# ++$curly;
-# }
-# elsif ($line =~ /^}$/) {
-# --$curly;
-# }
-# if ($curly == 0) {
-# $self->{'feature_defined'} = 0;
-# last;
-# }
-# }
-# push(@{$self->{'feature_definitions'}}, [ $names, \@lines ]);
-#}
-
-
sub process_feature {
my($self) = shift;
my($fh) = shift;
@@ -1491,7 +1447,6 @@ sub generated_source_listed {
my($arr) = shift;
my($names) = $self->{$tag};
my(@gen) = $self->generated_extensions($gent, $tag);
- my(@found) = ();
## Find out which generated source files are listed
foreach my $name (keys %$names) {
@@ -1503,14 +1458,15 @@ sub generated_source_listed {
foreach my $i (@$arr) {
my($ifile) = $self->escape_regex_special($i);
if ($val =~ /$ifile$ext$/) {
- push(@found, $val);
+ return 1;
}
}
}
}
}
}
- return (defined $found[0]);
+
+ return 0;
}
@@ -1868,17 +1824,17 @@ sub get_grouped_value {
my($based) = shift;
my($value) = undef;
+ ## Make it all lowercase
+ $type = lc($type);
+
## Remove the grouped_ part
$type =~ s/^$grouped_key//;
## Add the s if it isn't there
- if ($type !~ /s$/i) {
+ if ($type !~ /s$/) {
$type .= 's';
}
- ## Make it all lowercase
- $type = lc($type);
-
my($names) = $self->{$type};
if ($cmd eq 'files') {
foreach my $name (keys %$names) {
diff --git a/bin/MakeProjectCreator/modules/TemplateInputReader.pm b/bin/MakeProjectCreator/modules/TemplateInputReader.pm
index 40f663ca253..3dbd7d4faab 100644
--- a/bin/MakeProjectCreator/modules/TemplateInputReader.pm
+++ b/bin/MakeProjectCreator/modules/TemplateInputReader.pm
@@ -119,9 +119,9 @@ sub parse_line {
elsif ($line =~ /^conditional_include\s+"([\w\s\-\+\/\\\.]+)"$/) {
my($file) = $self->search_include_path("$1.$mpt");
if (defined $file) {
- my($ol) = $self->{'line_number'};
+ my($ol) = $self->get_line_number();
($status, $errorString) = $self->read_file($file);
- $self->{'line_number'} = $ol;
+ $self->set_line_number($ol);
}
}
else {
diff --git a/bin/MakeProjectCreator/modules/TemplateParser.pm b/bin/MakeProjectCreator/modules/TemplateParser.pm
index 042c368f18c..621d39fb137 100644
--- a/bin/MakeProjectCreator/modules/TemplateParser.pm
+++ b/bin/MakeProjectCreator/modules/TemplateParser.pm
@@ -54,7 +54,8 @@ sub new {
$self->{'ti'} = $prjc->get_template_input();
$self->{'cslashes'} = $prjc->convert_slashes();
$self->{'addtemp'} = $prjc->get_addtemp();
- $self->{'crlf'} = undef;
+ $self->{'crlf'} = $prjc->crlf();
+ $self->{'clen'} = length($self->{'crlf'});
$self->{'values'} = {};
$self->{'defaults'} = {};
$self->{'lines'} = [];
@@ -496,7 +497,7 @@ sub handle_if {
my($val) = shift;
my($name) = 'endif';
- push(@{$self->{'lstack'}}, $self->line_number() . " $val");
+ push(@{$self->{'lstack'}}, $self->get_line_number() . " $val");
if (!$self->{'if_skip'}) {
my($true) = 1;
push(@{$self->{'sstack'}}, $name);
@@ -564,7 +565,7 @@ sub handle_foreach {
my($status) = 1;
my($errorString) = '';
- push(@{$self->{'lstack'}}, $self->line_number());
+ push(@{$self->{'lstack'}}, $self->get_line_number());
if (!$self->{'if_skip'}) {
my($vname) = undef;
if ($val =~ /([^,]+),(.*)/) {
@@ -726,33 +727,12 @@ sub handle_marker {
sub split_name_value {
my($self) = shift;
my($line) = shift;
- my($length) = length($line);
my($name) = undef;
my($val) = undef;
- for(my $i = 0; $i < $length; ++$i) {
- my($ch) = substr($line, $i, 1);
- if (!defined $name && $ch eq '(') {
- $name = substr($line, 0, $i);
- $val = '';
- }
- elsif (!defined $name && $ch eq '%') {
- if (substr($line, $i + 1, 1) eq '>') {
- $name = substr($line, 0, $i);
- last;
- }
- }
- elsif (defined $val && $ch ne ')') {
- $val .= $ch;
- }
- elsif (defined $val && $ch eq ')') {
- if (substr($line, $i + 1, 2) eq '%>') {
- last;
- }
- else {
- $val .= $ch;
- }
- }
+ if ($line =~ /([^%\(]+)(\(([^%]+)\))?%>/) {
+ $name = $1;
+ $val = $3;
}
return lc($name), $val;
@@ -854,9 +834,6 @@ sub collect_data {
my($self) = shift;
my($prjc) = $self->{'prjc'};
- ## Save crlf so we don't have to keep going back to the prjc
- $self->{'crlf'} = $prjc->crlf();
-
## Collect the components into {'values'} somehow
foreach my $key (keys %{$prjc->{'valid_components'}}) {
my(@list) = $prjc->get_component_list($key);
@@ -907,8 +884,6 @@ sub parse_line {
my($errorString) = '';
my($length) = length($line);
my($name) = 0;
- my($crlf) = $self->{'crlf'};
- my($clen) = length($crlf);
my($startempty) = ($line eq '' ? 1 : 0);
my($append_name) = 0;
@@ -917,8 +892,8 @@ sub parse_line {
## not need to add a newline to the end.
if ($self->{'foreach'}->{'processing'} == 0 &&
!$self->is_only_keyword($line)) {
- $line .= $crlf;
- $length += $clen;
+ $line .= $self->{'crlf'};
+ $length += $self->{'clen'};
}
if ($self->{'foreach'}->{'count'} < 0) {
@@ -992,7 +967,7 @@ sub parse_line {
## If the line started out empty and we're not
## skipping from the start or the built up line is not empty
if ($startempty ||
- ($self->{'built'} ne $crlf && $self->{'built'} ne '')) {
+ ($self->{'built'} ne $self->{'crlf'} && $self->{'built'} ne '')) {
push(@{$self->{'lines'}}, $self->{'built'});
}
}
@@ -1018,7 +993,7 @@ sub parse_file {
}
if (!$status) {
- my($linenumber) = $self->line_number();
+ my($linenumber) = $self->get_line_number();
$errorString = "$input: line $linenumber:\n$errorString\n";
}
diff --git a/bin/MakeProjectCreator/modules/VC71WorkspaceCreator.pm b/bin/MakeProjectCreator/modules/VC71WorkspaceCreator.pm
index 8f9d499956e..1362e756fe2 100644
--- a/bin/MakeProjectCreator/modules/VC71WorkspaceCreator.pm
+++ b/bin/MakeProjectCreator/modules/VC71WorkspaceCreator.pm
@@ -26,9 +26,9 @@ use vars qw(@ISA);
sub pre_workspace {
my($self) = shift;
my($fh) = shift;
- my($crlf) = $self->crlf();
- print $fh "Microsoft Visual Studio Solution File, Format Version 8.00$crlf";
+ print $fh "Microsoft Visual Studio Solution File, Format Version 8.00" .
+ $self->crlf();
}
diff --git a/bin/MakeProjectCreator/modules/VC7WorkspaceCreator.pm b/bin/MakeProjectCreator/modules/VC7WorkspaceCreator.pm
index a1161200cd9..62d4e104360 100644
--- a/bin/MakeProjectCreator/modules/VC7WorkspaceCreator.pm
+++ b/bin/MakeProjectCreator/modules/VC7WorkspaceCreator.pm
@@ -43,9 +43,9 @@ sub workspace_file_name {
sub pre_workspace {
my($self) = shift;
my($fh) = shift;
- my($crlf) = $self->crlf();
- print $fh "Microsoft Visual Studio Solution File, Format Version 7.00$crlf";
+ print $fh "Microsoft Visual Studio Solution File, Format Version 7.00" .
+ $self->crlf();
}
@@ -123,7 +123,7 @@ sub write_comps {
## I hate to add yet another loop through all the projects, but
## we must have some way to map plain project names to guids.
my(%name_to_guid_map) = ();
- foreach my $project(sort @list) {
+ foreach my $project(@list) {
my($name, $deps, $guid) = @{$$pjs{$project}};
$name_to_guid_map{$name} = $guid;
}
diff --git a/bin/MakeProjectCreator/modules/WorkspaceCreator.pm b/bin/MakeProjectCreator/modules/WorkspaceCreator.pm
index 35e62855361..974943badf5 100644
--- a/bin/MakeProjectCreator/modules/WorkspaceCreator.pm
+++ b/bin/MakeProjectCreator/modules/WorkspaceCreator.pm
@@ -906,13 +906,14 @@ sub add_implicit_project_dependencies {
## append the dependency and remove the file in question from the
## project so that the next time around the foreach, we don't find it
## as a dependent on the one that we just modified.
- foreach my $key (sort keys %{$self->{'project_file_list'}}) {
- foreach my $ikey (keys %{$self->{'project_file_list'}}) {
+ my(@pflkeys) = keys %{$self->{'project_file_list'}};
+ foreach my $key (@pflkeys) {
+ foreach my $ikey (@pflkeys) {
if ($key ne $ikey &&
- (!defined $bidir{$ikey} ||
- !$self->array_contains($bidir{$ikey}, [$key])) &&
($self->{'project_file_list'}->{$key}->[1] eq
- $self->{'project_file_list'}->{$ikey}->[1])) {
+ $self->{'project_file_list'}->{$ikey}->[1]) &&
+ (!defined $bidir{$ikey} ||
+ !$self->array_contains($bidir{$ikey}, [$key]))) {
my(@over) = ();
if ($self->array_contains(
$self->{'project_file_list'}->{$key}->[2],
@@ -1276,9 +1277,6 @@ sub get_modified_workspace_name {
my($self) = shift;
my($name) = shift;
my($ext) = shift;
- my($pwd) = $self->getcwd();
- my($type) = $self->{'wctype'};
- my($wsname) = $self->get_workspace_name();
## If this is a per project workspace, then we should not
## modify the workspace name. It may overwrite another workspace
@@ -1287,6 +1285,10 @@ sub get_modified_workspace_name {
return "$name$ext";
}
+ my($pwd) = $self->getcwd();
+ my($type) = $self->{'wctype'};
+ my($wsname) = $self->get_workspace_name();
+
if (!defined $previous_workspace_name{$type}->{$pwd}) {
$previous_workspace_name{$type}->{$pwd} = $wsname;
$self->{'current_workspace_name'} = undef;
@@ -1318,10 +1320,9 @@ sub generate_recursive_input_list {
sub verify_build_ordering {
- my($self) = shift;
- my($projects) = $self->get_projects();
+ my($self) = shift;
- foreach my $project (@$projects) {
+ foreach my $project (@{$self->{'projects'}}) {
$self->get_validated_ordering($project, 1);
}
}
@@ -1339,7 +1340,7 @@ sub get_validated_ordering {
($name, $deps) = @{$$pjs{$project}};
if (defined $deps && $deps ne '') {
my($darr) = $self->create_array($deps);
- my($projects) = $self->get_projects();
+ my($projects) = $self->{'projects'};
foreach my $dep (@$darr) {
my($found) = 0;
## Avoid circular dependencies