From 87861b53aca3b56c886c04ca32615e802a0d4114 Mon Sep 17 00:00:00 2001 From: elliott_c Date: Thu, 17 Apr 2003 16:48:23 +0000 Subject: ChangeLogTag: Thu Apr 17 11:45:51 2003 Chad Elliott --- ChangeLog | 72 ++++++++++------ bin/MakeProjectCreator/USAGE | 4 +- bin/MakeProjectCreator/modules/Driver.pm | 6 +- .../modules/VC71ProjectCreator.pm | 29 +++++++ .../modules/VC71WorkspaceCreator.pm | 79 ++++++++++++++++++ .../modules/VC7ProjectCreator.pm | 17 ++++ .../modules/VC7WorkspaceCreator.pm | 95 ++++++++++++++-------- bin/MakeProjectCreator/templates/vc7.mpd | 4 +- bin/mpc.pl | 1 + bin/mwc.pl | 1 + 10 files changed, 243 insertions(+), 65 deletions(-) create mode 100644 bin/MakeProjectCreator/modules/VC71ProjectCreator.pm create mode 100644 bin/MakeProjectCreator/modules/VC71WorkspaceCreator.pm diff --git a/ChangeLog b/ChangeLog index cc1d1fe5b66..c34c24dd913 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,40 +1,60 @@ +Thu Apr 17 11:45:51 2003 Chad Elliott + + * bin/MakeProjectCreator/modules/Driver.pm: + + Fixed a usage of undefined reference. + + * bin/MakeProjectCreator/USAGE: + * bin/MakeProjectCreator/modules/VC71ProjectCreator.pm: + * bin/MakeProjectCreator/modules/VC71WorkspaceCreator.pm: + * bin/MakeProjectCreator/modules/VC7ProjectCreator.pm: + * bin/MakeProjectCreator/modules/VC7WorkspaceCreator.pm: + * bin/MakeProjectCreator/templates/vc7.mpd: + * bin/mpc.pl: + * bin/mwc.pl: + + Visual Studio .NET 7.1 is not 100% compatible with 7.0. So in + order to avoid requiring the user to generate projects for 7.0 and + then converting them, a new type has been added that generates + projects that are directly compatible with 7.1. + Thu Apr 17 15:32:42 UTC 2003 Don Hinton - * ace/Configuration.h: Made NULL_String public instead of protected - member variable. + * ace/Configuration.h: Made NULL_String public instead of protected + member variable. Thu Apr 17 08:23:19 2003 Ossama Othman - * ace/Local_Name_Space.h (ACE_NS_String): - * ace/Local_Name_Space.cpp (ACE_NS_String): - * ace/Local_Name_Space_T.cpp (shared_rebind_i): - * ace/Name_Request_Reply.h: - * ace/Name_Request_Reply.cpp: - * ace/Remote_Name_Space.cpp: - * netsvcs/lib/Name_Handler.cpp: + * ace/Local_Name_Space.h (ACE_NS_String): + * ace/Local_Name_Space.cpp (ACE_NS_String): + * ace/Local_Name_Space_T.cpp (shared_rebind_i): + * ace/Name_Request_Reply.h: + * ace/Name_Request_Reply.cpp: + * ace/Remote_Name_Space.cpp: + * netsvcs/lib/Name_Handler.cpp: - The underlying string is now an ACE_WCHAR_T instead of an - ACE_USHORT16. Not all platforms represent wide characters with - 16 bit unsigned integers. Adjusted all members, return types - and parameters accordingly. This change was prompted by the - consistency fixes made to ace/Basic_Types.h the "Wed Apr 16 - 13:35:34 2003 Ossama Othman " ChangeLog - entry. + The underlying string is now an ACE_WCHAR_T instead of an + ACE_USHORT16. Not all platforms represent wide characters with + 16 bit unsigned integers. Adjusted all members, return types + and parameters accordingly. This change was prompted by the + consistency fixes made to ace/Basic_Types.h the "Wed Apr 16 + 13:35:34 2003 Ossama Othman " ChangeLog + entry. - Use rep() instead of ushort_rep() when copying an - ACE_NS_WString. The latter only works for platforms with 16 bit - wide characters. + Use rep() instead of ushort_rep() when copying an + ACE_NS_WString. The latter only works for platforms with 16 bit + wide characters. - * ace/Name_Request_Reply.h: + * ace/Name_Request_Reply.h: - No need to include "ace/Time_Value.h" and "ace/SString.h". The - latter isn't need at all, and a forward declaration for - ACE_Time_Value is sufficient. + No need to include "ace/Time_Value.h" and "ace/SString.h". The + latter isn't need at all, and a forward declaration for + ACE_Time_Value is sufficient. - * ace/Name_Request_Reply.cpp: + * ace/Name_Request_Reply.cpp: - Include "ace/Time_Value.h" to pull in ACE_Time_Value class - declaration. + Include "ace/Time_Value.h" to pull in ACE_Time_Value class + declaration. Thu Apr 17 13:26:23 2003 Simon McQueen diff --git a/bin/MakeProjectCreator/USAGE b/bin/MakeProjectCreator/USAGE index 36fc3c15dcb..3b211acd1ec 100644 --- a/bin/MakeProjectCreator/USAGE +++ b/bin/MakeProjectCreator/USAGE @@ -16,7 +16,7 @@ Usage: mwc.pl [-global ] [-include ] [-recurse] [-value_template ] [-value_project ] [-type ] + va4 | vc6 | vc7 | vc71>] [files] -base Add as a base project to each generated @@ -112,7 +112,7 @@ Usage: mpc.pl [-global ] [-include ] [-recurse] [-value_template ] [-value_project ] [-type ] + va4 | vc6 | vc7 | vc71>] [files] -base Add as a base project to each generated diff --git a/bin/MakeProjectCreator/modules/Driver.pm b/bin/MakeProjectCreator/modules/Driver.pm index cf53cc79fff..40b3785396d 100644 --- a/bin/MakeProjectCreator/modules/Driver.pm +++ b/bin/MakeProjectCreator/modules/Driver.pm @@ -268,8 +268,10 @@ sub run { if ($value =~ /\$(\w+)(.*)?/) { my($var) = $1; my($extra) = $2; - $options->{'relative'}->{$key} = - $options->{'relative'}->{$var} . $extra; + $options->{'relative'}->{$key} = + (defined $options->{'relative'}->{$var} ? + $options->{'relative'}->{$var} : '') . + (defined $extra ? $extra : ''); } else { $options->{'relative'}->{$key} = $value; diff --git a/bin/MakeProjectCreator/modules/VC71ProjectCreator.pm b/bin/MakeProjectCreator/modules/VC71ProjectCreator.pm new file mode 100644 index 00000000000..14d92cba3a2 --- /dev/null +++ b/bin/MakeProjectCreator/modules/VC71ProjectCreator.pm @@ -0,0 +1,29 @@ +package VC71ProjectCreator; + +# ************************************************************ +# Description : A VC7.1 Project Creator +# Author : Chad Elliott +# Create Date : 4/17/2003 +# ************************************************************ + +# ************************************************************ +# Pragmas +# ************************************************************ + +use strict; + +use VC7ProjectCreator; + +use vars qw(@ISA); +@ISA = qw(VC7ProjectCreator); + +# ************************************************************ +# Subroutine Section +# ************************************************************ + +sub get_vcversion { + #my($self) = shift; + return '7.10'; +} + +1; diff --git a/bin/MakeProjectCreator/modules/VC71WorkspaceCreator.pm b/bin/MakeProjectCreator/modules/VC71WorkspaceCreator.pm new file mode 100644 index 00000000000..3d15b1ba472 --- /dev/null +++ b/bin/MakeProjectCreator/modules/VC71WorkspaceCreator.pm @@ -0,0 +1,79 @@ +package VC71WorkspaceCreator; + +# ************************************************************ +# Description : A VC7.1 Workspace Creator +# Author : Chad Elliott +# Create Date : 4/17/2003 +# ************************************************************ + +# ************************************************************ +# Pragmas +# ************************************************************ + +use strict; + +use VC71ProjectCreator; +use VC7WorkspaceCreator; + +use vars qw(@ISA); +@ISA = qw(VC7WorkspaceCreator); + +# ************************************************************ +# Subroutine Section +# ************************************************************ + + +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"; +} + + +sub print_inner_project { + my($self) = shift; + my($fh) = shift; + my($gen) = shift; + my($pguid) = shift; + my($deps) = shift; + + if (defined $deps && $deps ne '') { + my($crlf) = $self->crlf(); + print $fh "\tProjectSection(ProjectDependencies) = postProject$crlf"; + my($darr) = $self->create_array($deps); + foreach my $dep (@$darr) { + my($val) = $gen->specific_lookup($dep); + if (defined $val && $pguid ne $val) { + print $fh "\t\t{$val} = {$val}$crlf"; + } + } + print $fh "\tEndProjectSection$crlf"; + } +} + + +sub print_configs { + my($self) = shift; + my($fh) = shift; + my($configs) = shift; + my($crlf) = $self->crlf(); + foreach my $key (sort keys %$configs) { + print $fh "\t\t$key = $key$crlf"; + } +} + + +sub print_dependencies { + #my($self) = shift; + #my($fh) = shift; + #my($gen) = shift; + #my($list) = shift; + #my($pjs) = shift; + + ## These are done in the print_inner_project method +} + + +1; diff --git a/bin/MakeProjectCreator/modules/VC7ProjectCreator.pm b/bin/MakeProjectCreator/modules/VC7ProjectCreator.pm index 30191fd7cbc..8564ac3c81a 100644 --- a/bin/MakeProjectCreator/modules/VC7ProjectCreator.pm +++ b/bin/MakeProjectCreator/modules/VC7ProjectCreator.pm @@ -22,6 +22,14 @@ use vars qw(@ISA); # Subroutine Section # ************************************************************ +sub file_sorter { + my($self) = shift; + my($left) = shift; + my($right) = shift; + return lc($left) cmp lc($right); +} + + sub specific_lookup { my($self) = shift; my($tag) = shift; @@ -56,6 +64,12 @@ sub crlf { } +sub get_vcversion { + #my($self) = shift; + return '7.00'; +} + + sub fill_value { my($self) = shift; my($name) = shift; @@ -67,6 +81,9 @@ sub fill_value { $self->get_current_input(), $self->getcwd()); } + elsif ($name eq 'vcversion') { + $value = $self->get_vcversion(); + } return $value; } diff --git a/bin/MakeProjectCreator/modules/VC7WorkspaceCreator.pm b/bin/MakeProjectCreator/modules/VC7WorkspaceCreator.pm index da47350d5bc..c0051d45a19 100644 --- a/bin/MakeProjectCreator/modules/VC7WorkspaceCreator.pm +++ b/bin/MakeProjectCreator/modules/VC7WorkspaceCreator.pm @@ -44,6 +44,57 @@ sub pre_workspace { } +sub print_inner_project { + #my($self) = shift; + #my($fh) = shift; + #my($gen) = shift; + #my($pguid) = shift; + #my($deps) = shift; +} + + +sub print_configs { + my($self) = shift; + my($fh) = shift; + my($configs) = shift; + my($crlf) = $self->crlf(); + my($count) = 0; + + foreach my $key (sort keys %$configs) { + print $fh "\t\tConfigName.$count = $key$crlf"; + $count++; + } +} + + +sub print_dependencies { + my($self) = shift; + my($fh) = shift; + my($gen) = shift; + my($list) = shift; + my($pjs) = shift; + my($crlf) = $self->crlf(); + + ## Project Dependencies + print $fh "\tGlobalSection(ProjectDependencies) = postSolution$crlf"; + foreach my $project (@$list) { + my($name, $deps, $pguid) = @{$$pjs{$project}}; + if (defined $deps && $deps ne '') { + my($darr) = $self->create_array($deps); + my($i) = 0; + foreach my $dep (@$darr) { + my($val) = $gen->specific_lookup($dep); + if (defined $val && $pguid ne $val) { + print $fh "\t\t{$pguid}.$i = {$val}$crlf"; + $i++; + } + } + } + } + print $fh "\tEndGlobalSection$crlf"; +} + + sub write_comps { my($self) = shift; my($fh) = shift; @@ -58,13 +109,13 @@ sub write_comps { ## Project Information foreach my $project (sort @list) { - my($pi) = $$pjs{$project}; - my($name, $deps, $pguid) = @$pi; + my($name, $deps, $pguid) = @{$$pjs{$project}}; ## Convert all /'s to \ my($cpy) = $self->slash_to_backslash($project); - print $fh "Project(\"{$guid}\") = \"$name\", \"$cpy\", \"{$pguid}\"$crlf" . - "EndProject$crlf"; + print $fh "Project(\"{$guid}\") = \"$name\", \"$cpy\", \"{$pguid}\"$crlf"; + $self->print_inner_project($fh, $gen, $pguid, $deps); + print $fh "EndProject$crlf"; } ## Project Configurations @@ -73,44 +124,22 @@ sub write_comps { my(%configs) = (); foreach my $project (@list) { - my($pi) = $$pjs{$project}; - my($name, $deps, $pguid, @cfgs) = @$pi; + my($name, $deps, $pguid, @cfgs) = @{$$pjs{$project}}; foreach my $cfg (@cfgs) { $cfg =~ s/\|.*//; $configs{$cfg} = 1; } } - my($count) = 0; - foreach my $key (sort keys %configs) { - print $fh "\t\tConfigName.$count = $key$crlf"; - $count++; - } + $self->print_configs($fh, \%configs); + print $fh "\tEndGlobalSection$crlf"; - ## Project Dependencies - print $fh "\tEndGlobalSection$crlf" . - "\tGlobalSection(ProjectDependencies) = postSolution$crlf"; - foreach my $project (@list) { - my($pi) = $$pjs{$project}; - my($name, $deps, $pguid) = @$pi; - if (defined $deps && $deps ne '') { - my($darr) = $self->create_array($deps); - my($i) = 0; - foreach my $dep (@$darr) { - my($val) = $gen->specific_lookup($dep); - if (defined $val && $pguid ne $val) { - print $fh "\t\t{$pguid}.$i = {$val}$crlf"; - $i++; - } - } - } - } - print $fh "\tEndGlobalSection$crlf" . - "\tGlobalSection(ProjectConfiguration) = postSolution$crlf"; + ## Print dependencies if there are any + $self->print_dependencies($fh, $gen, \@list, $pjs); ## Project Configuration Names + print $fh "\tGlobalSection(ProjectConfiguration) = postSolution$crlf"; foreach my $project (sort @list) { - my($pi) = $$pjs{$project}; - my($name, $deps, $pguid, @cfgs) = @$pi; + my($name, $deps, $pguid, @cfgs) = @{$$pjs{$project}}; foreach my $cfg (sort @cfgs) { my($c) = $cfg; $c =~ s/\|.*//; diff --git a/bin/MakeProjectCreator/templates/vc7.mpd b/bin/MakeProjectCreator/templates/vc7.mpd index cae5d385dfd..a507d174c2a 100644 --- a/bin/MakeProjectCreator/templates/vc7.mpd +++ b/bin/MakeProjectCreator/templates/vc7.mpd @@ -1,7 +1,7 @@ -" encoding = "<%encoding("Windows-1252")%>"?> +" encoding="<%encoding("Windows-1252")%>"?>