sbsv1/abld/e32util/featurevariantparser.pm
author Mike Kinghan <mikek@symbian.org>
Sat, 27 Nov 2010 17:23:11 +0000
changeset 41 1600211976c3
parent 40 68f68128601f
permissions -rw-r--r--
1) Add imgtools/romtools to the targets for which exports are performed by fix_tools_exports.pl 2) Windows compatibility fix to list_targets.pl 3) Modify imgtools\romtools\group\BLD.INF so that Windows-only exports are not performed on Linux hosts or vice versa. 4) Windows compatibility fix for imgtools\romtools\rombuild\romnibus.pl
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
40
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
     1
#
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
     2
# Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies).
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
     3
# All rights reserved.
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
     4
# This component and the accompanying materials are made available
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
     5
# under the terms of "Eclipse Public License v1.0"
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
     6
# which accompanies this distribution, and is available
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
     7
# at the URL "http://www.eclipse.org/legal/epl-v10.html".
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
     8
#
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
     9
# Initial Contributors:
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    10
# Nokia Corporation - initial contribution.
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    11
#
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    12
# Contributors:
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    13
#
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    14
# Description:
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    15
#
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    16
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    17
# Module FEATUREVARIANTPARSER. Parses .VAR files and returns key variables.
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    18
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    19
# The following hashes can be used with this module:
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    20
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    21
# NAME 				-> Returns the name of the variant file (without the extension)
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    22
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    23
# FULLPATH 			-> Returns the full path of the variant file (including the extension)
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    24
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    25
# VALID 			-> Set to 1 if the variant file is valid, otherwise set to 0
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    26
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    27
# VIRTUAL 			-> Set to 1 if the variant is a grouping node, otherwise set to 0
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    28
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    29
# ROM_INCLUDES 		-> Returns a pointer to the list of ROM_INCLUDES (including Parent nodes).
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    30
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    31
# BUILD_INCLUDES 	-> Returns a pointer to the list of BUILD_INCLUDES (including Parent nodes).
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    32
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    33
# VARIANT_HRH 		-> Returns the full VARIANT_HRH file path used by the VAR file.
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    34
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    35
# PARENTS			-> Returns a pointer to the list of all the parent nodes, starting with immediate parent
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    36
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    37
# CHILDREN			-> Returns a pointer to the list of all the children nodes.
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    38
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    39
# USAGE : The GetVariant method should only be called using featurevariantparser->GetVariant(var_name, directory(optional) );
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    40
# If the directory for the VAR file is not supplied,the default directory will be searched for var_name.var
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    41
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    42
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    43
package featurevariantparser;
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    44
use File::Spec;
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    45
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    46
my @buildinclude;
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    47
my @rominclude;
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    48
my @parents;
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    49
my @childNodes;
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    50
my $virtual;
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    51
my $childNodeStatus;
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    52
my $varianthrh;
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    53
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    54
my $defaultDir = "$ENV{EPOCROOT}epoc32\\tools\\variant";
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    55
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    56
my $dir;
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    57
my $fullpath;
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    58
my $fulldir;
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    59
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    60
my $pathregex = '.+[^\s]'  ;   # Regex to match all characters (including \ or /), excluding whitespaces.
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    61
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    62
our $verbose = 0;
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    63
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    64
# Wrapper function to return all the correct variables
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    65
# Arguments : (Variant Name, Variant Directory(optional))
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    66
# Returns a Hash.
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    67
#
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    68
# Note: This has to return a copy of all the data - no references!
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    69
#  There are package globals that are reused on a call to this function
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    70
#  so references would go out of date after repeated calls to GetVariant
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    71
#  This package should have been written using objects - too late now
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    72
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    73
sub GetVariant
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    74
{
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    75
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    76
    @buildinclude    = ();
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    77
    @rominclude      = ();
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    78
    @parents         = ();
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    79
    @childNodes      = ();
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    80
    $dir             = "";
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    81
    $fullpath        = "";
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    82
    $varianthrh      = "";
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    83
    $virtual         = 0;
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    84
    $childNodeStatus = 0;
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    85
    
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    86
    my $parnodes = "";
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    87
    my %data;
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    88
    my $children  = "";
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    89
    my $romincs   = "";
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    90
    my $buildincs = "";
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    91
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    92
    $data{'VALID'} = 0;
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    93
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    94
    my ( $empty, $varname, $dirname ) = @_;
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    95
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    96
    my $fullvarpath = ReturnFullVariantPath( $varname, $dirname );
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    97
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    98
    if ( $dirname )
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
    99
    {
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   100
        $fulldir = $dirname;
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   101
    }
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   102
    else
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   103
    {
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   104
        $fulldir = $defaultDir;
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   105
    }
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   106
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   107
    $data{'FULLPATH'} = "$fullvarpath";
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   108
    $data{'NAME'}     = "$varname";
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   109
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   110
    # If the variant file exists, check the syntax and setup variables.
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   111
    if ( FileExists($fullvarpath) )
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   112
    {
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   113
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   114
        if ( CheckVarFileSyntax( $fullvarpath, $varname ) )
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   115
        {
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   116
            $data{'VALID'} = 1;
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   117
        }
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   118
    }
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   119
    else
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   120
    {
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   121
        print "ERROR: $fullpath" . " does not exist\n";
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   122
    }
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   123
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   124
    my $count = 0;
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   125
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   126
    # If VAR file is valid, setup all other variables.
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   127
    if ( $data{'VALID'} )
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   128
    {
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   129
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   130
        $romincs   = FindRomInclude($fullvarpath);
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   131
        $buildincs = FindBuildInclude($fullvarpath);
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   132
        $children  = FindChildNodes($fullvarpath);
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   133
        $parnodes  = FindParentNodes($fullvarpath);
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   134
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   135
        # Remove empty elements from the BUILD_INCLUDE list     
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   136
        @$buildincs = grep /\S/, @$buildincs;
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   137
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   138
        # Fix paths for all BUILD_INCLUDES
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   139
        for ( my $i = 0 ; $i < scalar(@$buildincs) ; $i++ )
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   140
        {
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   141
            @$buildincs[$i] = FixPaths( @$buildincs[$i] );
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   142
        }
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   143
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   144
        # Remove empty elements from the ROM_INCLUDE list
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   145
		@$romincs = grep /\S/, @$romincs;
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   146
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   147
        # Fix paths for all ROM_INCLUDES
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   148
        for ( my $i = 0 ; $i < scalar(@$romincs) ; $i++ )
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   149
        {
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   150
            @$romincs[$i] = FixPaths( @$romincs[$i] );
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   151
        }
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   152
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   153
        # Remove empty elements from the CHILDREN list
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   154
		@$children = grep /\S/, @$children;
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   155
		
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   156
        # Remove empty elements from the PARENT list
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   157
		@$parnodes = grep /\S/, @$parnodes;
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   158
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   159
        $data{'BUILD_INCLUDES'} = CloneList($buildincs);        
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   160
        $data{'ROM_INCLUDES'}   = CloneList($romincs);
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   161
        $data{'PARENTS'}        = CloneList($parnodes);
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   162
        $data{'CHILDREN'}       = CloneList($children);
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   163
        $data{'VARIANT_HRH'}    = $varianthrh;
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   164
        $data{'VIRTUAL'}        = $virtual;
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   165
    }
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   166
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   167
    # If variant file is not valid, return reference to a blank array
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   168
    else
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   169
    {
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   170
        $data{'BUILD_INCLUDES'} = [];
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   171
        $data{'ROM_INCLUDES'}   = [];
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   172
        $data{'VARIANT_HRH'}    = "";
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   173
        $data{'PARENTS'}        = [];
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   174
        $data{'CHILDREN'}       = [];
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   175
    }
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   176
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   177
    return %data;
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   178
}
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   179
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   180
# Helper method that clones a reference to a simple list
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   181
sub CloneList
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   182
    {
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   183
    my $ref = shift;
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   184
    
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   185
    # Check the reference is a list
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   186
    die "Not a list ref" if ref($ref) ne 'ARRAY';
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   187
    
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   188
    # Create a new list object
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   189
    my @list;
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   190
    foreach my $entry ( @$ref )
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   191
        {
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   192
        # Only clone lists of scalars
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   193
        die "Not a scalar" if ref($entry);
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   194
        
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   195
        # Add the entry to the new list
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   196
        push @list, $entry;
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   197
        }
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   198
    
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   199
    # return a reference to the copy    
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   200
    return \@list;
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   201
    }
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   202
    
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   203
# Method to correct all the slashes, and also append EPOCROOT if the path begins with a \ or /
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   204
# If path doesn't start with \ or /, returns an abosulte canonical path
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   205
sub FixPaths
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   206
{
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   207
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   208
    my $arr = $_[0];
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   209
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   210
    if ( $arr =~ m/^\// )
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   211
    {
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   212
       $arr =~ s/^\/?//;
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   213
        return File::Spec->canonpath( "$ENV{EPOCROOT}" . "$arr" );
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   214
    }
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   215
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   216
    elsif ( $arr =~ m/^\\/ )
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   217
    {
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   218
        $arr =~ s/^\\?//;
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   219
        return File::Spec->canonpath( "$ENV{EPOCROOT}" . "$arr" );
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   220
    }
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   221
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   222
    else
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   223
    {
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   224
        return File::Spec->rel2abs( File::Spec->canonpath("$arr") );
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   225
    }
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   226
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   227
}
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   228
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   229
# Method to construct a full variant path from the variant file and directory
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   230
sub ReturnFullVariantPath
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   231
{
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   232
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   233
    my $vardirectory = $_[1];
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   234
    my $varname      = $_[0];
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   235
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   236
    # Check if a directory is supplied
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   237
    if ($vardirectory)
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   238
    {
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   239
        $dir = "$vardirectory";
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   240
    }
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   241
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   242
    else
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   243
    {
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   244
        $dir = $defaultDir;
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   245
    }
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   246
    my $filename = "$varname" . "\.var";
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   247
    $fullpath = File::Spec->catfile( File::Spec->rel2abs($dir), $filename );
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   248
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   249
    if ( !File::Spec->file_name_is_absolute($fullpath) )
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   250
    {
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   251
        $fullpath = File::Spec->rel2abs($fullpath);
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   252
    }
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   253
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   254
    return $fullpath;
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   255
}
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   256
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   257
# Method to find the BUILDINCLUDE values of the VAR file.
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   258
sub FindBuildInclude
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   259
{
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   260
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   261
    my $filename = $_[0];
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   262
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   263
    my $parentNodes;
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   264
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   265
    # Construct a list of parent nodes if node is a child
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   266
    if ($childNodeStatus)
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   267
    {
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   268
        $parentNodes = FindParentNodes("$filename");
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   269
    }
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   270
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   271
    if ($parentNodes)
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   272
    {
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   273
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   274
        # Go through and build the list of all parent BUILD_INCLUDES
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   275
        for ( my $i = scalar(@$parentNodes) - 1 ; $i >= 0 ; $i-- )
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   276
        {
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   277
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   278
            my $tmp = ReturnFullVariantPath( @$parentNodes[$i], $fulldir );
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   279
            open( NEWHANDLE, "<$tmp" );
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   280
            while (<NEWHANDLE>)
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   281
            {
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   282
                if (/BUILD_INCLUDE/)
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   283
                {
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   284
                    ExtractBuildIncludeValue($_);
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   285
                }
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   286
            }
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   287
            close(NEWHANDLE);
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   288
        }
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   289
    }
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   290
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   291
    # Append the BUILD_INCLUDES of the VAR file in the end
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   292
    open( NEWHANDLE, "<$filename" );
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   293
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   294
    while (<NEWHANDLE>)
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   295
    {
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   296
        if (/BUILD_INCLUDE/)
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   297
        {
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   298
            ExtractBuildIncludeValue($_);
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   299
        }
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   300
    }
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   301
    close(NEWHANDLE);
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   302
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   303
    undef(@parents);    # Flush out parent array
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   304
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   305
    return \@buildinclude;
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   306
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   307
}
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   308
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   309
# Method to extract the BUILD_INCLUDE value of a node.
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   310
sub ExtractBuildIncludeValue
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   311
{
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   312
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   313
# If modifier append is found, push the buildinclude to the end of the array list.
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   314
    if (/^BUILD_INCLUDE\s+append\s+($pathregex)/)
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   315
    {
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   316
        push( @buildinclude, ($1) );
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   317
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   318
    }
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   319
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   320
# If modifier prepend is found, push the buildinclude to the beginning of the array list.
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   321
    if (/^BUILD_INCLUDE\s+prepend\s+($pathregex)/)
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   322
    {
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   323
        unshift( @buildinclude, ($1) );
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   324
    }
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   325
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   326
#If keyword set is found, then empty the buildinclude variable and push the new value
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   327
    if (/^BUILD_INCLUDE\s+set\s+($pathregex)/)
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   328
    {
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   329
        undef(@buildinclude);
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   330
        push( @buildinclude, ($1) );
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   331
    }
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   332
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   333
}
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   334
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   335
# Method to find the ROMINCLUDE values of the VAR file.
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   336
sub FindRomInclude
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   337
{
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   338
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   339
    my $filename = $_[0];
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   340
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   341
    my $parentNodes;
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   342
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   343
    # Construct a list of parent nodes if node is a child
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   344
    if ($childNodeStatus)
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   345
    {
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   346
        $parentNodes = FindParentNodes("$filename");
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   347
    }
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   348
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   349
    if ($parentNodes)
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   350
    {
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   351
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   352
        # Go through and build the list of all parent ROM_INCLUDES
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   353
        for ( my $i = scalar(@$parentNodes) - 1 ; $i >= 0 ; $i-- )
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   354
        {
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   355
            my $t = ReturnFullVariantPath( @$parentNodes[$i], $fulldir );
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   356
            open( NEWHANDLE, "<$t" );
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   357
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   358
            while (<NEWHANDLE>)
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   359
            {
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   360
                if (/ROM_INCLUDE/)
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   361
                {
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   362
                    ExtractRomIncludeValue($_);
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   363
                }
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   364
            }
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   365
            close(NEWHANDLE);
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   366
        }
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   367
    }
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   368
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   369
    # Append the ROM_INCLUDES of the VAR file in the end
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   370
    open( NEWHANDLE, "<$filename" );
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   371
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   372
    while (<NEWHANDLE>)
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   373
    {
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   374
        if (/ROM_INCLUDE/)
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   375
        {
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   376
            ExtractRomIncludeValue($_);
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   377
        }
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   378
    }
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   379
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   380
    undef(@parents);    # Flush out parent array;
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   381
    return \@rominclude;
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   382
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   383
}
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   384
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   385
# Method to extract the ROM_INCLUDE value of a node.
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   386
sub ExtractRomIncludeValue
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   387
{
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   388
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   389
# If modifier append is found, push the rominclude to the end of the array list.
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   390
    if (/^ROM_INCLUDE\s+append\s+($pathregex)/)
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   391
    {
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   392
        push( @rominclude, ($1) );
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   393
    }
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   394
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   395
# If modifier prepend is found, push the rominclude to the beginning of the array list.
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   396
    if (/^ROM_INCLUDE\s+prepend\s+($pathregex)/)
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   397
    {
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   398
        unshift( @rominclude, ($1) );
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   399
    }
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   400
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   401
# If keyword set is found, then empty the rominclude variable and push the new value
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   402
    if (/^ROM_INCLUDE\s+set\s+($pathregex)/)
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   403
    {
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   404
        undef(@rominclude);
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   405
        push( @rominclude, ($1) );
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   406
    }
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   407
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   408
}
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   409
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   410
# Method to find the immediate parent node of a child node
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   411
sub ExtractExtendsValue
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   412
{
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   413
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   414
    $_[0] =~ m/^EXTENDS\s+(\w+)/;
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   415
    return $1;
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   416
}
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   417
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   418
# Extract the value of the VARIANT keyword
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   419
sub ExtractVariantValue
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   420
{
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   421
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   422
    $_[0] =~ m/^VARIANT\s+(\w+)/;
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   423
    return $1;
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   424
}
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   425
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   426
# Extracts the value of the HRH file from the VARIANT_HRH line supplied
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   427
sub ExtractHrhValue
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   428
{
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   429
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   430
    $_[0] =~ m/^VARIANT_HRH\s+($pathregex)/;
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   431
    return $1;
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   432
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   433
}
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   434
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   435
# Finds if the variant file is a group node
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   436
# Note: This method is only a supplementary method, not actually used during this module
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   437
#       Provides a quick way to check is any VAR file is grouping node or not without loading the entire file.
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   438
sub IsVirtual
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   439
{
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   440
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   441
    my $filename = $_[0];
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   442
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   443
    open( READHANDLE, "<$filename" );
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   444
    while (<READHANDLE>)
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   445
    {
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   446
        if (/^VIRTUAL\s*$/)
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   447
        {
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   448
            close(READHANDLE);
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   449
            return 1;
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   450
        }
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   451
    }
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   452
    close(READHANDLE);
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   453
    return 0;
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   454
}
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   455
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   456
# Constructs a list of Parent nodes for a given Child node.
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   457
sub FindParentNodes
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   458
{
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   459
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   460
    my $filename   = $_[0];
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   461
    my $hasparents = 0;
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   462
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   463
    open( READHANDLE, "<$filename" );
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   464
    while (<READHANDLE>)
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   465
    {
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   466
        if (/EXTENDS/)
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   467
        {
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   468
            $hasparents = 1;
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   469
            push( @parents, ExtractExtendsValue($_) );
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   470
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   471
        }
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   472
    }
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   473
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   474
    close(READHANDLE);
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   475
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   476
    if ( $hasparents == 1 )
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   477
    {
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   478
        FindParentNodes(
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   479
            ReturnFullVariantPath( @parents[ scalar(@parents) - 1 ], $fulldir )
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   480
        );
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   481
    }
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   482
    else
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   483
    {
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   484
        return \@parents;
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   485
    }
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   486
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   487
}
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   488
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   489
# Constructs a list of Child nodes for a given Parent node (full path or .var path required)
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   490
sub FindChildNodes
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   491
{
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   492
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   493
    my $var = ReturnNativeVarName("$_[0]");
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   494
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   495
    my $tmpname    = "";
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   496
    my @childarray = ();
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   497
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   498
    opendir( DIR, $fulldir );
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   499
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   500
    while ( defined( my $file = readdir(DIR) ) )
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   501
    {
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   502
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   503
        if ( $file =~ m/\.var$/ )
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   504
        {
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   505
            $tmpname = $file;
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   506
            $tmpname =~ s/\.var$//;
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   507
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   508
            open( FILEHANDLE, ReturnFullVariantPath( $tmpname, $fulldir ) );
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   509
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   510
            while (<FILEHANDLE>)
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   511
            {
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   512
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   513
                if (/^EXTENDS/)
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   514
                {
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   515
                    if ( lc $var eq lc ExtractExtendsValue($_) )
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   516
                    {
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   517
                        push( @childarray, $tmpname );
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   518
                    }
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   519
                }
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   520
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   521
            }
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   522
            close(FILEHANDLE);
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   523
        }
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   524
    }
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   525
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   526
    close(DIR);
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   527
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   528
    foreach my $child (@childarray)
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   529
    {
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   530
        push( @childNodes, $child );
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   531
    }
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   532
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   533
    foreach my $child (@childarray)
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   534
    {
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   535
        FindChildNodes( ReturnFullVariantPath( $child, $fulldir ) );
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   536
    }
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   537
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   538
    return \@childNodes;
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   539
}
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   540
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   541
# Method to return all the buildable (i.e. No syntax erros and non-virtual) list of
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   542
# variants that can be built in the specified directory. If no directory is specified,
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   543
# the default location is searched.
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   544
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   545
# Usage: GetBuildableFeatureVariants(<Directory>)
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   546
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   547
sub GetBuildableFeatureVariants
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   548
{
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   549
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   550
    my $empty = shift;
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   551
    my $dir   = shift;
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   552
    my @list;
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   553
    my $fulldir;
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   554
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   555
    if ( $dir )
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   556
    {
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   557
        $fulldir = $dir;
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   558
    }
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   559
    else
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   560
    {
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   561
        $fulldir = $defaultDir;
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   562
    }
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   563
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   564
    opendir( DIR, $fulldir );
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   565
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   566
    while ( defined( my $file = readdir(DIR) ) )
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   567
    {
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   568
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   569
        if ( $file =~ m/\.var$/ )
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   570
        {
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   571
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   572
            $file =~ s/\.var$//;
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   573
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   574
            my $fullpath = ReturnFullVariantPath( $file, $fulldir );
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   575
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   576
            if ( CheckVarFileSyntax( $fullpath, $file )
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   577
                && !IsVirtual($fullpath) )
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   578
            {
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   579
                push( @list, $file );
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   580
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   581
            }
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   582
        }
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   583
    }
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   584
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   585
    return sort @list;
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   586
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   587
}
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   588
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   589
# Method to return a list of the valid and non-virtual children of a given VAR node, in a given location.
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   590
# If the calling var file is non-virtual, it is returned as the only element of the list If not, then
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   591
# the method parses though and finds all buildable children
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   592
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   593
# USAGE: ResolveFeatureVariant(<varname>,<dirame>);
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   594
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   595
sub ResolveFeatureVariant
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   596
{
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   597
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   598
    my $empty   = shift;
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   599
    my $varfile = shift;
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   600
    my $dir     = shift;
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   601
    my $fulldir;
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   602
    my @list;
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   603
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   604
    if ( !$dir eq "" )
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   605
    {
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   606
        $fulldir = $dir;
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   607
    }
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   608
    else
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   609
    {
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   610
        $fulldir = $defaultDir;
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   611
    }
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   612
    my $fullpath = ReturnFullVariantPath( $varfile, $fulldir );
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   613
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   614
    if ( CheckVarFileSyntax( $fullpath, $varfile ) && !IsVirtual($fullpath) )
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   615
    {
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   616
        push( @list, $varfile );
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   617
        return @list;
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   618
    }
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   619
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   620
    my %variant = GetVariant( 0, $varfile, $fulldir );
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   621
    my $child = $variant{'CHILDREN'};
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   622
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   623
    foreach my $item (@$child)
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   624
    {
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   625
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   626
        my $fullpath = ReturnFullVariantPath( $item, $fulldir );
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   627
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   628
        if ( CheckVarFileSyntax( $fullpath, $item ) && !IsVirtual($fullpath) )
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   629
        {
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   630
            push( @list, $item );
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   631
        }
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   632
    }
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   633
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   634
    return @list;
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   635
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   636
}
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   637
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   638
# Method to return all valid (no syntax errors only) list of variants
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   639
# in the specified directory. If no directory is specified,the default location is searched.
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   640
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   641
# Usage: GetValidVariants(<Directory>)
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   642
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   643
sub GetValidVariants
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   644
{
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   645
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   646
    my $empty = shift;
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   647
    my $dir   = shift;
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   648
    my @list;
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   649
    my $fulldir;
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   650
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   651
    if ( !$dir eq "" )
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   652
    {
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   653
        $fulldir = $dir;
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   654
    }
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   655
    else
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   656
    {
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   657
        $fulldir = $defaultDir;
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   658
    }
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   659
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   660
    opendir( DIR, $fulldir );
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   661
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   662
    while ( defined( my $file = readdir(DIR) ) )
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   663
    {
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   664
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   665
        if ( $file =~ m/\.var$/ )
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   666
        {
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   667
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   668
            $file =~ s/\.var$//;
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   669
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   670
            my $fullpath = ReturnFullVariantPath( $file, $fulldir );
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   671
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   672
            if ( CheckVarFileSyntax( $fullpath, $file ) )
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   673
            {
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   674
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   675
                push( @list, $file );
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   676
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   677
            }
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   678
        }
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   679
    }
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   680
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   681
    return sort @list;
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   682
}
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   683
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   684
# Returns the Variant name from a complete path, without the .var extension
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   685
sub ReturnNativeVarName
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   686
{
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   687
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   688
    my $tmp = "$_[0]";
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   689
    $tmp =~ /^.*[\\|\/](.*)\.var$/i;  
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   690
    return $1;
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   691
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   692
}
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   693
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   694
# Checks if a file passed to this function exists.
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   695
sub FileExists
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   696
{
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   697
	return -e $_[0];
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   698
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   699
}
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   700
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   701
# Checks if the default variant file (default.var) exists in the directory supplied.
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   702
# If no directory is supplied, looks under the default location.
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   703
# Should only be called directly from the featurevariantparser module reference, not from any methods within the module.
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   704
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   705
# USAGE: featurevariantparser->DefaultExists(<DirName>);
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   706
# <DirName> : Optional -- Specifies which directory to look under to find the default.var file. Can be relative or absolute.
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   707
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   708
sub DefaultExists
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   709
{
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   710
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   711
    my $dirToSearch = "";
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   712
    if ( $_[1] )
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   713
    {
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   714
        $dirToSearch = $_[1];
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   715
    }
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   716
    else
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   717
    {
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   718
        $dirToSearch = $defaultDir;
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   719
    }
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   720
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   721
    $dirToSearch =
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   722
      File::Spec->canonpath(
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   723
        File::Spec->rel2abs( File::Spec->canonpath("$dirToSearch") ) );
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   724
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   725
    return ( -e "$dirToSearch/default.var" );
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   726
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   727
}
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   728
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   729
# Checks the variant file for the correct syntax and reports any errors
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   730
# Also sets up some variables(VIRTUAL ,VARIANT_HRH and VARIANT) whilst file is being parsed.
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   731
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   732
# Usage: CheckVarFileSyntaxt(<fullpath>,<varfile>) . Note: <varfile> without .var
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   733
sub CheckVarFileSyntax
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   734
{
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   735
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   736
    my $fullpath          = $_[0];
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   737
    my $varname           = $_[1];
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   738
    my $varianthrhpresent = 0;
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   739
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   740
    open( READVAR, "<$fullpath" );
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   741
    my $exp  = "#";
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   742
    my $line = "";
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   743
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   744
    while (<READVAR>)
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   745
    {
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   746
        $line = $.;
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   747
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   748
	# Checks for a valid argument supplied to EXTENDS keyword. Checks for one and only one argument supplied.
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   749
        if (/^EXTENDS/)
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   750
        {
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   751
            if ( !m/^EXTENDS\s+./ )
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   752
            {
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   753
                print "\nERROR: Invalid format supplied to argument EXTENDS on line "
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   754
                  . "$."
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   755
                  . " in file "
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   756
                  . "$fullpath";
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   757
                return 0;
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   758
            }
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   759
            my $str = ExtractExtendsValue($_);
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   760
            if ( $str =~ /\s+/ )
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   761
            {
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   762
                print "\nERROR: Cannot extend from two nodes. Error in line "
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   763
                  . "$."
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   764
                  . " in file "
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   765
                  . "$fullpath";
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   766
                return 0;
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   767
            }
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   768
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   769
            $childNodeStatus = 1;
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   770
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   771
        }
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   772
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   773
        # Checks for the grammar of BUILD_INCLUDE, i.e. KEYWORD MODIFIER VALUE
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   774
        elsif (/^BUILD_INCLUDE/)
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   775
        {
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   776
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   777
          if (!m/^BUILD_INCLUDE\s+(append|prepend|set)\s+$pathregex/)
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   778
            {
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   779
                print "\nERROR: Invalid syntax supplied to keyword BUILD_INCLUDE on line "
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   780
                  . "$."
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   781
                  . " in file "
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   782
                  . "$fullpath";
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   783
                return 0;
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   784
            }
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   785
            
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   786
		 if (m/^BUILD_INCLUDE\s+(append|prepend|set)\s+$pathregex\s+$pathregex/)
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   787
            {
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   788
                print "\nERROR: Too many arguments supplied to keyword BUILD_INCLUDE on line "
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   789
                  . "$."
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   790
                  . " in file "
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   791
                  . "$fullpath";
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   792
                return 0;
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   793
            }
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   794
        }
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   795
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   796
        # Checks for the grammar of ROM_INCLUDE, i.e. KEYWORD MODIFIER VALUE
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   797
        elsif (/^ROM_INCLUDE/)
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   798
        {
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   799
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   800
		if (!m/^ROM_INCLUDE\s+(append|prepend|set)\s+$pathregex/)
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   801
            {
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   802
                print "\nERROR: Invalid syntax supplied to keyword ROM_INCLUDE on line "
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   803
                  . "$."
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   804
                  . " in file "
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   805
                  . "$fullpath";
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   806
                return 0;
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   807
            }
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   808
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   809
       if (m/^ROM_INCLUDE\s+(append|prepend|set)\s+$pathregex\s+$pathregex/)
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   810
            {
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   811
                print "\nERROR: Too many arguments supplied to keyword ROM_INCLUDE on line "
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   812
                  . "$."
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   813
                  . " in file "
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   814
                  . "$fullpath";
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   815
                return 0;
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   816
            }
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   817
        }
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   818
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   819
        # Checks for a valid VARIANT name
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   820
        elsif (/^VARIANT[^_HRH]/)
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   821
        {
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   822
            if ( !m/^VARIANT\s+\w+/ )
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   823
            {
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   824
                print "\nERROR: VARIANT name not specified on line " . "$."
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   825
                  . " in file "
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   826
                  . "$fullpath";
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   827
                return 0;
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   828
            }
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   829
            if ( uc("$varname") ne uc( ExtractVariantValue($_) ) )
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   830
            {
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   831
                print "\nERROR: VARIANT filename does not match variant name specified on line "
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   832
                  . "$line"
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   833
                  . " in file "
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   834
                  . "$fullpath"
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   835
                  . "\nVariant value extracted from the VAR file is " . "$_";
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   836
            }
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   837
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   838
        }
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   839
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   840
        # Checks that keyword VIRTUAL is declared correctly
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   841
        elsif (/^VIRTUAL/)
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   842
        {
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   843
            if (m/^VIRTUAL\s+\w+/)
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   844
            {
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   845
                print "\nERROR: Invalid declaration of VIRTUAL on line " . "$."
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   846
                  . " in file "
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   847
                  . "$fullpath";
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   848
                return 0;
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   849
            }
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   850
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   851
            $virtual = 1;
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   852
        }
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   853
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   854
        # Checks if VARIANT_HRH is declared correctly.
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   855
        elsif (/^VARIANT_HRH/)
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   856
        {
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   857
            $varianthrhpresent = 1;
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   858
            my $lineno = $.;
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   859
            if ( !m/^VARIANT_HRH\s+./ )
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   860
            {
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   861
                print "\nERROR: Invalid format supplied to argument VARIANT_HRH on line "
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   862
                  . "$lineno"
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   863
                  . " in file "
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   864
                  . "$fullpath";
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   865
                return 0;
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   866
            }
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   867
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   868
            my $str = ExtractHrhValue($_);
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   869
            if ( $str =~ /\s+/ )
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   870
            {
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   871
                print "\nERROR: Cannot have 2 or more hrh files. Error in line "
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   872
                  . "$lineno"
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   873
                  . " in file "
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   874
                  . "$fullpath";
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   875
                return 0;
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   876
            }
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   877
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   878
            if ( !FileExists( FixPaths($str) ) )
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   879
            {
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   880
                print "\nERROR: VARIANT HRH file : "
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   881
                  . FixPaths($str)
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   882
                  . " specified on line "
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   883
                  . "$lineno"
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   884
                  . " does not exist";
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   885
                return 0;
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   886
            }
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   887
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   888
            $varianthrh = FixPaths( ExtractHrhValue($_) );
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   889
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   890
        }
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   891
        
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   892
        # If none of the valid keywords are found
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   893
        else
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   894
        {
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   895
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   896
            # Do nothing if a comment or blank line is found
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   897
            if ( (m/$exp\s+\S/) || (m/$exp\S/) || ( !m/./ ) || (m/^\n/) )
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   898
            {
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   899
            }
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   900
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   901
            # Unsupported keyword
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   902
            else
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   903
            {
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   904
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   905
                print "\nERROR: Invalid keyword " . '"' . "$_" . '"'
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   906
                  . " found on line " . "$."
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   907
                  . " in file "
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   908
                  . "$fullpath";
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   909
                return 0;
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   910
            }
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   911
        }
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   912
    }
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   913
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   914
    close(READVAR);
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   915
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   916
    # If no HRH file defined, check if the default one exists
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   917
    if ( !$varianthrhpresent )
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   918
    {
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   919
        print "\nINFO: No VARIANT_HRH defined in VAR file, using $ENV{EPOCROOT}epoc32\\include\\variant\\$varname\.hrh" if ($verbose);
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   920
        my $str =
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   921
          ExtractHrhValue(
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   922
            "VARIANT_HRH $ENV{EPOCROOT}epoc32\\include\\variant\\$varname\.hrh"
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   923
          );
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   924
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   925
        if ( !FileExists($str) )
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   926
        {
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   927
            print "\nERROR: VARIANT HRH file : " . "$str " . "does not exist\n";
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   928
            return 0;
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   929
        }
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   930
        else
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   931
        {
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   932
            $varianthrh = $str;
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   933
        }
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   934
    }
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   935
    return 1;
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   936
}
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   937
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   938
1;
68f68128601f 1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package.
Mike Kinghan <mikek@symbian.org>
parents:
diff changeset
   939