37 lines
		
	
	
		
			1010 B
		
	
	
	
		
			Perl
		
	
	
	
	
	
		
		
			
		
	
	
			37 lines
		
	
	
		
			1010 B
		
	
	
	
		
			Perl
		
	
	
	
	
	
| 
								 | 
							
								#!/usr/bin/perl
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								use File::Spec;
							 | 
						||
| 
								 | 
							
								use File::Find;
							 | 
						||
| 
								 | 
							
								use File::Path;
							 | 
						||
| 
								 | 
							
								use File::Glob;
							 | 
						||
| 
								 | 
							
								use File::stat;
							 | 
						||
| 
								 | 
							
								#use Time::Piece;
							 | 
						||
| 
								 | 
							
								#use Time::Seconds;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								$" = "\n"; # change list separator
							 | 
						||
| 
								 | 
							
								@PROJECT_LIST = (<device/device*/*.uvproj>, <host/host*/*.uvproj>);
							 | 
						||
| 
								 | 
							
								print "@PROJECT_LIST";
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								foreach (@PROJECT_LIST)
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								  my $project_file = $_;
							 | 
						||
| 
								 | 
							
								  my $backup_file = $project_file . ".bck";
							 | 
						||
| 
								 | 
							
								 
							 | 
						||
| 
								 | 
							
								  rename $project_file, $backup_file or die "cannot rename $project_file to $backup_file";
							 | 
						||
| 
								 | 
							
								  
							 | 
						||
| 
								 | 
							
								  open (fin, $backup_file) or die "Can't open $backup_file to read\n";
							 | 
						||
| 
								 | 
							
								  open (fout, ">$project_file") or die "Can't open $project_file to write\n";
							 | 
						||
| 
								 | 
							
								  
							 | 
						||
| 
								 | 
							
								  my $target;
							 | 
						||
| 
								 | 
							
								  while (<fin>)
							 | 
						||
| 
								 | 
							
								  {
							 | 
						||
| 
								 | 
							
								    s/(<TargetName>.+) /\1_/; # replace space by underscore in target name if found
							 | 
						||
| 
								 | 
							
								  
							 | 
						||
| 
								 | 
							
								    $target = $1 and print $target . "\n" if /<TargetName>(.+)</;
							 | 
						||
| 
								 | 
							
								    my $keil_build = ".\\KeilBuild\\$target\\";
							 | 
						||
| 
								 | 
							
								    
							 | 
						||
| 
								 | 
							
								    print "replace $2 by $keil_build\n--> $_\n" if s/(<OutputDirectory>)(.+)</\1$keil_build</ || s/(<ListingPath>)(.+)</\1$keil_build</;
							 | 
						||
| 
								 | 
							
								    
							 | 
						||
| 
								 | 
							
								    printf fout;
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								}
							 |