diff options
author | elliott_c <ocielliottc@users.noreply.github.com> | 2004-08-11 12:47:34 +0000 |
---|---|---|
committer | elliott_c <ocielliottc@users.noreply.github.com> | 2004-08-11 12:47:34 +0000 |
commit | f1b109dab840cbccd5875f186890a056815e86fd (patch) | |
tree | 467f4b18373679f274ff5bf538f75ca15975d2da | |
parent | a622851adb21df46d3ea12adfe763b6a6462d84e (diff) | |
download | MPC-f1b109dab840cbccd5875f186890a056815e86fd.tar.gz |
ChangeLogTag: Wed Aug 11 07:45:11 2004 Chad Elliott <elliott_c@ociweb.com>
-rw-r--r-- | ChangeLog | 31 | ||||
-rw-r--r-- | modules/AutomakeProjectCreator.pm | 3 | ||||
-rw-r--r-- | modules/AutomakeWorkspaceCreator.pm | 3 | ||||
-rw-r--r-- | modules/BMakeProjectCreator.pm | 3 | ||||
-rw-r--r-- | modules/BMakeWorkspaceCreator.pm | 2 | ||||
-rw-r--r-- | modules/CBXProjectCreator.pm | 1 | ||||
-rw-r--r-- | modules/Creator.pm | 5 | ||||
-rw-r--r-- | modules/DirectoryManager.pm | 14 | ||||
-rw-r--r-- | modules/Driver.pm | 12 | ||||
-rw-r--r-- | modules/GHSWorkspaceCreator.pm | 1 | ||||
-rw-r--r-- | modules/HTMLProjectCreator.pm | 2 | ||||
-rw-r--r-- | modules/MakeWorkspaceCreator.pm | 4 | ||||
-rw-r--r-- | modules/NMakeWorkspaceCreator.pm | 2 | ||||
-rw-r--r-- | modules/ProjectCreator.pm | 16 | ||||
-rw-r--r-- | modules/SLEProjectCreator.pm | 1 | ||||
-rw-r--r-- | modules/TemplateParser.pm | 4 | ||||
-rw-r--r-- | modules/WorkspaceCreator.pm | 65 |
17 files changed, 71 insertions, 98 deletions
@@ -1,3 +1,26 @@ +Wed Aug 11 07:45:11 2004 Chad Elliott <elliott_c@ociweb.com> + + * modules/AutomakeProjectCreator.pm: + * modules/AutomakeWorkspaceCreator.pm: + * modules/BMakeProjectCreator.pm: + * modules/BMakeWorkspaceCreator.pm: + * modules/CBXProjectCreator.pm: + * modules/Creator.pm: + * modules/DirectoryManager.pm: + * modules/Driver.pm: + * modules/GHSWorkspaceCreator.pm: + * modules/HTMLProjectCreator.pm: + * modules/MakeWorkspaceCreator.pm: + * modules/NMakeWorkspaceCreator.pm: + * modules/ProjectCreator.pm: + * modules/SLEProjectCreator.pm: + * modules/TemplateParser.pm: + * modules/WorkspaceCreator.pm: + + Encapsulated the VMS changes related to dirname into a single + method (mpc_dirname) that gets called instead dirname. Thanks to + Martin Corino <mcorino@remedy.nl> for verifying my changes. + Wed Aug 11 10:08:12 UTC 2004 Johnny Willemsen <jwillemsen@remedy.nl> * templates/bmake.mpd: @@ -6,10 +29,10 @@ Wed Aug 11 10:08:12 UTC 2004 Johnny Willemsen <jwillemsen@remedy.nl> Tue Aug 10 17:10:38 2004 J.T. Conklin <jtc@acorntoolworks.com> - * automake.mpd: - Add initial support for automake conditionals with <%requires%> - and <%avoids%>. - Remove extra spaces before backslashes in _CPPFLAGS. + * automake.mpd: + Add initial support for automake conditionals with <%requires%> + and <%avoids%>. + Remove extra spaces before backslashes in _CPPFLAGS. Tue Aug 10 09:10:36 2004 Chad Elliott <elliott_c@ociweb.com> diff --git a/modules/AutomakeProjectCreator.pm b/modules/AutomakeProjectCreator.pm index 20cc04f2..0be63e32 100644 --- a/modules/AutomakeProjectCreator.pm +++ b/modules/AutomakeProjectCreator.pm @@ -11,7 +11,6 @@ package AutomakeProjectCreator; # ************************************************************ use strict; -use File::Basename; use ProjectCreator; @@ -58,7 +57,7 @@ sub fill_value { my($comps) = $$names{$name}; foreach my $key (keys %$comps) { foreach my $item (@{$$comps{$key}}) { - my($dname) = $self->relative(dirname($item)); + my($dname) = $self->relative($self->mpc_dirname($item)); if ($dname ne '.' && $dname !~ /^\.\.\//) { $vpath{$dname} = 1; } diff --git a/modules/AutomakeWorkspaceCreator.pm b/modules/AutomakeWorkspaceCreator.pm index b4d233b8..fd672bd7 100644 --- a/modules/AutomakeWorkspaceCreator.pm +++ b/modules/AutomakeWorkspaceCreator.pm @@ -11,7 +11,6 @@ package AutomakeWorkspaceCreator; # ************************************************************ use strict; -use File::Basename; use AutomakeProjectCreator; use WorkspaceCreator; @@ -95,7 +94,7 @@ sub write_comps { ## Since we're consolidating all the project files into one workspace ## Makefile.am per directory level, be sure to add that Makefile.am ## entry at each level there's a project dependency. - my($dep_dir) = dirname($dep); + my($dep_dir) = $self->mpc_dirname($dep); if (!defined $proj_dir_seen{$dep_dir}) { $proj_dir_seen{$dep_dir} = 1; ## If there are directory levels between project-containing diff --git a/modules/BMakeProjectCreator.pm b/modules/BMakeProjectCreator.pm index 1ac360a1..640ca75c 100644 --- a/modules/BMakeProjectCreator.pm +++ b/modules/BMakeProjectCreator.pm @@ -11,7 +11,6 @@ package BMakeProjectCreator; # ************************************************************ use strict; -use File::Basename; use ProjectCreator; @@ -51,7 +50,7 @@ sub fill_value { if (defined $names{$name}) { my(%dirnames) = (); foreach my $file ($self->get_component_list($names{$name}, 1)) { - my($dirname) = dirname($file); + my($dirname) = $self->mpc_dirname($file); if ($dirname eq '') { $dirname = '.'; } diff --git a/modules/BMakeWorkspaceCreator.pm b/modules/BMakeWorkspaceCreator.pm index f21fb62d..6fce02cc 100644 --- a/modules/BMakeWorkspaceCreator.pm +++ b/modules/BMakeWorkspaceCreator.pm @@ -71,7 +71,7 @@ sub write_project_targets { my($crlf) = $self->crlf(); foreach my $project (@$list) { - my($dir) = dirname($project); + my($dir) = $self->mpc_dirname($project); my($chdir) = 0; my($back) = ''; diff --git a/modules/CBXProjectCreator.pm b/modules/CBXProjectCreator.pm index 55eee297..26f9ed84 100644 --- a/modules/CBXProjectCreator.pm +++ b/modules/CBXProjectCreator.pm @@ -13,7 +13,6 @@ package CBXProjectCreator; use strict; use ProjectCreator; -use File::Basename; use vars qw(@ISA); @ISA = qw(ProjectCreator); diff --git a/modules/Creator.pm b/modules/Creator.pm index a8a86df5..e9bf1e8c 100644 --- a/modules/Creator.pm +++ b/modules/Creator.pm @@ -397,13 +397,12 @@ sub generate_default_file_list { my($recurse) = shift; my($dh) = new FileHandle(); my(@files) = (); - my($is_vms) = ( $^O eq 'VMS' ); if (opendir($dh, $dir)) { my($need_dir) = ($dir ne '.'); my($skip) = 0; foreach my $file (grep(!/^\.\.?$/, readdir($dh))) { - if ( $is_vms && $file =~ /\.dir$/ ) { + if ($^O eq 'VMS') { $file =~ s/\.dir$//; } ## Prefix each file name with the directory only if it's not '.' @@ -497,7 +496,7 @@ sub extension_recursive_input_list { if (opendir($fh, $dir)) { foreach my $file (grep(!/^\.\.?$/, readdir($fh))) { - if ( $^O eq 'VMS' && $file =~ /\.dir$/ ) { + if ($^O eq 'VMS') { $file =~ s/\.dir$//; } my($skip) = 0; diff --git a/modules/DirectoryManager.pm b/modules/DirectoryManager.pm index 933158ee..8e815738 100644 --- a/modules/DirectoryManager.pm +++ b/modules/DirectoryManager.pm @@ -11,6 +11,12 @@ package DirectoryManager; # ************************************************************ use strict; +use File::Basename; + +if ($^O eq 'VMS') { + require VMS::Filespec; + import VMS::Filespec qw(unixify); +} # ************************************************************ # Data Section @@ -77,6 +83,14 @@ sub getstartdir { return $start; } +sub mpc_dirname { + my($self) = shift; + my($dir) = shift; + return ($^O ne 'VMS' ? File::Basename::dirname($dir) : + unixify(File::Basename::dirname($dir))); +} + + # ************************************************************ # Virtual Methods To Be Overridden # ************************************************************ diff --git a/modules/Driver.pm b/modules/Driver.pm index 7877bef0..66310137 100644 --- a/modules/Driver.pm +++ b/modules/Driver.pm @@ -13,10 +13,6 @@ package Driver; use strict; use File::Basename; -if ( $^O eq 'VMS' ) { - require VMS::Filespec; - import VMS::Filespec qw(unixify); -} use Options; use Parser; use Version; @@ -312,13 +308,7 @@ sub run { $options->{'genins'}, $options->{'into'}); if ($base ne $file) { - my($dir) = ''; - if ( $^O eq 'VMS' ) { - $dir = ($base eq '' ? $file : unixify(dirname($file))); - } else { - $dir = ($base eq '' ? $file : dirname($file)); - - } + my($dir) = ($base eq '' ? $file : $self->mpc_dirname($file)); if (!$creator->cd($dir)) { $self->error("Unable to change to directory: $dir"); $status++; diff --git a/modules/GHSWorkspaceCreator.pm b/modules/GHSWorkspaceCreator.pm index 46db194b..d23ccb3e 100644 --- a/modules/GHSWorkspaceCreator.pm +++ b/modules/GHSWorkspaceCreator.pm @@ -11,7 +11,6 @@ package GHSWorkspaceCreator; # ************************************************************ use strict; -use File::Basename; use GHSProjectCreator; use WorkspaceCreator; diff --git a/modules/HTMLProjectCreator.pm b/modules/HTMLProjectCreator.pm index fb59901e..02caea59 100644 --- a/modules/HTMLProjectCreator.pm +++ b/modules/HTMLProjectCreator.pm @@ -84,7 +84,7 @@ sub fill_value { $value = []; for(my $i = 0; $i <= $#nodes; ++$i) { my($file) = $nodes[$i]->[1]; - my($dir) = dirname($file); + my($dir) = $self->mpc_dirname($file); my($base) = basename($file); ## Relative paths do not work at all in a web browser diff --git a/modules/MakeWorkspaceCreator.pm b/modules/MakeWorkspaceCreator.pm index bac7c865..054fd837 100644 --- a/modules/MakeWorkspaceCreator.pm +++ b/modules/MakeWorkspaceCreator.pm @@ -79,7 +79,7 @@ sub write_comps { ## Print out all other targets here print $fh "$crlf$crlf@targets:$crlf"; foreach my $project (@list) { - my($dname) = dirname($project); + my($dname) = $self->mpc_dirname($project); print $fh "\t\@" . ($dname ne '.' ? "cd $dname; " : '') . "\$(MAKE) PWD=`pwd` -f " . @@ -89,7 +89,7 @@ sub write_comps { ## Print out each target separately foreach my $project (@list) { - my($dname) = dirname($project); + my($dname) = $self->mpc_dirname($project); print $fh $crlf, '.PHONY: ', $$pjs{$project}->[0], $crlf, $$pjs{$project}->[0], ':'; if (defined $targnum{$project}) { diff --git a/modules/NMakeWorkspaceCreator.pm b/modules/NMakeWorkspaceCreator.pm index a7dbf2d7..589f956e 100644 --- a/modules/NMakeWorkspaceCreator.pm +++ b/modules/NMakeWorkspaceCreator.pm @@ -74,7 +74,7 @@ sub write_project_targets { my($crlf) = $self->crlf(); foreach my $project (@$list) { - my($dir) = dirname($project); + my($dir) = $self->mpc_dirname($project); my($chdir) = 0; my($back) = ''; diff --git a/modules/ProjectCreator.pm b/modules/ProjectCreator.pm index eadfb524..8748cb0b 100644 --- a/modules/ProjectCreator.pm +++ b/modules/ProjectCreator.pm @@ -15,10 +15,6 @@ use FileHandle; use File::Path; use File::Compare; use File::Basename; -if ( $^O eq 'VMS' ) { - require VMS::Filespec; - import VMS::Filespec qw(unixify); -} use Creator; use TemplateInputReader; @@ -1624,7 +1620,7 @@ sub add_generated_files { foreach my $key (keys %{$$names{$name}}) { push(@all, @{$$names{$name}->{$key}}); foreach my $file (@{$$names{$name}->{$key}}) { - $dircomp{dirname($file)} = $key; + $dircomp{$self->mpc_dirname($file)} = $key; } } } @@ -1642,7 +1638,7 @@ sub add_generated_files { ## If we have files to add, make sure we add them to a group ## that has the same directory location as the files we're adding. if ($#oktoadd >= 0) { - my($key) = $dircomp{dirname($oktoadd[0])}; + my($key) = $dircomp{$self->mpc_dirname($oktoadd[0])}; if (!defined $key) { $key = $self->get_default_element_name(); } @@ -2952,13 +2948,7 @@ sub write_output_file { } my($fh) = new FileHandle(); - my($dir) = ''; - if ( $^O eq 'VMS' ) { - $dir = unixify(dirname($name)); - } - else { - $dir = dirname($name); - } + my($dir) = $self->mpc_dirname($name); if ($dir ne '.') { mkpath($dir, 0, 0777); diff --git a/modules/SLEProjectCreator.pm b/modules/SLEProjectCreator.pm index ca60fe4f..934e0205 100644 --- a/modules/SLEProjectCreator.pm +++ b/modules/SLEProjectCreator.pm @@ -13,7 +13,6 @@ package SLEProjectCreator; use strict; use ProjectCreator; -use File::Basename; use vars qw(@ISA); @ISA = qw(ProjectCreator); diff --git a/modules/TemplateParser.pm b/modules/TemplateParser.pm index bc0d71db..1d59bfbd 100644 --- a/modules/TemplateParser.pm +++ b/modules/TemplateParser.pm @@ -96,7 +96,7 @@ sub basename { } -sub dirname { +sub tp_dirname { my($self) = shift; my($file) = shift; for(my $i = length($file) - 1; $i != 0; --$i) { @@ -686,7 +686,7 @@ sub handle_dirname { if (!$self->{'if_skip'}) { $self->append_current( - $self->dirname($self->get_value_with_default($name))); + $self->tp_dirname($self->get_value_with_default($name))); } } diff --git a/modules/WorkspaceCreator.pm b/modules/WorkspaceCreator.pm index 1c1e577b..100e3b56 100644 --- a/modules/WorkspaceCreator.pm +++ b/modules/WorkspaceCreator.pm @@ -15,10 +15,6 @@ use FileHandle; use File::Path; use File::Compare; use File::Basename; -if ( $^O eq 'VMS' ) { - require VMS::Filespec; - import VMS::Filespec qw(unixify); -} use Creator; use Options; @@ -282,11 +278,7 @@ sub aggregated_workspace { $self->{'handled_scopes'}->{$aggregated} = undef; $self->set_line_number(0); $self->{$self->{'type_check'}} = 0; - if ( $^O eq 'VMS' ) { - $self->{'scoped_basedir'} = unixify(dirname($file)); - } else { - $self->{'scoped_basedir'} = dirname($file); - } + $self->{'scoped_basedir'} = $self->mpc_dirname($file); while(<$fh>) { my($line) = $self->preprocess_line($fh, $_); @@ -446,11 +438,7 @@ sub handle_scoped_unknown { if ($file =~ /\.mpc$/) { my($exc) = $file; do { - if ( $^O eq 'VMS' ) { - $exc = unixify(dirname($exc)); - } else { - $exc = dirname($exc); - } + $exc = $self->mpc_dirname($exc); $remove{$exc} = 1; } while($exc ne '.' && $exc !~ /[a-z]:[\/\\]/i); } @@ -536,28 +524,14 @@ sub remove_duplicate_projects { my($list) = shift; my($count) = scalar(@$list); - if ( $^O eq 'VMS' ) { - for(my $i = 0; $i < $count; ++$i) { - my($file) = $$list[$i]; - foreach my $inner (@$list) { - if ($file ne $inner && $file eq unixify(dirname($inner)) && ! -d $inner) { - splice(@$list, $i, 1); - --$count; - --$i; - last; - } - } - } - } else { - for(my $i = 0; $i < $count; ++$i) { - my($file) = $$list[$i]; - foreach my $inner (@$list) { - if ($file ne $inner && $file eq dirname($inner) && ! -d $inner) { - splice(@$list, $i, 1); - --$count; - --$i; - last; - } + for(my $i = 0; $i < $count; ++$i) { + my($file) = $$list[$i]; + foreach my $inner (@$list) { + if ($file ne $inner && $file eq $self->mpc_dirname($inner) && ! -d $inner) { + splice(@$list, $i, 1); + --$count; + --$i; + last; } } } @@ -697,8 +671,8 @@ sub write_workspace { if (defined $names{$name}) { ++$duplicates; $self->error("Duplicate case-insensitive project '$name'. " . - "Look in " . dirname($project) . " and " . - dirname($names{$name}) . + "Look in " . $self->mpc_dirname($project) . " and " . + $self->mpc_dirname($names{$name}) . " for project name conflicts."); } else { @@ -739,12 +713,7 @@ sub write_workspace { if (!$abort_creation) { my($fh) = new FileHandle(); - my($dir) = ''; - if ( $^O eq 'VMS' ) { - $dir = unixify(dirname($name)); - } else { - $dir = dirname($name); - } + my($dir) = $self->mpc_dirname($name); ## Verify and possibly modify the dependencies if ($addfile) { @@ -965,13 +934,7 @@ sub generate_project_files { foreach my $ofile (@{$self->{'project_files'}}) { if (!$self->excluded($ofile)) { my($file) = $ofile; - my($dir) = ''; - if ( $^O eq 'VMS' ) { - $dir = unixify(dirname($file)); - } - else { - $dir = dirname($file); - } + my($dir) = $self->mpc_dirname($file); my($restore) = 0; if (defined $self->{'scoped_assign'}->{$ofile}) { |