sbsv1/buildsystem/extension/base/modload.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

# Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
# All rights reserved.
# This component and the accompanying materials are made available
# under the terms of "Eclipse Public License v1.0"
# which accompanies this distribution, and is available
# at the URL "http://www.eclipse.org/legal/epl-v10.html".
#
# Initial Contributors:
# Nokia Corporation - initial contribution.
#
# Contributors:
#
# Description:
# Runtime module-loading routine for loading e32tools modules into 'main' module
# 
#


package ModLoad;

require Exporter;
@ISA=qw(Exporter);

@EXPORT=qw(
	Load_SetVerbose
	Load_SetModulePath
	Load_ModuleL
);


use Pathutl;

my %Mode=(
	Verbose=>0
);
my $ModulePath;

sub Load_SetVerbose () {
	$Mode{Verbose}=1;
}

sub Load_SetModulePath ($) {
	$ModulePath=$_[0];
}

sub Load_ModuleL (@) {
# Loads a module into the 'main' package, including all the functions the module defines for export

	my @ModBaseList=@_;
	my $ModBase;
	foreach $ModBase (@ModBaseList) {
		$ModBase=uc $ModBase;
		die "ERROR: Can't load \"$ModulePath$ModBase.PM\"\n" unless -e "$ModulePath$ModBase.PM";
		if ($Mode{Verbose}) {
			print "Loading Module: \"",$ModBase,".PM\"\n";
		}
		package main;
		require $ModBase.".PM" or die "ERROR: Can't load function from \"$ModulePath$ModBase.PM\"\n";
		my $Package=ucfirst lc $ModBase;
		$Package->import;
	}
}

1;