mirror of
https://github.com/Rockbox/rockbox.git
synced 2025-12-06 21:25:03 -05:00
Added support for configurable rockbox directory. FS#9567 by Alex Bennee.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19208 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
parent
4c43f7be0a
commit
ad8d6031c1
9 changed files with 217 additions and 144 deletions
108
wps/wpsbuild.pl
108
wps/wpsbuild.pl
|
|
@ -8,32 +8,60 @@
|
|||
# $Id$
|
||||
#
|
||||
|
||||
$ROOT="..";
|
||||
|
||||
if($ARGV[0] eq "-r") {
|
||||
$ROOT=$ARGV[1];
|
||||
shift @ARGV;
|
||||
shift @ARGV;
|
||||
}
|
||||
use strict;
|
||||
use Getopt::Long qw(:config pass_through); # pass_through so not confused by -DTYPE_STUFF
|
||||
|
||||
my $ROOT="..";
|
||||
my $verbose;
|
||||
if($ARGV[0] eq "-v") {
|
||||
$verbose =1;
|
||||
shift @ARGV;
|
||||
}
|
||||
|
||||
my $firmdir="$ROOT/firmware";
|
||||
my $rbdir=".rockbox";
|
||||
my $wpslist;
|
||||
my $target;
|
||||
|
||||
my $wpslist=$ARGV[0];
|
||||
# Get options
|
||||
GetOptions ( 'r|root=s' => \$ROOT,
|
||||
'v|verbose' => \$verbose,
|
||||
'rbdir=s' => \$rbdir, # If we want to put in a different directory
|
||||
);
|
||||
|
||||
($wpslist, $target) = @ARGV;
|
||||
|
||||
my $target = $ARGV[1];
|
||||
my $cppdef = $target;
|
||||
my @depthlist = ( 16, 8, 4, 2, 1 );
|
||||
|
||||
# These parameters are filled in as we parse wpslist
|
||||
my $wps;
|
||||
my $wps_prefix;
|
||||
my $rwps;
|
||||
my $width;
|
||||
my $height;
|
||||
my $font;
|
||||
my $fgcolor;
|
||||
my $bgcolor;
|
||||
my $statusbar;
|
||||
my $author;
|
||||
my $req_g;
|
||||
my $req_g_wps;
|
||||
my $req_t_wps;
|
||||
my $backdrop;
|
||||
my $lineselectstart;
|
||||
my $lineselectend;
|
||||
my $selecttype;
|
||||
my $iconset;
|
||||
my $viewericon;
|
||||
my $lineselecttextcolor;
|
||||
my $filetylecolor;
|
||||
|
||||
# LCD sizes
|
||||
my ($main_height, $main_width, $main_depth);
|
||||
my ($remote_height, $remote_width, $remote_depth);
|
||||
my $has_remote;
|
||||
|
||||
|
||||
if(!$wpslist) {
|
||||
print "Usage: wpsbuilds.pl <WPSLIST> <target>\n",
|
||||
"Run this script in the root of the target build, and it will put all the\n",
|
||||
"stuff in .rockbox/wps/\n";
|
||||
"stuff in $rbdir/wps/\n";
|
||||
exit;
|
||||
}
|
||||
|
||||
|
|
@ -71,7 +99,7 @@ STOP
|
|||
|
||||
open(GETSIZE, "$c|");
|
||||
|
||||
my ($height, $width);
|
||||
my ($height, $width, $depth);
|
||||
while(<GETSIZE>) {
|
||||
if($_ =~ /^Height: (\d*)/) {
|
||||
$height = $1;
|
||||
|
|
@ -96,15 +124,15 @@ sub mkdirs
|
|||
{
|
||||
my $wpsdir = $wps;
|
||||
$wpsdir =~ s/\.(r|)wps//;
|
||||
mkdir ".rockbox/wps", 0777;
|
||||
mkdir ".rockbox/themes", 0777;
|
||||
mkdir "$rbdir/wps", 0777;
|
||||
mkdir "$rbdir/themes", 0777;
|
||||
|
||||
if( -d ".rockbox/wps/$wpsdir") {
|
||||
if( -d "$rbdir/wps/$wpsdir") {
|
||||
#print STDERR "wpsbuild warning: directory wps/$wpsdir already exists!\n";
|
||||
}
|
||||
else
|
||||
{
|
||||
mkdir ".rockbox/wps/$wpsdir", 0777;
|
||||
mkdir "$rbdir/wps/$wpsdir", 0777;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -112,9 +140,9 @@ sub copybackdrop
|
|||
{
|
||||
#copy the backdrop file into the build dir
|
||||
if ($backdrop ne '') {
|
||||
$dst = $backdrop;
|
||||
my $dst = $backdrop;
|
||||
$dst =~ s/(\.[0-9]*x[0-9]*x[0-9]*)//;
|
||||
$cmd = "cp $ROOT/$backdrop .rockbox/$dst";
|
||||
my $cmd = "cp $ROOT/$backdrop $rbdir/$dst";
|
||||
`$cmd`;
|
||||
}
|
||||
}
|
||||
|
|
@ -123,10 +151,10 @@ sub copythemefont
|
|||
{
|
||||
#copy the font specified by the theme
|
||||
|
||||
$o=$font;
|
||||
my $o=$font;
|
||||
$o =~ s/\.fnt/\.bdf/;
|
||||
`mkdir .rockbox/fonts/ >/dev/null 2>&1`;
|
||||
$cmd ="$ROOT/tools/convbdf -f -o \".rockbox/fonts/$font\" \"$ROOT/fonts/$o\" ";
|
||||
mkdir "$rbdir/fonts";
|
||||
my $cmd ="$ROOT/tools/convbdf -f -o \"$rbdir/fonts/$font\" \"$ROOT/fonts/$o\" ";
|
||||
`$cmd`;
|
||||
}
|
||||
|
||||
|
|
@ -135,6 +163,7 @@ sub copythemeicon
|
|||
#copy the icon specified by the theme
|
||||
|
||||
if ($iconset ne '') {
|
||||
$iconset =~ s/.rockbox/$rbdir/;
|
||||
$iconset =~ /\/(.*icons\/(.*))/i;
|
||||
`cp $ROOT/icons/$2 $1`;
|
||||
}
|
||||
|
|
@ -145,6 +174,7 @@ sub copythemeviewericon
|
|||
#copy the viewer icon specified by the theme
|
||||
|
||||
if ($viewericon ne '') {
|
||||
$viewericon =~ s/.rockbox/$rbdir/;
|
||||
$viewericon =~ /\/(.*icons\/(.*))/i;
|
||||
`cp $ROOT/icons/$2 $1`;
|
||||
}
|
||||
|
|
@ -164,10 +194,10 @@ sub copywps
|
|||
# print "$req_t_wps $req_g_wps\n";
|
||||
|
||||
if (-e "$dir/$req_t_wps" ) {
|
||||
system("cp $dir/$req_t_wps .rockbox/wps/$wps");
|
||||
system("cp $dir/$req_t_wps $rbdir/wps/$wps");
|
||||
|
||||
} elsif (-e "$dir/$req_g_wps") {
|
||||
system("cp $dir/$req_g_wps .rockbox/wps/$wps");
|
||||
system("cp $dir/$req_g_wps $rbdir/wps/$wps");
|
||||
|
||||
open(WPSFILE, "$dir/$req_g_wps");
|
||||
while (<WPSFILE>) {
|
||||
|
|
@ -178,12 +208,12 @@ sub copywps
|
|||
if ($#filelist >= 0) {
|
||||
if (-e "$dir/$wps_prefix/$req_g") {
|
||||
foreach $file (@filelist) {
|
||||
system("cp $dir/$wps_prefix/$req_g/$file .rockbox/wps/$wps_prefix/");
|
||||
system("cp $dir/$wps_prefix/$req_g/$file $rbdir/wps/$wps_prefix/");
|
||||
}
|
||||
}
|
||||
elsif (-e "$dir/$wps_prefix") {
|
||||
foreach $file (@filelist) {
|
||||
system("cp $dir/$wps_prefix/$file .rockbox/wps/$wps_prefix/");
|
||||
system("cp $dir/$wps_prefix/$file $rbdir/wps/$wps_prefix/");
|
||||
}
|
||||
}
|
||||
else {
|
||||
|
|
@ -210,11 +240,11 @@ sub buildcfg {
|
|||
\# $cfg generated by wpsbuild.pl
|
||||
\# $wps is made by $author
|
||||
\#
|
||||
wps: /.rockbox/wps/$wps
|
||||
wps: /$rbdir/wps/$wps
|
||||
MOO
|
||||
;
|
||||
if($font) {
|
||||
push @out, "font: /.rockbox/fonts/$font\n";
|
||||
push @out, "font: /$rbdir/fonts/$font\n";
|
||||
}
|
||||
if($fgcolor && $main_depth > 2) {
|
||||
push @out, "foreground color: $fgcolor\n";
|
||||
|
|
@ -231,7 +261,7 @@ MOO
|
|||
} else {
|
||||
# clip resolution from filename
|
||||
$backdrop =~ s/(\.[0-9]*x[0-9]*x[0-9]*)//;
|
||||
push @out, "backdrop: /.rockbox/$backdrop\n";
|
||||
push @out, "backdrop: /$rbdir/$backdrop\n";
|
||||
}
|
||||
}
|
||||
if($lineselectstart && $main_depth > 2) {
|
||||
|
|
@ -256,13 +286,13 @@ MOO
|
|||
push @out, "filetype colours: $filetylecolor\n";
|
||||
}
|
||||
if($rwps && $has_remote ) {
|
||||
push @out, "rwps: /.rockbox/wps/$rwps\n";
|
||||
push @out, "rwps: /$rbdir/wps/$rwps\n";
|
||||
}
|
||||
if(-f ".rockbox/wps/$cfg") {
|
||||
if(-f "$rbdir/wps/$cfg") {
|
||||
print STDERR "wpsbuild warning: wps/$cfg already exists!\n";
|
||||
}
|
||||
else {
|
||||
open(CFG, ">.rockbox/themes/$cfg");
|
||||
open(CFG, ">$rbdir/themes/$cfg");
|
||||
print CFG @out;
|
||||
close(CFG);
|
||||
}
|
||||
|
|
@ -273,11 +303,15 @@ MOO
|
|||
($remote_height, $remote_width, $remote_depth) = getlcdsizes(1);
|
||||
|
||||
#print "LCD: ${main_height}x${main_width}x${main_depth}\n";
|
||||
$has_remote = 1 if ($remote_height && $remote_width && remote_depth);
|
||||
$has_remote = 1 if ($remote_height && $remote_width && $remote_depth);
|
||||
|
||||
my $isrwps;
|
||||
my $within;
|
||||
|
||||
open(WPS, "<$wpslist");
|
||||
while(<WPS>) {
|
||||
my $l = $_;
|
||||
|
||||
# remove CR
|
||||
$l =~ s/\r//g;
|
||||
if($l =~ /^ *\#/) {
|
||||
|
|
@ -334,7 +368,7 @@ while(<WPS>) {
|
|||
my $wpsdir = $1;
|
||||
# If this WPS installable on this platform, one of the following
|
||||
# two files will be present
|
||||
foreach $d (@depthlist) {
|
||||
foreach my $d (@depthlist) {
|
||||
next if ($d > $rdepth);
|
||||
|
||||
$req_g = $rwidth . "x" . $rheight . "x" . $d;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue