author | mikek |
Sun, 27 Jun 2010 21:43:55 +0100 | |
branch | GCC_SURGE |
changeset 181 | bd8f1e65581b |
parent 0 | a41df078684a |
permissions | -rw-r--r-- |
#! usr\bin\perl # Copyright (c) 2002-2009 Nokia Corporation and/or its subsidiary(-ies). # All rights reserved. # This component and the accompanying materials are made available # under the terms of the License "Eclipse Public License v1.0" # which accompanies this distribution, and is available # at the URL "http://www.eclipse.org/legal/epl-v10.html". # # Initial Contributors: # Nokia Corporation - initial contribution. # # Contributors: # # Description: # my $KFilename = $0; $KFilename =~ s/\\romlaunch\.pl$/\\rom.pl/i; my $KEnvironment="perl"; my $KLauncher="rom.bat"; # Main if (!defined($ENV{EPOCROOT})) { # Need to set EPOCROOT my $devicepath=getDevicesPath(); if (!defined($devicepath)) { die "Please set EPOCROOT before launching $KLauncher. Alternatively, install\n". "a the coresidency tools (tools stubs) and set a default device.\n"; } push @INC, $devicepath; push @INC, $devicepath."/perllib"; require CDevicesCLAccessor; $devicepath=~s/[^\/]+\/?$//; # Remove last path element my $deviceObject = New CDevicesCLAccessor($devicepath."/devices.xml"); my $deviceName; if (defined($ENV{EPOCDEVICE})) { # Use EPOCDEVICE as default device $deviceName = $ENV{EPOCDEVICE}; } elsif (($deviceObject->getDefaultDevice()) ne "") { # Use main default device $deviceName = $deviceObject->getDefaultDevice($deviceObject); } else { die "Please set a default device (using 'devices -setdefault') before using\n". "$KLauncher. Alternatively, you can set EPOCROOT yourself.\n"; } if ( ($deviceObject->isValidName($deviceName)) || ($deviceObject->isValidAlias($deviceName)) ) { # Get path to the epoc32 tree from device my $epocroot = $deviceObject->getEpocRoot($deviceName); $epocroot =~ s/^[A-Za-z]://; # Remove leading drive letter # Ensure the correct slashes are present $epocroot =~ s/\//\\/g; if ($epocroot !~ /\\$/) { $epocroot = $epocroot."\\"; } # Set EPOCROOT $ENV{EPOCROOT} = $epocroot; } else { die "'$deviceName' is not a recognised device name. If EPOCDEVICE is set, ensure\n". "it is set to a valid device name.\n"; } } # Enclose arguments in quote marks if needed my @args=@ARGV; my $index=scalar(@args); while ($index > 0) { $index--; if ($args[$index] =~ /\s/) { $args[$index] = '"'.$args[$index].'"'; } } # Call tool with arguments system($KEnvironment." ".$KFilename." ".join(" ",@args)); # getDevicesPath() # # Discover the location of the devices API. They are expected to be found in an installed set of coresidency # stubs, in the path. # # Parameters: None # # Returns: The path to the devices API (UNIX style path) # # Dies: If no devices API can be found in the path. sub getDevicesPath() { my $devicepath = undef; my $paths = $ENV{PATH}; $paths =~ s/\\/\//g; foreach my $path (split(";", $paths)) { if (-e "$path/CDevicesCLAccessor.pm") { $devicepath=$path; } } return $devicepath; }