Subversion Repositories DevTools

Rev

Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
6887 dpurdie 1
########################################################################
2
# Copyright (c) VIX TECHNOLOGY (AUST) LTD
3
#
4
# Module name   : jats_xml_play1.pl
5
# Module type   : JATS Utility
6
# Compiler(s)   : Perl
7
# Environment(s): jats
8
#
9
# Description   : 
10
#
11
# Usage         : See POD at the end of this file
12
#
13
#......................................................................#
14
 
15
require 5.008_002;
16
use strict;
17
use warnings;
18
 
19
use Pod::Usage;
20
use Getopt::Long;
21
 
22
use JatsError;
23
use XML::Writer;
24
 
25
my $opt_outfile = 'tmp.xml';
26
my $output;
27
my %macros;
28
my @libdirs = qw (c:\\dir1 c:\\dir2 c:\\dir3);
29
my @incdirs = qw (d:\\inc1 d:\\inc2);
30
my @defines = qw (defined1=12 define2=13);
31
 
32
my $AdditionalIncludeDirectories = join(';', @incdirs );
33
my $PreprocessorDefinitions = join(';', @defines );
34
my $AdditionalLibraryDirectories = join(';', @libdirs );
35
 
36
$macros{ddpMacro0} = 'c:\somewhere\someplace0'; 
37
$macros{ddpMacro1} = 'c:\somewhere\someplace1'; 
38
$macros{ddpMacro2} = 'c:\somewhere\someplace2'; 
39
$macros{ddpMacro3} = 'c:\somewhere\someplace3'; 
40
 
41
open (my $XML, '>', $opt_outfile) || Error ("Cannot create output file: $opt_outfile", $!);
42
my $writer = XML::Writer->new(OUTPUT => $XML, UNSAFE => 0, DATA_INDENT => 4, DATA_MODE => 1);
43
$writer->xmlDecl("UTF-8");
44
 
45
$writer->startTag('Project', "ToolsVersion", "4.0", "xmlns", "http://schemas.microsoft.com/developer/msbuild/2003");
46
$writer->emptyTag('ImportGroup', 'Label' , "PropertySheets");
47
$writer->startTag('PropertyGroup', 'Label' , "UserMacros");
48
 
49
foreach my $key ( keys %macros)
50
{
51
    $writer->dataElement($key, $macros{$key});
52
}
53
$writer->endTag('PropertyGroup');
54
 
55
#$writer->emptyTag('ItemDefinitionGroup');
56
$writer->startTag('ItemDefinitionGroup');
57
 
58
$writer->startTag('ClCompile');
59
$writer->dataElement('AdditionalIncludeDirectories', $AdditionalIncludeDirectories . ';%(AdditionalIncludeDirectories)');
60
$writer->dataElement('PreprocessorDefinitions', $PreprocessorDefinitions . ';%(PreprocessorDefinitions)');
61
$writer->endTag('ClCompile');
62
 
63
$writer->startTag('Link');
64
    $writer->dataElement('AdditionalLibraryDirectories', $AdditionalLibraryDirectories . ';%(AdditionalLibraryDirectories)');
65
$writer->endTag('Link');
66
$writer->endTag('ItemDefinitionGroup');
67
 
68
$writer->startTag('ItemGroup');
69
foreach my $key ( keys %macros)
70
{
71
    $writer->startTag('BuildMacro', 'Include' , $key);
72
    $writer->dataElement('Value', '$(' . $key . ')');
73
    $writer->endTag('BuildMacro');
74
}
75
 
76
$writer->endTag('ItemGroup');
77
 
78
$writer->endTag('Project');
79
$writer->end();