scummvm/devtools/update-version.pl
Lars Sundström 505c2499c9 TVOS: Add Apple TV OS as a separate dist
The Apple TV OS requires a different type of storyboard than iOS. Also,
the Info.plist file differ since the tvOS platform doesn't handle
different orientations.

The Apple TV OS also need a different set of icons with different
resolutions more suitable for TV screens.

The application icons are required to be of layered type, which means
that a single PNG file is not accepted as an icon file. The icons must
have at least two layers, hence the ScummVM icon is defined by a back
image with just the background color and a front image with the ScummVM
logo.

The icons are then put together when archiving the application in Xcode
to an Assets.car file. However the linux builds are not building the
application using Xcode. Therefore a pre-compiled Assets.car file
containing the image assets (icons, splash screen etc) is added to the
tvos folder. This file is copied to the application bundle. If the icons
are changed in the future a new Assets.car file has to be compiled. This
can only be done on a computer with Xcode installed. To compile run the
following command in the tvos folder:
xcrun actool ./Images.xcassets --compile build --platform appletvos \
--minimum-deployment-target 9.0 --app-icon AppIcon \
--output-partial-info-plist build/partial.plist \
--launch-image LaunchImage

The partial.plist file generated will show what to add to the Info.plist
and if something must be changed in the ports.mk section for the
tvosbundle.
2023-01-29 21:13:51 +00:00

79 lines
2.0 KiB
Perl
Executable File

#!/usr/bin/perl
#
# This script is a hack to update the ScummVM version in all (?) files that
# contain it. Obviously, it should be used before a release.
use strict;
if ($#ARGV+1 < 3 or $#ARGV+1 > 4) {
# TODO: Allow the user to specify the version as "1.2.3svn"
# and automatically split that into 1, 2, 3, svn
print STDERR "Usage: $0 MAJOR MINOR PATCH [EXTRA]\n";
print STDERR " TODO\n";
exit 1;
}
# TODO: Verify that major/minor/patch are actually numbers
my $VER_MAJOR = $ARGV[0];
my $VER_MINOR = $ARGV[1];
my $VER_PATCH = $ARGV[2];
my $VER_EXTRA = $ARGV[3];
my $VERSION = "$VER_MAJOR.$VER_MINOR.$VER_PATCH$VER_EXTRA";
die "MAJOR must be a natural number\n" unless ($VER_MAJOR =~ /^\d+$/);
die "MINOR must be a natural number\n" unless ($VER_MINOR =~ /^\d+$/);
die "PATCH must be a natural number\n" unless ($VER_PATCH =~ /^\d+$/);
print "Setting version to '$VERSION'\n";
# List of the files in which we need to perform substitution.
my @subs_files = qw(
base/internal_version.h
dists/redhat/scummvm.spec
dists/redhat/scummvm-tools.spec
dists/slackware/scummvm.SlackBuild
dists/macosx/Info.plist
dists/macosx/dockplugin/Info.plist
dists/iphone/Info.plist
dists/ios7/Info.plist
dists/tvos/Info.plist
dists/irix/scummvm.spec
dists/wii/meta.xml
dists/openpandora/PXML.xml
dists/openpandora/README-OPENPANDORA
dists/openpandora/README-PND.txt
dists/openpandora/index.html
dists/gph/README-GPH
dists/gph/scummvm.ini
dists/riscos/!Boot,feb
dists/amigaos/md2ag.rexx
backends/platform/psp/README.PSP
);
my %subs = (
VER_MAJOR => $VER_MAJOR,
VER_MINOR => $VER_MINOR,
VER_PATCH => $VER_PATCH,
VER_EXTRA => $VER_EXTRA,
VERSION => $VERSION
);
foreach my $file (@subs_files) {
print "Processing $file...\n";
open(INPUT, "< $file.in") or die "Can't open '$file.in' for reading: $!\n";
open(OUTPUT, "> $file") or die "Can't open '$file' for writing: $!\n";
while (<INPUT>) {
while (my ($key, $value) = each(%subs)) {
s/\@$key\@/$value/;
}
print OUTPUT;
}
close(INPUT);
close(OUTPUT);
}