Blame | Last modification | View Log | RSS feed
######################################################################### 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();