package WixWorkspaceCreator; # ************************************************************ # Description : A Wix Workspace creator # Author : James H. Hill # Create Date : 6/23/2009 # ************************************************************ # ************************************************************ # Pragmas # ************************************************************ use strict; use WixProjectCreator; use WorkspaceCreator; use vars qw(@ISA); @ISA = qw(WorkspaceCreator); # ************************************************************ # Data Section # ************************************************************ # ************************************************************ # Subroutine Section # ************************************************************ sub workspace_file_extension { return '.wxs'; } sub workspace_file_name { my $self = shift; return $self->get_modified_workspace_name($self->get_workspace_name(), '.wxi'); } sub pre_workspace { my($self, $fh) = @_; my $crlf = $self->crlf(); my $name = $self->get_workspace_name(); ## Begin the project definition for the workspace print $fh '', $crlf, '', $crlf; } sub write_comps { my($self, $fh) = @_; my $crlf = $self->crlf(); # print the target for clean foreach my $project ($self->sort_dependencies($self->get_projects())) { print $fh " ", $crlf; } } sub post_workspace { my($self, $fh) = @_; my $info = $self->get_project_info(); my $crlf = $self->crlf(); # Create a component group consisting of all the projects. print $fh $crlf, ' ', $crlf, ' ', $crlf; foreach my $project ($self->sort_dependencies($self->get_projects())) { print $fh ' ', $crlf; } print $fh ' ', $crlf, ' ', $crlf, '', $crlf; } 1;