diff options
author | Abdullah Sowayan <sowayan@users.noreply.github.com> | 2010-02-24 20:20:21 +0000 |
---|---|---|
committer | Abdullah Sowayan <sowayan@users.noreply.github.com> | 2010-02-24 20:20:21 +0000 |
commit | 035b47c1a6985e2b884182ab0f3bb1afa714a48f (patch) | |
tree | 48d75721f242b7a0eb4398a65b672a152bdaa37f /ACE/MPC/modules/MakeProjectCreator.pm | |
parent | a3894e5127aa8cf1892e717ab30f02e053cdb482 (diff) | |
download | ATCD-035b47c1a6985e2b884182ab0f3bb1afa714a48f.tar.gz |
Diffstat (limited to 'ACE/MPC/modules/MakeProjectCreator.pm')
-rw-r--r-- | ACE/MPC/modules/MakeProjectCreator.pm | 105 |
1 files changed, 105 insertions, 0 deletions
diff --git a/ACE/MPC/modules/MakeProjectCreator.pm b/ACE/MPC/modules/MakeProjectCreator.pm new file mode 100644 index 00000000000..3c589fed6cc --- /dev/null +++ b/ACE/MPC/modules/MakeProjectCreator.pm @@ -0,0 +1,105 @@ +package MakeProjectCreator; + +# ************************************************************ +# Description : A Generic Make Project Creator +# Author : Chad Elliott +# Create Date : 2/18/2003 +# ************************************************************ + +# ************************************************************ +# Pragmas +# ************************************************************ + +use strict; + +use MakeProjectBase; +use ProjectCreator; + +use vars qw(@ISA); +@ISA = qw(MakeProjectBase ProjectCreator); + +# ************************************************************ +# Data Section +# ************************************************************ + +my %info = (Creator::cplusplus => {'dllexe' => 'makeexe', + 'dll' => 'makedll', + 'template' => 'make', + }, + Creator::csharp => {'dllexe' => 'make.net', + 'dll' => 'make.net', + 'template' => 'make.net', + }, + Creator::java => {'dllexe' => 'makeexe', + 'dll' => 'makedll', + 'template' => 'make', + }, + Creator::vb => {'dllexe' => 'make.net', + 'dll' => 'make.net', + 'template' => 'make.net', + }, + ); + +# ************************************************************ +# Subroutine Section +# ************************************************************ + +sub languageSupported { + return defined $info{$_[0]->get_language()}; +} + + +sub escape_spaces { + #my $self = shift; + return 1; +} + + +sub get_dll_exe_template_input_file { + return $info{$_[0]->get_language()}->{'dllexe'}; +} + + +sub get_dll_template_input_file { + return $info{$_[0]->get_language()}->{'dll'}; +} + + +sub get_template { + return $info{$_[0]->get_language()}->{'template'}; +} + +sub fill_value { + my($self, $name) = @_; + + if ($name eq 'compilers') { + ## The default compilers template variable value is determined by the + ## language and directly corresponds to a group of settings in the + ## .mpt file (make.net.mpt for csharp and makedll.mpt for all + ## others). + my $language = $self->get_language(); + if ($language eq Creator::java) { + return 'java'; + } + elsif ($language eq Creator::csharp) { + return 'gmcs'; + } + else { + return 'gcc'; + } + } + elsif ($name eq 'language') { + ## Allow the language to be available to the template. Certain + ## things are not used in make.mpd when the language is java. + return $self->get_language(); + } + elsif ($name eq 'main') { + ## The main is needed when generating the makefiles for use with gcj. + my @sources = $self->get_component_list('source_files', 1); + my $exename = $self->find_main_file(\@sources); + return $exename if (defined $exename); + } + + return undef; +} +1; |