Subversion Repositories gelsvn

Rev

Rev 217 | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 217 Rev 259
1
package VC7ProjectCreator;
1
package VC7ProjectCreator;
2
 
2
 
3
# ************************************************************
3
# ************************************************************
4
# Description   : A VC7 Project Creator
4
# Description   : A VC7 Project Creator
5
# Author        : Chad Elliott
5
# Author        : Chad Elliott
6
# Create Date   : 4/23/2002
6
# Create Date   : 4/23/2002
7
# ************************************************************
7
# ************************************************************
8
 
8
 
9
# ************************************************************
9
# ************************************************************
10
# Pragmas
10
# Pragmas
11
# ************************************************************
11
# ************************************************************
12
 
12
 
13
use strict;
13
use strict;
14
 
14
 
15
use GUID;
15
use GUID;
16
use ProjectCreator;
16
use ProjectCreator;
17
use VCProjectBase;
17
use VCProjectBase;
18
use XMLProjectBase;
18
use XMLProjectBase;
19
 
19
 
20
use vars qw(@ISA);
20
use vars qw(@ISA);
21
@ISA = qw(XMLProjectBase VCProjectBase ProjectCreator);
21
@ISA = qw(XMLProjectBase VCProjectBase ProjectCreator);
22
 
22
 
23
# ************************************************************
23
# ************************************************************
24
# Data Section
24
# Data Section
25
# ************************************************************
25
# ************************************************************
26
 
26
 
27
my(%info) = ('cplusplus' => {'ext'      => '.vcproj',
27
my(%info) = ('cplusplus' => {'ext'      => '.vcproj',
28
                             'dllexe'   => 'vc7exe',
28
                             'dllexe'   => 'vc7exe',
29
                             'libexe'   => 'vc7libexe',
29
                             'libexe'   => 'vc7libexe',
30
                             'dll'      => 'vc7dll',
30
                             'dll'      => 'vc7dll',
31
                             'lib'      => 'vc7lib',
31
                             'lib'      => 'vc7lib',
32
                             'template' => 'vc7',
32
                             'template' => 'vc7',
33
                            },
33
                            },
34
             'csharp'    => {'ext'      => '.csproj',
34
             'csharp'    => {'ext'      => '.csproj',
35
                             'dllexe'   => 'vc7csharp',
35
                             'dllexe'   => 'vc7csharp',
36
                             'libexe'   => 'vc7csharp',
36
                             'libexe'   => 'vc7csharp',
37
                             'dll'      => 'vc7csharp',
37
                             'dll'      => 'vc7csharp',
38
                             'lib'      => 'vc7csharp',
38
                             'lib'      => 'vc7csharp',
39
                             'template' => 'vc7csharp',
39
                             'template' => 'vc7csharp',
40
                            },
40
                            },
41
             'vb'        => {'ext'      => '.vbproj',
41
             'vb'        => {'ext'      => '.vbproj',
42
                             'dllexe'   => 'vc7vb',
42
                             'dllexe'   => 'vc7vb',
43
                             'libexe'   => 'vc7vb',
43
                             'libexe'   => 'vc7vb',
44
                             'dll'      => 'vc7vb',
44
                             'dll'      => 'vc7vb',
45
                             'lib'      => 'vc7vb',
45
                             'lib'      => 'vc7vb',
46
                             'template' => 'vc7vb',
46
                             'template' => 'vc7vb',
47
                            },
47
                            },
48
            );
48
            );
49
 
49
 
50
my(%config) = ('vcversion'    => '7.00',
50
my(%config) = ('vcversion'    => '7.00',
51
               'forloopscope' => 'TRUE',
51
               'forloopscope' => 'TRUE',
52
              );
52
              );
53
 
53
 
54
# ************************************************************
54
# ************************************************************
55
# Subroutine Section
55
# Subroutine Section
56
# ************************************************************
56
# ************************************************************
57
 
57
 
58
sub get_info_hash {
58
sub get_info_hash {
59
  my($self) = shift;
59
  my($self) = shift;
60
  my($key)  = shift;
60
  my($key)  = shift;
61
  return $info{$key};
61
  return $info{$key};
62
}
62
}
63
 
63
 
64
 
64
 
65
sub get_configurable {
65
sub get_configurable {
66
  my($self) = shift;
66
  my($self) = shift;
67
  my($name) = shift;
67
  my($name) = shift;
68
  return $config{$name};
68
  return $config{$name};
69
}
69
}
70
 
70
 
71
 
71
 
72
sub fill_value {
72
sub fill_value {
73
  my($self)  = shift;
73
  my($self)  = shift;
74
  my($name)  = shift;
74
  my($name)  = shift;
75
  my($value) = undef;
75
  my($value) = undef;
76
 
76
 
77
  if ($name eq 'guid') {
77
  if ($name eq 'guid') {
78
    my($guid) = new GUID();
78
    my($guid) = new GUID();
79
    $value = $guid->generate($self->project_file_name(),
79
    $value = $guid->generate($self->project_file_name(),
80
                             $self->{'current_input'},
80
                             $self->{'current_input'},
81
                             $self->getcwd());
81
                             $self->getcwd());
82
  }
82
  }
83
  elsif ($name eq 'language') {
83
  elsif ($name eq 'language') {
84
    $value = $self->get_language();
84
    $value = $self->get_language();
85
  }
85
  }
86
  else {
86
  else {
87
    $value = $self->get_configurable($name);
87
    $value = $self->get_configurable($name);
88
  }
88
  }
89
  return $value;
89
  return $value;
90
}
90
}
91
 
91
 
92
 
92
 
93
sub project_file_extension {
93
sub project_file_extension {
94
  my($self) = shift;
94
  my($self) = shift;
95
  return $self->get_info_hash($self->get_language())->{'ext'};
95
  return $self->get_info_hash($self->get_language())->{'ext'};
96
}
96
}
97
 
97
 
98
 
98
 
99
sub get_dll_exe_template_input_file {
99
sub get_dll_exe_template_input_file {
100
  my($self) = shift;
100
  my($self) = shift;
101
  return $self->get_info_hash($self->get_language())->{'dllexe'};
101
  return $self->get_info_hash($self->get_language())->{'dllexe'};
102
}
102
}
103
 
103
 
104
 
104
 
105
sub get_lib_exe_template_input_file {
105
sub get_lib_exe_template_input_file {
106
  my($self) = shift;
106
  my($self) = shift;
107
  return $self->get_info_hash($self->get_language())->{'libexe'};
107
  return $self->get_info_hash($self->get_language())->{'libexe'};
108
}
108
}
109
 
109
 
110
 
110
 
111
sub get_dll_template_input_file {
111
sub get_dll_template_input_file {
112
  my($self) = shift;
112
  my($self) = shift;
113
  return $self->get_info_hash($self->get_language())->{'dll'};
113
  return $self->get_info_hash($self->get_language())->{'dll'};
114
}
114
}
115
 
115
 
116
 
116
 
117
sub get_lib_template_input_file {
117
sub get_lib_template_input_file {
118
  my($self) = shift;
118
  my($self) = shift;
119
  return $self->get_info_hash($self->get_language())->{'lib'};
119
  return $self->get_info_hash($self->get_language())->{'lib'};
120
}
120
}
121
 
121
 
122
 
122
 
123
sub get_template {
123
sub get_template {
124
  my($self) = shift;
124
  my($self) = shift;
125
  return $self->get_info_hash($self->get_language())->{'template'};
125
  return $self->get_info_hash($self->get_language())->{'template'};
126
}
126
}
127
 
127
 
128
 
128
 
129
1;
129
1;
130
 
130