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