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;
 | 
						|
  }
 | 
						|
} |