summaryrefslogtreecommitdiffstats
path: root/gears
diff options
context:
space:
mode:
Diffstat (limited to 'gears')
-rw-r--r--gears/SConscript62
-rw-r--r--gears/SConscript.browser31
-rw-r--r--gears/SConscript.common27
-rw-r--r--gears/SConscript.installers161
4 files changed, 144 insertions, 137 deletions
diff --git a/gears/SConscript b/gears/SConscript
index e9e72f42..902495b 100644
--- a/gears/SConscript
+++ b/gears/SConscript
@@ -3,14 +3,17 @@
# found in the LICENSE file.
# Notes:
-# This assumes you have a working gears checkout from p4 in the current dir.
-# Steps for this:
-# > echo %USER%-chromegears > p4config
-# or on linux/osx:
-# > echo $USER-chromegears > p4config
-# > set P4CONFIG=p4config
-# > g4 client -p //depot/googleclient/gears/p4_depot_paths
-# > g4 sync
+# This is the main Gears SConscript file. From here, we include sub-scripts
+# that handle building various targets (third party libs, common exes, the
+# browser plugins themselves, and installers). Some sub-scripts return a
+# dictionary of variables to be appended to the environment, so other
+# sub-scripts can use them.
+#
+# To check out the Gears sources, you need to make sure this directory is in
+# your .gclient file, so its DEPS get processed. Example:
+# { "name" : "src/gears",
+# "url" : "svn://chrome-svn/chrome/trunk/src/gears",
+# },
#
# This is a work-in-progress conversion of the current Gears set of Makefiles.
# A lot of the stuff doesn't translate to SCons-land well, and I'm not sure
@@ -39,7 +42,6 @@ env = env.Clone(
PRIVATE_DIR = "gears_internal",
THIRD_PARTY_DIR = "third_party",
PRIVATE_THIRD_PARTY_DIR = "third_party_internal",
- SYMBIAN_DIR = "symbian_internal",
)
if not os.path.exists(env.Dir('#/$OPEN_DIR').abspath):
@@ -127,9 +129,22 @@ env.Replace(
GENFILES_DIR = "$BROWSER_OUTDIR/genfiles",
COMMON_GENFILES_DIR = "$COMMON_OUTDIR/genfiles",
- INSTALLER_BASEDIR = 'installers',
+ INSTALLER_OUTDIR = '$BASE_OUTDIR/installers',
+)
+
+# Outputs
+env.Replace(
INSTALLER_BASENAME = 'gears-${OS}-${MODE}-${VERSION}',
- INSTALLER_OUTDIR = '$BASE_OUTDIR/$INSTALLER_BASEDIR',
+
+ FF_XPI = '$INSTALLER_OUTDIR/${INSTALLER_BASENAME}.xpi',
+ WIN32_INSTALLER_MSI = '$INSTALLER_OUTDIR/${INSTALLER_BASENAME}.msi',
+ WINCE_INSTALLER_CAB = '$INSTALLER_OUTDIR/${INSTALLER_BASENAME}.cab',
+
+ SF_INSTALLER_PLUGIN_BUNDLE = '$INSTALLER_OUTDIR/Safari/StatsPane.bundle',
+ SF_PLUGIN_BUNDLE = '$INSTALLER_OUTDIR/Safari/Gears.bundle',
+ SF_PLUGIN_PROXY_BUNDLE = '$INSTALLER_OUTDIR/Safari/Gears.plugin',
+ SF_INPUTMANAGER_BUNDLE = '$INSTALLER_OUTDIR/Safari/GearsEnabler',
+ SF_INSTALLER_PKG = '$INSTALLER_OUTDIR/Safari/Gears.pkg',
)
# Library flags
@@ -706,8 +721,8 @@ elif env['OS'] == 'osx':
'WebKit',
],
M4FLAGS = [
- '-DGEARS_ENABLER_PATH="$INSTALLER_OUTDIR/Safari/GearsEnabler"',
- '-DGEARS_PLUGIN_PATH="$INSTALLER_OUTDIR/Safari/Gears.plugin"',
+ '-DGEARS_ENABLER_PATH="$SF_INPUTMANAGER_BUNDLE"',
+ '-DGEARS_PLUGIN_PATH="$SF_PLUGIN_PROXY_BUNDLE"',
'-DGEARS_INSTALLER_OUT_DIR="$INSTALLER_OUTDIR/Safari"',
],
)
@@ -766,33 +781,40 @@ sconscripts = [
# env = env.SConscript('#/$PRIVATE_DIR/SConscript',
# exports=['env', 'env_res'])
-# Include the input file list.
-env = env.SConscript('SConscript.inputs', exports=['env'])
-
for each in sconscripts:
env.SConscript(each,
exports=['env'],
variant_dir='$COMMON_OUTDIR',
duplicate=0)
-# Must come before SConscript.browser because it Imports targets from this
-# SConscript.
-env.SConscript('SConscript.common',
+# Order of execution is important here. Each sub-script adds to the
+# environment, for use by later scripts.
+env = env.SConscript('SConscript.inputs', exports=['env'])
+
+outputs = env.SConscript('SConscript.common',
exports=['env'],
variant_dir='$COMMON_OUTDIR',
duplicate=0)
+env.Append(**outputs)
browsers = [env['BROWSER']]
if browsers[0] == 'all':
browsers = env['VALID_BROWSERS']
print 'Building:', browsers
+# We run the browser script once for each browser target we want to build.
+# Each script adds variables to the environment in the form of
+# '${BROWSER}_foo = bar' for use by the installers script.
for each in browsers:
env.Replace(BROWSER = each)
- env.SConscript('SConscript.browser',
+ outputs = env.SConscript('SConscript.browser',
exports=['env'],
variant_dir='$BROWSER_OUTDIR',
duplicate=0)
+ browser_outputs = {}
+ for key, value in outputs.iteritems():
+ browser_outputs[each + '_' + key] = value
+ env.Append(**browser_outputs)
# Note: even though the installers write to $INSTALLER_OUTDIR, they need to
# read files from other dirs, so we give them a variant_dir at the toplevel.
diff --git a/gears/SConscript.browser b/gears/SConscript.browser
index 6e963a8..cb853d7 100644
--- a/gears/SConscript.browser
+++ b/gears/SConscript.browser
@@ -384,8 +384,7 @@ if env['OS'] == 'win32':
def PatternRule(t, s): return utils.PatternRule(t, s, env)
def GetInputs(var): return utils.GetInputs(var, env)
-# Include the common targets generated by SConscript.common.
-Import('common_targets')
+outputs = {}
# genfiles/%: %.m4
m4s = [env.M4(*PatternRule('$GENFILES_DIR/${SOURCE.filebase}', src))
@@ -427,7 +426,7 @@ for src in GetInputs('$BROWSER_IDLSRCS'):
xptsrcs += [x for x in idl if str(x).endswith('.xpt')]
if env['BROWSER'] in ['FF2', 'FF3']:
- env.XptLink('gears.xpt', xptsrcs)
+ outputs['MODULE_TYPELIB'] = env.XptLink('gears.xpt', xptsrcs)
# genfiles/%.res: %.rc
env.Append(BROWSER_LINKSRCS = [
@@ -436,9 +435,6 @@ env.Append(BROWSER_LINKSRCS = [
for src in GetInputs('$BROWSER_RESSRCS')]
])
-# Add common sources.
-env.Append(BROWSER_LINKSRCS = common_targets['link'])
-
# TODO: figure out why the .rc scanner doesn't notice these dependencies.
if env['OS'] in ['win32', 'wince'] and env['BROWSER'] in ['NPAPI', 'IE']:
env.Depends('$GENFILES_DIR/ui_resources.rc', html_m4s)
@@ -488,17 +484,19 @@ if env['BROWSER'] == 'SF':
module = env.ChromeSharedLibrary('gears-$OS-$ARCH-$MODE-${BROWSER}',
env.SharedObject(GetInputs('$BROWSER_CPPSRCS')) +
GetInputs('$BROWSER_LINKSRCS'))
-module = env.InstallAs('${SHLIBPREFIX}gears${SHLIBSUFFIX}', module)
+outputs['MODULE'] = env.InstallAs('${SHLIBPREFIX}gears${SHLIBSUFFIX}', module)
if env['OS'] in ['win32', 'wince'] and env['MODE'] == 'dbg':
- module += env.InstallAs('gears.pdb', 'gears-$OS-$ARCH-$MODE-${BROWSER}.pdb')
-env.Alias('gears', module)
+ outputs['MODULE_PDB'] = env.InstallAs('gears.pdb',
+ 'gears-$OS-$ARCH-$MODE-${BROWSER}.pdb')
+ env.Alias('gears', outputs['MODULE_PDB'])
+env.Alias('gears', outputs['MODULE'])
if env['OS'] == 'wince':
env.Append(WINCE_SETUP_LINKSRCS = [
[env_res.RES(*PatternRule('$GENFILES_DIR/${SOURCE.filebase}.res', src))
for src in GetInputs('$WINCE_SETUP_RESSRCS')]
])
- wince_setup = env.ChromeSharedLibrary('setup',
+ outputs['WINCE_SETUP_DLL'] = env.ChromeSharedLibrary('setup',
env.SharedObject(GetInputs('$WINCE_SETUP_CPPSRCS')) +
GetInputs('$WINCE_SETUP_LINKSRCS'))
@@ -513,12 +511,17 @@ if env['OS'] == 'win32' and env['BROWSER'] == 'IE':
env_res.File(src), EXTRA_DEFINES = 'VISTA_BROKER=1')
for src in GetInputs('$VISTA_BROKER_RESSRCS')]
])
- vista_broker = env.ChromeProgram('vista_broker',
+ outputs['VISTA_BROKER_EXE'] = env.ChromeProgram('vista_broker',
env.SharedObject(GetInputs('$VISTA_BROKER_CPPSRCS')) +
GetInputs('$VISTA_BROKER_LINKSRCS'))
- env.Alias('gears', vista_broker)
+ env.Alias('gears', outputs['VISTA_BROKER_EXE'])
if env['BROWSER'] == 'SF':
- env.ChromeSharedLibrary('gears_proxy', GetInputs('$SF_PROXY_DLL_CPPSRCS'))
- env.ChromeProgram('GearsEnabler', GetInputs('$SF_INPUTMANAGER_CPPSRCS'),
+ outputs['PROXY_DLL'] = env.ChromeSharedLibrary('gears_proxy',
+ GetInputs('$SF_PROXY_DLL_CPPSRCS'))
+ outputs['INPUTMANAGER_EXE'] = env.ChromeProgram('GearsEnabler',
+ GetInputs('$SF_INPUTMANAGER_CPPSRCS'),
FRAMEWORKS = env['FRAMEWORKS'] + Split('Foundation AppKit'))
+
+# See main SConscript for how 'outputs' is used.
+Return('outputs')
diff --git a/gears/SConscript.common b/gears/SConscript.common
index 205392f1..47ad2bd 100644
--- a/gears/SConscript.common
+++ b/gears/SConscript.common
@@ -45,13 +45,13 @@ if env['OS'] == 'osx':
#-----------------------------------------------------------------------------
# Generate the dependency tree.
-common_targets = {}
-
def PatternRule(t, s): return utils.PatternRule(t, s, env)
def GetInputs(var): return utils.GetInputs(var, env)
+outputs = {}
+
# genfiles/%: %.m4
-common_targets['m4'] = \
+outputs['COMMON_M4S'] = \
[env.M4(*PatternRule('$COMMON_GENFILES_DIR/${SOURCE.filebase}', src))
for src in GetInputs('$COMMON_M4SRCS')]
@@ -60,19 +60,16 @@ if GetInputs('$COMMON_BINSRCS'):
bins = [env.Bin2cpp(*PatternRule(
'$COMMON_GENFILES_DIR/${SOURCE.file}.from_bin.cc', src))
for src in GetInputs('$COMMON_BINSRCS')]
- common_targets['link'] = [env.SharedObject(bin) for bin in bins]
-else:
- common_targets['link'] = []
+ outputs['BROWSER_LINKSRCS'] = [env.SharedObject(bin) for bin in bins]
-Export('common_targets')
-
-env.ChromeProgram('ipc_test', GetInputs('$IPC_TEST_CPPSRCS'))
+outputs['IPC_TEST_EXE'] = env.ChromeProgram('ipc_test',
+ GetInputs('$IPC_TEST_CPPSRCS'))
# Note: crash_sender.exe name needs to stay in sync with name used in
# exception_handler_win32.cc and exception_handler_osx/google_breakpad.mm.
-crash_sender = None
+outputs['CRASH_SENDER_EXE'] = None
if env['OS'] == 'win32':
- crash_sender = env.ChromeProgram('crash_sender',
+ outputs['CRASH_SENDER_EXE'] = env.ChromeProgram('crash_sender',
GetInputs('$CRASH_SENDER_CPPSRCS'),
LIBS = Split('advapi32.lib shell32.lib wininet.lib'))
elif env['OS'] == 'osx':
@@ -80,10 +77,12 @@ elif env['OS'] == 'osx':
# crash_sender = env.Program('crash_sender', crash_sender_srcs,
# FRAMEWORKS = Split('Carbon Cocoa Foundation IOKit SystemConfiguration'),
# LIBS='stdc++')
-env.Alias('gears', crash_sender)
+env.Alias('gears', outputs['CRASH_SENDER_EXE'])
if env['OS'] == 'osx':
- # SF_INSTALLER_PLUGIN_EXE
- env.ChromeSharedLibrary('stats_pane',
+ outputs['SF_INSTALLER_PLUGIN_EXE'] = env.ChromeSharedLibrary('stats_pane',
GetInputs('$SF_INSTALLER_PLUGIN_CPPSRCS'),
FRAMEWORKS = env['FRAMEWORKS'] + Split('Cocoa InstallerPlugins'))
+
+# See main SConscript for how 'outputs' is used.
+Return('outputs')
diff --git a/gears/SConscript.installers b/gears/SConscript.installers
index 359a2b0..d72324a 100644
--- a/gears/SConscript.installers
+++ b/gears/SConscript.installers
@@ -8,24 +8,11 @@ import re
import shutil
import subprocess
import utils
+import SCons.Node
Import('env')
-env = env.Clone(
- FF_XPI = '$INSTALLER_BASEDIR/${INSTALLER_BASENAME}.xpi',
- WIN32_INSTALLER_MSI = '$INSTALLER_BASEDIR/${INSTALLER_BASENAME}.msi',
- WINCE_INSTALLER_CAB = '$INSTALLER_BASEDIR/${INSTALLER_BASENAME}.cab',
-
- SF_INSTALLER_PLUGIN_BUNDLE = '$INSTALLER_BASEDIR/Safari/StatsPane.bundle',
- SF_PLUGIN_BUNDLE = '$INSTALLER_BASEDIR/Safari/Gears.bundle',
- SF_PLUGIN_PROXY_BUNDLE = '$INSTALLER_BASEDIR/Safari/Gears.plugin',
- SF_INPUTMANAGER_BUNDLE = '$INSTALLER_BASEDIR/Safari/GearsEnabler',
- SF_INSTALLER_PKG = '$INSTALLER_BASEDIR/Safari/Gears.pkg',
-
- FF2_MODULE = '${SHLIBPREFIX}gears_ff2${SHLIBSUFFIX}',
- MODULE = '${SHLIBPREFIX}gears${SHLIBSUFFIX}',
- WINCE_SETUP = '${SHLIBPREFIX}setup${SHLIBSUFFIX}',
-)
+env = env.Clone()
if env['OS'] in ['win32', 'wince']:
env.Append(DATE = 'echo %DATE%.%TIME%')
@@ -102,9 +89,8 @@ if env['OS'] == 'win32':
('OurMsiVersion', '$MSI_VERSION'),
('OurCommonPath', '$COMMON_OUTDIR'),
('OurIEPath', '$IE_OUTDIR'),
- ('OurIpcTestPath', '$BASE_OUTDIR/common'),
- ('OurFFPath',
- '$BASE_OUTDIR/$INSTALLER_BASEDIR/$INSTALLER_BASENAME'),
+ ('OurIpcTestPath', '$COMMON_OUTDIR'),
+ ('OurFFPath', '$INSTALLER_OUTDIR/$INSTALLER_BASENAME'),
('OurNpapiPath', '$NPAPI_OUTDIR'),
]
)
@@ -157,15 +143,20 @@ def DirBuilder(env, dirtarget, dirsrcs):
srcs = []
actions = [Delete('${TARGET.base}')]
for target, sources in dirsrcs:
- srcs += sources
-
target_is_dir = target.endswith('/')
if target_is_dir:
actions.append(SafeMkdir('${TARGET.base}/' + target))
else:
actions.append(SafeMkdir('${TARGET.base}/' + os.path.dirname(target)))
- for source in sources:
- source = env.subst(str(source))
+ for source in env.Flatten(sources):
+ source = env.subst(source, conv=lambda x:x)
+ srcs.append(source)
+
+ # Special-case for Nodes and Node lists: use their absolute paths for
+ # the Copy() action, otherwise it will be relative to our variant dir
+ # (not what Copy expects).
+ if isinstance(source, list): source = source[0]
+ if isinstance(source, SCons.Node.Node): source = source.abspath
# HACK: Compensate for the workaround below. We want the .dir file
# to be the dependency to the Command() builder, but we want to copy
@@ -188,19 +179,10 @@ def DirBuilder(env, dirtarget, dirsrcs):
# that that file changes everytime we execute these actions.
# See http://scons.tigris.org/issues/show_bug.cgi?id=2261
actions += ['$DATE > ${TARGET}']
- return env.Command(dirtarget + '.dir', srcs, actions)
+ return env.Command(env.subst(dirtarget) + '.dir', srcs, actions)
env.AddMethod(DirBuilder)
-def FirefoxInstaller(env):
- # This step is a little hackish.
- # Why: We want to copy files from both the build and source dirs. We have
- # to be explicit about which tree to pull from, because otherwise scons gets
- # confused - specifically, when copying a directory from the source dir,
- # scons uses the build dir's version instead.
- # How: We specify "*_OUTDIR" for outputs to pull from the build dir.
- # However, this won't work as an input to a builder, so we strip that off
- # when passing to Command(). The Copy action, however, receives the full
- # qualified path, since it knows nothing about variant build dirs.
+def FirefoxInstaller():
dirsrcs = [
('/', ['$FF3_OUTDIR/genfiles/install.rdf',
'$FF3_OUTDIR/genfiles/chrome.manifest']),
@@ -209,31 +191,31 @@ def FirefoxInstaller(env):
GetInputs('$FF3_RESOURCES $COMMON_RESOURCES')),
('chrome/chromeFiles/locale', ['$FF3_OUTDIR/genfiles/i18n']),
('components/',
- ['$FF3_OUTDIR/gears.xpt',
+ ['$FF3_MODULE_TYPELIB',
'$OPEN_DIR/base/firefox/static_files/components/bootstrap.js']),
- ('components/$FF2_MODULE', ['$FF2_OUTDIR/$MODULE']),
- ('components/$MODULE', ['$FF3_OUTDIR/$MODULE']),
+ ('components/${SHLIBPREFIX}gears${SHLIBSUFFIX}', ['$FF2_MODULE']),
+ ('components/${SHLIBPREFIX}gears_ff2${SHLIBSUFFIX}', ['$FF3_MODULE']),
]
if env['USING_CCTESTS']:
dirsrcs += [
- ('components/', ['$COMMON_OUTDIR/ipc_test${PROGSUFFIX}']),
+ ('components/', ['$IPC_TEST_EXE']),
]
if env['OS'] != 'win32':
# TODO(playmobil): Inspector should be located in extensions dir on win32.
dirsrcs += [
- ('resources/inspector', [env.Dir('$OPEN_DIR/inspector')]),
+ ('resources/inspector', [env.Dir('#/$OPEN_DIR/inspector')]),
('resources/inspector/common/', ['$OPEN_DIR/sdk/gears_init.js',
'$OPEN_DIR/sdk/samples/sample.js']),
]
if env['MODE'] == 'dbg' and env['OS'] in ['win32', 'wince']:
dirsrcs += [
- ('components/gears_ff2.pdb', ['$FF2_OUTDIR/gears.pdb']),
- ('components/gears.pdb', ['$FF3_OUTDIR/gears.pdb']),
+ ('components/gears_ff2.pdb', ['$FF2_MODULE_PDB']),
+ ('components/gears.pdb', ['$FF3_MODULE_PDB']),
]
# TODO: notifier, os x
- dir = env.DirBuilder('$INSTALLER_BASEDIR/${INSTALLER_BASENAME}', dirsrcs)
+ dir = env.DirBuilder('$INSTALLER_OUTDIR/$INSTALLER_BASENAME', dirsrcs)
actions = [
# Mark files writeable to allow .xpi rebuilds
'chmod -R 777 ${SOURCE.base}',
@@ -241,9 +223,9 @@ def FirefoxInstaller(env):
]
return env.Command('$FF_XPI', dir, actions)
-env.AddMethod(FirefoxInstaller)
+firefox_installer = FirefoxInstaller()
-def Win32Installer(env):
+def Win32Installer():
wxiobj = env.Command(
'$COMMON_GENFILES_DIR/win32_msi.wxiobj',
'$COMMON_GENFILES_DIR/win32_msi.wxs',
@@ -260,13 +242,12 @@ def Win32Installer(env):
# light.exe must be run from $OPEN_DIR
msi = env.Command(
'$WIN32_INSTALLER_MSI',
- [wxiobj, notifier, '$FF_XPI', '$IE_OUTDIR/$MODULE',
- '$NPAPI_OUTDIR/$MODULE'],
+ [wxiobj, notifier, firefox_installer, '$IE_MODULE', '$NPAPI_MODULE'],
'cd $OPEN_DIR && light.exe -out ${TARGET.abspath} ${SOURCES[0].abspath}')
return msi
-env.AddMethod(Win32Installer)
+win32_installer = Win32Installer()
-def WinCEInstaller(env):
+def WinCEInstaller():
env['ToUnixPath'] = ToUnixPath
inf_outdir = ToUnixPath(env.subst('$IE_OUTDIR'))
inf = env.Command(
@@ -275,97 +256,99 @@ def WinCEInstaller(env):
'sed -e "s#bin-....wince-arm.ie.#' + inf_outdir + '#g" $SOURCE > $TARGET')
cab = env.Command(
'$WINCE_INSTALLER_CAB',
- [inf, '$IE_OUTDIR/$MODULE', '$IE_OUTDIR/$WINCE_SETUP'],
+ [inf, '$IE_MODULE', '$IE_WINCE_SETUP_DLL'],
['cabwiz ${ToUnixPath(str(SOURCE))} /compress'
' /err ${SOURCES[0].base}.log',
Copy('$TARGET', '${SOURCE.base}.CAB')])
return cab
-env.AddMethod(WinCEInstaller)
+wince_installer = WinCEInstaller()
-def SafariPluginBundle(env):
+def SafariPluginBundle():
"""This is the actual gears plugin bundle for Safari."""
dirsrcs = [
('Contents/', ['$SF_OUTDIR/genfiles/Info.plist']),
('Contents/Resources/English.lproj/InfoPlist.strings',
['$OPEN_DIR/tools/osx/English.lproj/InfoPlist.strings']),
- ('Contents/Resources/', env.Glob('$OPEN_DIR/ui/safari/*.nib')),
+ ('Contents/Resources/', env.Glob('#/$OPEN_DIR/ui/safari/*.nib')),
# TODO(mpcomplete): crash sendor/inspector, launchurl
- ('Contents/MacOS/', ['$SF_OUTDIR/$MODULE']),
+ ('Contents/MacOS/', ['$SF_MODULE']),
]
if env['USING_CCTESTS']:
dirsrcs += [
- ('Contents/Resources/', ['$COMMON_OUTDIR/ipc_test${PROGSUFFIX}']),
+ ('Contents/Resources/', ['$IPC_TEST_EXE']),
]
- return env.DirBuilder('${SF_PLUGIN_BUNDLE}', dirsrcs)
-env.AddMethod(SafariPluginBundle)
+ return env.DirBuilder('$SF_PLUGIN_BUNDLE', dirsrcs)
+safari_plugin_bundle = SafariPluginBundle()
-def SafariPluginProxyBundle(env):
+def SafariPluginProxyBundle():
"""This is a proxy plugin which simply loads gears into Safari and keeps
it in memory. It exists so that gears doesn't unload when Safari wants us
to, since that causes crashes."""
- plugin = env.SafariPluginBundle()
dirsrcs = [
('Contents/', ['$SF_OUTDIR/genfiles/Info.plist']),
- ('Contents/MacOS/${SHLIBPREFIX}gears${SHLIBSUFFIX}',
- ['$SF_OUTDIR/${SHLIBPREFIX}gears_proxy${SHLIBSUFFIX}']),
- ('Contents/Resources/', ['$BASE_OUTDIR/' + str(plugin[0])]),
+ ('Contents/MacOS/${SHLIBPREFIX}gears${SHLIBSUFFIX}', ['$SF_PROXY_DLL']),
+ ('Contents/Resources/', [safari_plugin_bundle]),
('Contents/Resources/', ['$OPEN_DIR/tools/osx/uninstall.command']),
]
- return env.DirBuilder('${SF_PLUGIN_PROXY_BUNDLE}', dirsrcs)
-env.AddMethod(SafariPluginProxyBundle)
+ return env.DirBuilder('$SF_PLUGIN_PROXY_BUNDLE', dirsrcs)
+safari_plugin_proxy_bundle = SafariPluginProxyBundle()
-def SafariInstallerPluginBundle(env):
+def SafariInstallerPluginBundle():
dirsrcs = [
('Contents/Info.plist',
['$OPEN_DIR/base/safari/advanced_stats_sheet.plist']),
- ('Contents/MacOS/',
- ['$COMMON_OUTDIR/${SHLIBPREFIX}stats_pane${SHLIBSUFFIX}']),
+ ('Contents/MacOS/', ['$SF_INSTALLER_PLUGIN_EXE']),
('Contents/Resources/AdvancedStatsSheet.nib',
- [env.Dir('$OPEN_DIR/base/safari/advanced_stats_sheet.nib')]),
+ [env.Dir('#/$OPEN_DIR/base/safari/advanced_stats_sheet.nib')]),
]
- return env.DirBuilder('${SF_INSTALLER_PLUGIN_BUNDLE}', dirsrcs)
-env.AddMethod(SafariInstallerPluginBundle)
+ return env.DirBuilder('$SF_INSTALLER_PLUGIN_BUNDLE', dirsrcs)
+safari_installer_plugin_bundle = SafariInstallerPluginBundle()
-def SafariInstallerPackage(env):
- proxy = env.SafariPluginProxyBundle()
- pkg = env.Iceberg(env.Dir('${SF_INSTALLER_PKG}'),
- [
- '$SF_OUTDIR/genfiles/installer.packproj',
- '$BASE_OUTDIR/' + str(proxy[0]),
- ])
- return pkg
-env.AddMethod(SafariInstallerPackage)
-
-def SafariInputManagerBundle(env):
+def SafariInputManagerBundle():
info = env.Command('$SF_OUTDIR/genfiles/Enabler-Info.plist',
'$OPEN_DIR/tools/osx/Enabler-Info.plist',
'cat $SOURCE |'
'sed \'s/$${EXECUTABLE_NAME}/GearsEnabler/\' |'
'sed \'s/$${PRODUCT_NAME}/GearsEnabler/\' > $TARGET')
dirsrcs = [
- ('Contents/Info.plist', ['$BASE_OUTDIR/' + str(info[0])]),
- ('Contents/MacOS/', ['$SF_OUTDIR/GearsEnabler']),
+ ('Contents/Info.plist', [info]),
+ ('Contents/MacOS/', ['$SF_INPUTMANAGER_EXE']),
('Contents/Resources/English.lproj/',
['$OPEN_DIR/tools/osx/English.lproj/InfoPlist.strings']),
]
- return env.DirBuilder('${SF_INPUTMANAGER_BUNDLE}', dirsrcs)
-env.AddMethod(SafariInputManagerBundle)
+ return env.DirBuilder('$SF_INPUTMANAGER_BUNDLE', dirsrcs)
+safari_input_manager_bundle = SafariInputManagerBundle()
+
+def SafariInstallerPackage():
+ pkg = env.Iceberg(env.Dir('${SF_INSTALLER_PKG}'),
+ [
+ '$SF_OUTDIR/genfiles/installer.packproj',
+ safari_plugin_proxy_bundle,
+ safari_input_manager_bundle,
+ ])
+ return pkg
+safari_installer_package = SafariInstallerPackage()
installers = []
if 'FF3' in env['VALID_BROWSERS']:
- installers += env.FirefoxInstaller()
+ installers += firefox_installer
if 'SF' in env['VALID_BROWSERS']:
- installers += env.SafariInstallerPluginBundle()
- installers += env.SafariInstallerPackage()
- installers += env.SafariInputManagerBundle()
+ installers += [
+ safari_input_manager_bundle,
+ safari_plugin_bundle,
+ safari_plugin_proxy_bundle,
+ safari_installer_plugin_bundle,
+ safari_installer_package,
+ safari_input_manager_bundle,
+ ]
if env['OS'] == 'win32':
- installers += env.Win32Installer()
+ installers += win32_installer
if env['OS'] == 'wince':
- installers += env.WinCEInstaller()
+ installers += wince_installer
env.Alias('gears-installers', installers)