1 package BMakeProjectCreator
;
3 # ************************************************************
4 # Description : A BMake Project Creator
5 # Author : Chad Elliott
6 # Create Date : 2/03/2004
7 # ************************************************************
9 # ************************************************************
11 # ************************************************************
16 use BorlandProjectBase
;
20 @ISA = qw(MakeProjectBase BorlandProjectBase ProjectCreator);
22 # ************************************************************
24 # ************************************************************
26 my %names = ('cppdir' => 'source_files',
27 'rcdir' => 'resource_files');
29 # ************************************************************
31 # ************************************************************
34 my($self, $name) = @_;
36 if (defined $names{$name}) {
37 my %dirnames = ('.' => 1);
38 foreach my $file ($self->get_component_list($names{$name}, 1)) {
39 my $dirname = $self->mpc_dirname($file);
44 $dirname =~ s/\//\\/g
;
46 $dirnames{$dirname} = 1;
49 ## Sort the directories to ensure that '.' comes first
50 return join(';', sort keys %dirnames);
59 return '&$(__TRICK_BORLAND_MAKE__)&';
62 sub project_file_extension
{
68 sub get_dll_exe_template_input_file
{
74 sub get_lib_exe_template_input_file
{
80 sub get_lib_template_input_file
{
86 sub get_dll_template_input_file
{
95 ## Create the map of properties that we support.
98 ## Merge in properties from all base projects
99 foreach my $base (@ISA) {
100 my $func = $base . '::get_properties';
101 my $p = $self->$func();
102 foreach my $key (keys %$p) {
103 $$props{$key} = $$p{$key};