qtecomplugins/supplements/xqecom/xqecom.py
branchRCL_3
changeset 10 cd2778e5acfe
parent 9 5d007b20cfd0
child 11 19a54be74e5e
--- a/qtecomplugins/supplements/xqecom/xqecom.py	Tue Aug 31 16:02:37 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,255 +0,0 @@
-#!/usr/bin/env python
-"""
-This is part of qtextensions/qtecomplugins extension. It pregenerates few files needed during compilation of ecom plugins.
-Those includes:
-  * registration resource file
-  * stubs
-  * pkg file
-  * iby file
-"""
-
-import logging
-import datetime
-import sys
-from optparse import OptionParser
-
-class Generator(object):
-	def __init__(self, args):
-		if len(args)==5:
-			if args[2]=="":
-				interfaceValue = args[0]+".dll"
-			else:
-				interfaceValue = args[2]
-			self.args = {
-			'target': args[0],
-			'uid3': args[1],
-			'interface': interfaceValue,
-			'configuration': args[3],
-			'configurationFile': args[4],
-			'timestamp': datetime.datetime.now()
-			}
-		else:
-			logging.fatal("illegal number of arguments: %d" % len(args))
-			sys.exit(1)
-	def generate(self):
-		logging.warning("%s is not generating anything useful" % self.__class__.__name__)
-	def strip(self, s):
-		l = len(s) - len(s.lstrip())
-		def stripOrNot(x):
-			x = x + '\n'
-			if l>=len(x):
-				return x
-			else:
-				return x[l:]
-		return ''.join(map(stripOrNot, s.splitlines(False)))
-		
-class RssGenerator(Generator):
-	"""
-	RSS generator.
-	"""
-	def __init__(self, args):
-		super(self.__class__, self).__init__(args)
-	def generate(self):
-		fileName = self.args['target'] + ".rss"
-		dllName = self.args['target'] + ".dll"
-		
-		if self.args['interface'] == "":
-			self.args['interface'] = dllName
-
-		if self.args['configurationFile'] != "":
-			opaqueDataFile = file(self.args['configurationFile'])
-			self.args['opaqueData'] = ((''.join(opaqueDataFile.readlines())).replace('\n', '').replace('"', '\\"'))[:255];
-		else:
-			self.args['opaqueData'] = self.args['configuration']
-
-		output = file(fileName, "w")
-		header = """\
-		// ==============================================================================
-		// Generated by xqecom on %(timestamp)s
-		// This file is generated by xqecom and should not be modified by the user.
-		// Name        : %(target)s.rss
-		// Part of     : 
-		// Description : Fixes common plugin symbols to known ordinals
-		// Version     : 
-		// ==============================================================================
-		
-		
-		#include <registryinfov2.rh>
-		
-		#include <xqtecom.hrh>
-		
-		#include <ecomstub_%(uid3)s.hrh>
-		
-		RESOURCE REGISTRY_INFO theInfo
-		{
-		resource_format_version = RESOURCE_FORMAT_VERSION_2;
-		dll_uid = %(uid3)s;
-		interfaces =
-			{
-			INTERFACE_INFO
-				{
-				interface_uid = KQtEcomPluginInterfaceUID;
-				implementations =
-					{
-					IMPLEMENTATION_INFO
-						{
-						implementation_uid = KQtEcomPluginImplementationUid;
-						version_no = 1;
-						display_name = "%(target)s.dll";
-						// SERVICE.INTERFACE_NAME
-						default_data = "%(interface)s";
-						// SERVICE.CONFIGURATION
-						opaque_data = "%(opaqueData)s";
-						}
-					};
-				}
-			};
-		}"""
-		
-		output.write(self.strip(header) % self.args )
-		
-
-class PkgGenerator(Generator):
-	"""
-	PKG generator.
-	"""
-	def __init__(self, args):
-		super(self.__class__, self).__init__(args)
-	def generate(self):
-		content='''\
-		// ============================================================================
-		// Generated by xqecom on %(timestamp)s
-		// This file is generated by xqecom and should not be modified by the user.
-		// ============================================================================
-
-		; Language
-		&EN
-
-		; SIS header: name, uid, version
-		#{%(target)s},(%(uid3)s),1,0,0
-
-		; Localised Vendor name
-		%%{"Nokia, Qt Software"}
-
-		; Unique Vendor name
-		:"Nokia, Qt Software"
-
-		; Dependencies
-		[0x101F7961],0,0,0,{"S60ProductID"}
-		[0x102032BE],0,0,0,{"S60ProductID"}
-		[0x102752AE],0,0,0,{"S60ProductID"}
-		[0x1028315F],0,0,0,{"S60ProductID"}
-		(0x2001E61C), 4, 5, 0, {"QtLibs pre-release"}
-
-		;files
-		"\\epoc32\\release\\armv5\\urel\\%(target)s.dll"    - "!:\\sys\\bin\\%(target)s.dll"
-		"\\epoc32\\data\\Z\\resource\\plugins\\%(target)s.rsc" - "!:\\resource\\plugins\\%(target)s.rsc"'''
-		
-		fileName = self.args['target'] + ".pkg"
-		output = file(fileName, "w")
-		output.write(self.strip(content) % self.args)
-	
-
-class IbyGenerator(Generator):
-	"""
-	IBY generator.
-	"""
-	def __init__(self, args):
-		super(self.__class__, self).__init__(args)
-	def generate(self):
-		self.args['TARGET']=self.args['target'].upper()
-		content="""\
-		// ============================================================================
-		// Generated by xqecom on %(timestamp)s
-		// This file is generated by xqecom and should not be modified by the user.
-		// ============================================================================
-
-		#ifndef %(TARGET)s_IBY
-		#define %(TARGET)s_IBY
-
-		#include <bldvariant.hrh>
-
-		ECOM_PLUGIN( %(target)s.dll, %(target)s.rsc )
-
-		#endif //%(TARGET)s_IBY"""
-		
-		fileName = self.args['target'] + ".iby"
-		output = file(fileName, "w")
-		output.write(self.strip(content) % self.args)
-	
-class StubsGenerator(Generator):
-	"""
-	Stubs generator.
-	"""
-	def __init__(self, args):
-		super(self.__class__, self).__init__(args)
-	def generate(self):
-		contentHrh="""\
-		// ============================================================================
-		// Generated by xqecom on %(timestamp)s
-		// This file is generated by xqecom and should not be modified by the user.
-		// ============================================================================
-
-		#ifndef ECOMSTUB_%(uid3)s_HRH
-		#define ECOMSTUB_%(uid3)s_HRH
-		#define KQtEcomPluginImplementationUid %(uid3)s
-		#endif //ECOMSTUB_%(uid3)s_HRH"""
-
-		fileName = "ecomstub_" + self.args['uid3'] + ".hrh"
-		output = file(fileName, "w")
-		output.write(self.strip(contentHrh) % self.args)
-
-		contentCpp="""\
-		// ============================================================================
-		// Generated by xqecom on %(timestamp)s
-		// This file is generated by xqecom and should not be modified by the user.
-		// ============================================================================
-
-		#include <xqplugin.h>
-		#include <ecomstub_%(uid3)s.hrh>
-		#include <ecom/implementationproxy.h>
-		XQ_PLUGIN_ECOM_HEADER(%(target)s)
-		const TImplementationProxy implementationTable[] = 
-			{
-			IMPLEMENTATION_PROXY_ENTRY(%(uid3)s, C%(target)sFactory::NewL)
-			};
-
-		EXPORT_C const TImplementationProxy* ImplementationGroupProxy(TInt& aTableCount)
-			{
-			aTableCount = sizeof( implementationTable ) / sizeof( TImplementationProxy );
-			return implementationTable;
-			}"""
-
-		fileName = "ecomstub_" + self.args['uid3'] + ".cpp"
-		output = file(fileName, "w")
-		output.write(self.strip(contentCpp) % self.args)
-	
-
-def runGenerators(generators, args):
-	for g in generators:
-		logging.debug("about to run generator: %s" % g.__name__)
-		try:
-			instance = g(args)
-			instance.generate()
-		except Exception, ex:
-			logging.error("Exception in %s: '%s'" % (g.__name__, ex))
-			logging.error("Exception in %s: '%s'" % (g.__name__, ex))
-			raise
-
-if (__name__=="__main__"):
-	arguments = sys.argv[1:]
-
-	op = OptionParser()
-	op.usage="%prog [options] [<target> <uid3> <interface> <configuration> <configurationFile>]"
-	
-#	op.add_option("-t", "--target", help="plugin target name")
-#	op.add_option("-u", "--uid3", help="plugin uid3")
-#	op.add_option("-i", "--interface", help="interface name")
-#	op.add_option("-c", "--configuration", help="configuration")
-#	op.add_option("-f", "--configuration-file", help="configuration file")
-	
-	(options, args) = op.parse_args(arguments)
-	
-	generators = [RssGenerator, PkgGenerator, IbyGenerator, StubsGenerator]
-	runGenerators(generators, args)
-