diff options
Diffstat (limited to 'ACE/MPC/modules/VC6WorkspaceCreator.pm')
-rw-r--r-- | ACE/MPC/modules/VC6WorkspaceCreator.pm | 105 |
1 files changed, 105 insertions, 0 deletions
diff --git a/ACE/MPC/modules/VC6WorkspaceCreator.pm b/ACE/MPC/modules/VC6WorkspaceCreator.pm new file mode 100644 index 00000000000..714c7ce1673 --- /dev/null +++ b/ACE/MPC/modules/VC6WorkspaceCreator.pm @@ -0,0 +1,105 @@ +package VC6WorkspaceCreator; + +# ************************************************************ +# Description : A VC6 Workspace Creator +# Author : Chad Elliott +# Create Date : 5/13/2002 +# ************************************************************ + +# ************************************************************ +# Pragmas +# ************************************************************ + +use strict; + +use VC6ProjectCreator; +use WinWorkspaceBase; +use WorkspaceCreator; + +use vars qw(@ISA); +@ISA = qw(WinWorkspaceBase WorkspaceCreator); + +# ************************************************************ +# Subroutine Section +# ************************************************************ + + +sub compare_output { + #my $self = shift; + return 1; +} + + +sub workspace_file_extension { + #my $self = shift; + return '.dsw'; +} + + +sub pre_workspace { + my($self, $fh) = @_; + my $crlf = $self->crlf(); + + ## This identifies it as a Visual C++ file + print $fh 'Microsoft Developer Studio Workspace File, Format Version 6.00', $crlf; + + ## Optionally print the workspace comment + $self->print_workspace_comment($fh, + '#', $crlf, + '# $Id$', $crlf, + '#', $crlf, + '# This file was generated by MPC. Any changes made directly to', $crlf, + '# this file will be lost the next time it is generated.', $crlf, + '#', $crlf, + '# MPC Command:', $crlf, + '# ', $self->create_command_line_string($0, @ARGV), $crlf, $crlf); +} + + +sub write_comps { + my($self, $fh, $gen) = @_; + my $projects = $self->get_projects(); + my $pjs = $self->get_project_info(); + my $crlf = $self->crlf(); + + ## Sort the project so that they resulting file can be exactly + ## reproduced given the same list of projects. + foreach my $project (sort { $gen->file_sorter($a, $b) } @$projects) { + + ## Add the project name and project file information + print $fh "###############################################################################$crlf$crlf", + "Project: \"$$pjs{$project}->[0]\"=", $self->slash_to_backslash($project), + " - Package Owner=<4>$crlf$crlf", + "Package=<5>${crlf}{{{$crlf}}}$crlf$crlf", + "Package=<4>${crlf}{{{$crlf"; + + my $deps = $self->get_validated_ordering($project); + if (defined $$deps[0]) { + ## Add in the project dependencies + foreach my $dep (@$deps) { + print $fh " Begin Project Dependency$crlf", + " Project_Dep_Name $dep$crlf", + " End Project Dependency$crlf"; + } + } + + ## End the project section + print $fh "}}}$crlf$crlf"; + } +} + + +sub post_workspace { + my($self, $fh) = @_; + my $crlf = $self->crlf(); + + ## This text is always the same + print $fh "###############################################################################$crlf$crlf", + "Global:$crlf$crlf", + "Package=<5>${crlf}{{{$crlf}}}$crlf$crlf", + "Package=<3>${crlf}{{{$crlf}}}$crlf$crlf", + "###############################################################################$crlf$crlf"; +} + + +1; |