summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordmaclach@chromium.org <dmaclach@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-05-11 03:59:27 +0000
committerdmaclach@chromium.org <dmaclach@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-05-11 03:59:27 +0000
commit21102a67a81c06c94f39087196d3d15a6cb70cb9 (patch)
treecaec40b93b3b23ffb2f7f623c12ba5f82b9a03f4
parentd618ea6a8b59086a2750c47199960f6900f3f007 (diff)
downloadchromium_src-21102a67a81c06c94f39087196d3d15a6cb70cb9.zip
chromium_src-21102a67a81c06c94f39087196d3d15a6cb70cb9.tar.gz
chromium_src-21102a67a81c06c94f39087196d3d15a6cb70cb9.tar.bz2
Build a "real" webapp deliverable and add plugin to it.
BUG=NONE TEST=BUILD Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=84843 Review URL: http://codereview.chromium.org/6998009 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@84923 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r--remoting/remoting.gyp43
-rw-r--r--remoting/webapp/build-webapp.py54
-rw-r--r--remoting/webapp/me2mom/manifest.json.template (renamed from remoting/webapp/me2mom/manifest.json)7
3 files changed, 100 insertions, 4 deletions
diff --git a/remoting/remoting.gyp b/remoting/remoting.gyp
index d486f08..6480ad5 100644
--- a/remoting/remoting.gyp
+++ b/remoting/remoting.gyp
@@ -18,7 +18,16 @@
'mac_creator': 'Cr24',
}], # branding
], # conditions
-
+ 'plugin_extension': 'plugin',
+ 'plugin_prefix': '',
+ }],
+ ['OS=="linux"', {
+ 'plugin_extension': 'so',
+ 'plugin_prefix': 'lib',
+ }],
+ ['OS=="win"', {
+ 'plugin_extension': 'dll',
+ 'plugin_prefix': '',
}],
],
},
@@ -143,7 +152,7 @@
'xcode_settings': {
'CHROMIUM_BUNDLE_ID': '<(mac_bundle_id)',
'INFOPLIST_FILE': 'host/host_plugin-Info.plist',
- 'WRAPPER_EXTENSION': 'plugin',
+ 'WRAPPER_EXTENSION': '<(plugin_extension)',
},
# TODO(mark): Come up with a fancier way to do this. It should
# only be necessary to list framework-Info.plist once, not the
@@ -158,6 +167,36 @@
],
}, # end of target 'chromoting_host_plugin'
{
+ 'target_name': 'webapp_me2mom',
+ 'type': 'none',
+ 'dependencies': [
+ 'chromoting_host_plugin',
+ ],
+ 'sources': [
+ 'webapp/build-webapp.py',
+ ],
+ 'sources!': [
+ 'webapp/build-webapp.py',
+ ],
+ 'actions': [
+ {
+ 'action_name': 'Build Me2Mom WebApp',
+ 'inputs': [
+ 'webapp/me2mom/',
+ '<(PRODUCT_DIR)/<(plugin_prefix)chromoting_host_plugin.<(plugin_extension)',
+ ],
+ 'outputs': [
+ '<(PRODUCT_DIR)/remoting/remoting-me2mom.webapp',
+ ],
+ 'action': [
+ 'python', 'webapp/build-webapp.py',
+ '<@(_inputs)',
+ '<@(_outputs)'
+ ],
+ },
+ ],
+ }, # end of target 'webapp_me2mom'
+ {
'target_name': 'chromoting_base',
'type': '<(library)',
'dependencies': [
diff --git a/remoting/webapp/build-webapp.py b/remoting/webapp/build-webapp.py
new file mode 100644
index 0000000..bac6712
--- /dev/null
+++ b/remoting/webapp/build-webapp.py
@@ -0,0 +1,54 @@
+#!/usr/bin/python
+# Copyright (c) 2011 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+# Copies the remoting webapp resources and host plugin into a single directory.
+
+import os
+import shutil
+import sys
+
+# Do not copy git and svn files into the build.
+IGNORE_PATTERNS = ('.git', '.svn')
+
+if len(sys.argv) != 4:
+ print 'Usage: build-webapp.py <webapp-resource-dir> <host-plugin> <dst>'
+ sys.exit(1)
+
+resources = sys.argv[1]
+plugin = sys.argv[2]
+destination = sys.argv[3]
+
+try:
+ shutil.rmtree(destination)
+except OSError:
+ if os.path.exists(destination):
+ raise
+ else:
+ pass
+
+shutil.copytree(resources,
+ destination,
+ ignore=shutil.ignore_patterns(*IGNORE_PATTERNS))
+pluginName = os.path.basename(plugin)
+newPluginPath = os.path.join(destination, pluginName)
+
+# On Mac we have a directory
+if os.path.isdir(plugin):
+ shutil.copytree(plugin,
+ newPluginPath,
+ ignore=shutil.ignore_patterns(*IGNORE_PATTERNS))
+else:
+ shutil.copy2(plugin, newPluginPath)
+
+# Now massage the manifest to the right plugin name
+templatePath = os.path.join(destination, 'manifest.json.template')
+manifestPath = os.path.join(destination, 'manifest.json')
+input = open(templatePath)
+output = open(manifestPath, 'w')
+for s in input:
+ output.write(s.replace('HOST_PLUGIN_NAME', pluginName))
+input.close()
+output.close()
+os.remove(templatePath)
diff --git a/remoting/webapp/me2mom/manifest.json b/remoting/webapp/me2mom/manifest.json.template
index 9fd63edb..83ecdac 100644
--- a/remoting/webapp/me2mom/manifest.json
+++ b/remoting/webapp/me2mom/manifest.json.template
@@ -1,5 +1,5 @@
{
- "name": "Chromoting Me2Mom",
+ "name": "Remoting Me2Mom",
"version": "1.0",
"description": "Me2Mom-style remote support in Chrome.",
"app": {
@@ -8,6 +8,9 @@
}
},
"icons": {
- "128": "chromoting128.png"
+ "128": "chromoting128.png"
}
+ "plugins": [
+ { "path": "HOST_PLUGIN_NAME" },
+ ],
}