| Index: packagerKMeleon.py |
| =================================================================== |
| --- a/packagerKMeleon.py |
| +++ b/packagerKMeleon.py |
| @@ -1,16 +1,16 @@ |
| # coding: utf-8 |
| # This Source Code is subject to the terms of the Mozilla Public License |
| # version 2.0 (the "License"). You can obtain a copy of the License at |
| # http://mozilla.org/MPL/2.0/. |
| import os, subprocess, re, tempfile, shutil, json |
| -import buildtools.packager as packager |
| +import buildtools.packagerGecko as packagerBase |
| libs = ( |
| 'libcmt.lib', 'kernel32.lib', 'user32.lib', 'gdi32.lib', 'comctl32.lib', |
| 'nspr4.lib', 'plds4.lib', 'plc4.lib', 'xpcom.lib', 'xpcomglue_s.lib', |
| 'embed_base_s.lib', 'unicharutil_external_s.lib', 'js3250.lib' |
| ) |
| compileflags = ('-c', '-O1', '-W3', '-MT', '-DXP_WIN', '-Zc:wchar_t-') |
| linkflags = ('-DLL', '-NODEFAULTLIB', '-NOLOGO') |
| @@ -87,97 +87,97 @@ def buildDLL(baseDir, fileName, version) |
| handle = open(outFile, 'rb') |
| result = handle.read() |
| handle.close() |
| return result |
| finally: |
| shutil.rmtree(tempDir, ignore_errors=True) |
| def createManifest(baseExtDir, params): |
| - localeMetadata = packager.readLocaleMetadata(baseExtDir, params['locales']) |
| + localeMetadata = packagerBase.readLocaleMetadata(baseExtDir, params['locales']) |
| manifest = {} |
| metadata = params['metadata'] |
| manifest['id'] = metadata.get('general', 'id') |
| manifest['version'] = metadata.get('general', 'version') |
| manifest['version'] = params['version'] |
| - manifest['name'] = localeMetadata[packager.defaultLocale]['name'] |
| - manifest['description'] = localeMetadata[packager.defaultLocale]['description'] |
| + manifest['name'] = localeMetadata[packagerBase.defaultLocale]['name'] |
| + manifest['description'] = localeMetadata[packagerBase.defaultLocale]['description'] |
| manifest['creator'] = metadata.get('general', 'author') |
| manifest['homepage'] = metadata.get('homepage', 'default') |
| if metadata.has_section('contributors'): |
| manifest['contributors'] = map(lambda item: item[1], metadata.items('contributors')) |
| manifest['contributors'].sort() |
| else: |
| manifest['contributors'] = [] |
| - manifest['translators'] = packager.getTranslators(localeMetadata) |
| + manifest['translators'] = packagerBase.getTranslators(localeMetadata) |
| return 'var EXPORTED_SYMBOLS = ["manifest"];\nvar manifest = ' + json.dumps(manifest) |
| def processChromeManifest(data, baseName): |
| # Manifest location is different in K-Meleon, update paths |
| data = re.sub(r'jar:chrome/', 'jar:', data) |
| data = re.sub(r'(\s)modules/', r'\1../modules/%s/' % baseName, data) |
| data = re.sub(r'(\s)defaults/', r'\1../defaults/', data) |
| return data |
| def createBuild(baseDir, outFile=None, locales=None, buildNum=None, releaseBuild=False): |
| if buildNum == None: |
| - buildNum = packager.getBuildNum(baseDir) |
| + buildNum = packagerBase.getBuildNum(baseDir) |
| baseExtDir = getBaseExtensionDir(baseDir) |
| if locales == None: |
| - locales = packager.getLocales(baseExtDir) |
| + locales = packagerBase.getLocales(baseExtDir) |
| elif locales == 'all': |
| - locales = packager.getLocales(baseExtDir, True) |
| + locales = packagerBase.getLocales(baseExtDir, True) |
| - metadata = packager.readMetadata(baseExtDir) |
| + metadata = packagerBase.readMetadata(baseExtDir) |
| version = metadata.get('general', 'version') |
| if not releaseBuild: |
| version += '.' + buildNum |
| params = { |
| 'locales': locales, |
| 'releaseBuild': releaseBuild, |
| 'buildNum': buildNum, |
| 'version': version.encode('utf-8'), |
| 'metadata': metadata, |
| 'limitMetadata': False, |
| } |
| baseName = metadata.get('general', 'baseName') |
| chromeFiles = {} |
| for xulFile in getXULFiles(baseDir): |
| - packager.readFile(chromeFiles, params, xulFile, 'content/ui/%s' % os.path.basename(xulFile)) |
| + packagerBase.readFile(chromeFiles, params, xulFile, 'content/ui/%s' % os.path.basename(xulFile)) |
| files = {} |
| files['modules/%s/Manifest.jsm' % baseName] = createManifest(baseExtDir, params) |
| files['kplugins/%s.dll' % baseName] = buildDLL(baseDir, '%s.dll' % baseName, version) |
| - files['chrome/%s.jar' % baseName] = packager.createChromeJar(baseExtDir, params, files=chromeFiles) |
| + files['chrome/%s.jar' % baseName] = packagerBase.createChromeJar(baseExtDir, params, files=chromeFiles) |
| - packager.readFile(files, params, os.path.join(baseExtDir, 'chrome.manifest'), 'chrome/%s.manifest' % baseName) |
| + packagerBase.readFile(files, params, os.path.join(baseExtDir, 'chrome.manifest'), 'chrome/%s.manifest' % baseName) |
| files['chrome/%s.manifest' % baseName] = processChromeManifest(files['chrome/%s.manifest' % baseName], baseName) |
| for macroFile in getMacroFiles(baseDir): |
| - packager.readFile(files, params, macroFile, 'macros/%s' % os.path.basename(macroFile)) |
| + packagerBase.readFile(files, params, macroFile, 'macros/%s' % os.path.basename(macroFile)) |
| for interfaceFile in getInterfaceFiles(baseDir): |
| - packager.readFile(files, params, interfaceFile, 'components/%s' % os.path.basename(interfaceFile)) |
| + packagerBase.readFile(files, params, interfaceFile, 'components/%s' % os.path.basename(interfaceFile)) |
| for moduleFile in getModuleFiles(baseDir): |
| - packager.readFile(files, params, moduleFile, 'modules/%s/%s' % (baseName, os.path.basename(moduleFile))) |
| + packagerBase.readFile(files, params, moduleFile, 'modules/%s/%s' % (baseName, os.path.basename(moduleFile))) |
| for prefsFile in getPrefsFiles(baseDir): |
| - packager.readFile(files, params, prefsFile, 'defaults/pref/%s' % os.path.basename(prefsFile)) |
| + packagerBase.readFile(files, params, prefsFile, 'defaults/pref/%s' % os.path.basename(prefsFile)) |
| - packager.readFile(files, params, os.path.join(baseExtDir, 'defaults'), 'defaults') |
| - packager.readFile(files, params, os.path.join(baseExtDir, 'modules'), 'modules/%s' %baseName) |
| + packagerBase.readFile(files, params, os.path.join(baseExtDir, 'defaults'), 'defaults') |
| + packagerBase.readFile(files, params, os.path.join(baseExtDir, 'modules'), 'modules/%s' %baseName) |
| # Correct files names (defaults/preferences/ => defaults/pref/) |
| newFiles = {} |
| for key, value in files.iteritems(): |
| if key.startswith('defaults/preferences/'): |
| key = 'defaults/pref/' + key[len('defaults/preferences/'):] |
| newFiles[key] = value |
| files = newFiles |
| # Allow local metadata to overrite settings from base extension |
| - metadata.read(packager.getMetadataPath(baseDir)) |
| + metadata.read(packagerBase.getMetadataPath(baseDir)) |
| if outFile == None: |
| - outFile = packager.getDefaultFileName(baseDir, metadata, version, 'zip') |
| + outFile = packagerBase.getDefaultFileName(baseDir, metadata, version, 'zip') |
| - packager.writeXPI(files, outFile) |
| + packagerBase.writeXPI(files, outFile) |