espressif_tinyusb/examples/keil_output_folder.pl

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