1 package VC8ProjectCreator
;
3 # ************************************************************
4 # Description : A VC8 Project Creator
5 # Author : Johnny Willemsen
6 # Create Date : 4/21/2004
7 # ************************************************************
9 # ************************************************************
11 # ************************************************************
15 use VC7ProjectCreator
;
18 @ISA = qw(VC7ProjectCreator);
20 # ************************************************************
22 # ************************************************************
24 ## NOTE: We call the constant as a function to support Perl 5.6.
25 my %info = (Creator
::cplusplus
() => {'ext' => '.vcproj',
27 'libexe' => 'vc8libexe',
32 Creator
::csharp
() => {'ext' => '.csproj',
33 'dllexe' => 'vc8csharp',
34 'libexe' => 'vc8csharp',
37 'template' => 'vc8csharp',
39 Creator
::java
() => {'ext' => '.vjsproj',
40 'dllexe' => 'vc8java',
41 'libexe' => 'vc8java',
44 'template' => 'vc8java',
46 Creator
::vb
() => {'ext' => '.vbproj',
51 'template' => 'vc8vb',
55 my %config = ('vcversion' => '8.00');
57 # ************************************************************
59 # ************************************************************
61 sub languageSupported
{
62 return defined $info{$_[0]->get_language()};
66 sub webapp_supported
{
72 sub require_dependencies
{
73 ## With vc8, they fixed it such that static libraries that depend on
74 ## other static libraries will not be included into the target library
75 ## by default. Way to go Microsoft!
79 sub post_file_creation
{
80 my($self, $file) = @_;
82 ## VC8 stores information in a .user file that may conflict
83 ## with information stored in the project file. If we have
84 ## created a new project file, we will remove the corresponding
85 ## .user file to avoid strange conflicts.
90 sub get_configurable
{
91 #my($self, $name) = @_;
92 return $config{$_[1]};
98 ## If we have the setting in our information map, the use it.
99 return $info{$key} if (defined $info{$key});
101 ## Otherwise, see if our parent type can take care of it.
102 return $self->SUPER::get_info_hash
($key);
105 sub translate_value
{
106 my($self, $key, $val) = @_;
108 ## Microsoft uses AnyCPU in the project file, but uses Any CPU in the
110 $val = 'Any CPU' if ($key eq 'platform' && $val eq 'AnyCPU');
112 return $self->SUPER::translate_value
($key, $val);