keil_output_folder.pl 1010 B

12345678910111213141516171819202122232425262728293031323334353637
  1. #!/usr/bin/perl
  2. use File::Spec;
  3. use File::Find;
  4. use File::Path;
  5. use File::Glob;
  6. use File::stat;
  7. #use Time::Piece;
  8. #use Time::Seconds;
  9. $" = "\n"; # change list separator
  10. @PROJECT_LIST = (<device/device*/*.uvproj>, <host/host*/*.uvproj>);
  11. print "@PROJECT_LIST";
  12. foreach (@PROJECT_LIST)
  13. {
  14. my $project_file = $_;
  15. my $backup_file = $project_file . ".bck";
  16. rename $project_file, $backup_file or die "cannot rename $project_file to $backup_file";
  17. open (fin, $backup_file) or die "Can't open $backup_file to read\n";
  18. open (fout, ">$project_file") or die "Can't open $project_file to write\n";
  19. my $target;
  20. while (<fin>)
  21. {
  22. s/(<TargetName>.+) /\1_/; # replace space by underscore in target name if found
  23. $target = $1 and print $target . "\n" if /<TargetName>(.+)</;
  24. my $keil_build = ".\\KeilBuild\\$target\\";
  25. print "replace $2 by $keil_build\n--> $_\n" if s/(<OutputDirectory>)(.+)</\1$keil_build</ || s/(<ListingPath>)(.+)</\1$keil_build</;
  26. printf fout;
  27. }
  28. }