########################################################################
# Copyright (c) VIX TECHNOLOGY (AUST) LTD
#
# Module name   : jats_xml_play1.pl
# Module type   : JATS Utility
# Compiler(s)   : Perl
# Environment(s): jats
#
# Description   : 
#
# Usage         : See POD at the end of this file
#
#......................................................................#

require 5.008_002;
use strict;
use warnings;

use Pod::Usage;
use Getopt::Long;

use JatsError;
use XML::Writer;

my $opt_outfile = 'tmp.xml';
my $output;
my %macros;
my @libdirs = qw (c:\\dir1 c:\\dir2 c:\\dir3);
my @incdirs = qw (d:\\inc1 d:\\inc2);
my @defines = qw (defined1=12 define2=13);

my $AdditionalIncludeDirectories = join(';', @incdirs );
my $PreprocessorDefinitions = join(';', @defines );
my $AdditionalLibraryDirectories = join(';', @libdirs );

$macros{ddpMacro0} = 'c:\somewhere\someplace0'; 
$macros{ddpMacro1} = 'c:\somewhere\someplace1'; 
$macros{ddpMacro2} = 'c:\somewhere\someplace2'; 
$macros{ddpMacro3} = 'c:\somewhere\someplace3'; 

open (my $XML, '>', $opt_outfile) || Error ("Cannot create output file: $opt_outfile", $!);
my $writer = XML::Writer->new(OUTPUT => $XML, UNSAFE => 0, DATA_INDENT => 4, DATA_MODE => 1);
$writer->xmlDecl("UTF-8");

$writer->startTag('Project', "ToolsVersion", "4.0", "xmlns", "http://schemas.microsoft.com/developer/msbuild/2003");
$writer->emptyTag('ImportGroup', 'Label' , "PropertySheets");
$writer->startTag('PropertyGroup', 'Label' , "UserMacros");

foreach my $key ( keys %macros)
{
    $writer->dataElement($key, $macros{$key});
}
$writer->endTag('PropertyGroup');

#$writer->emptyTag('ItemDefinitionGroup');
$writer->startTag('ItemDefinitionGroup');

$writer->startTag('ClCompile');
$writer->dataElement('AdditionalIncludeDirectories', $AdditionalIncludeDirectories . ';%(AdditionalIncludeDirectories)');
$writer->dataElement('PreprocessorDefinitions', $PreprocessorDefinitions . ';%(PreprocessorDefinitions)');
$writer->endTag('ClCompile');

$writer->startTag('Link');
    $writer->dataElement('AdditionalLibraryDirectories', $AdditionalLibraryDirectories . ';%(AdditionalLibraryDirectories)');
$writer->endTag('Link');
$writer->endTag('ItemDefinitionGroup');

$writer->startTag('ItemGroup');
foreach my $key ( keys %macros)
{
    $writer->startTag('BuildMacro', 'Include' , $key);
    $writer->dataElement('Value', '$(' . $key . ')');
    $writer->endTag('BuildMacro');
}

$writer->endTag('ItemGroup');

$writer->endTag('Project');
$writer->end();
