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