summaryrefslogtreecommitdiffstats
path: root/o3d/samples
diff options
context:
space:
mode:
authorgspencer@google.com <gspencer@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2009-10-06 22:51:32 +0000
committergspencer@google.com <gspencer@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2009-10-06 22:51:32 +0000
commitabc98c5e56509da6534a658c967b6fe3675106dc (patch)
tree26915beb3a826866b95e3a8f24a98bd5988df9d6 /o3d/samples
parent58bb34b3fcaa95ba5e6b54e64a06738a0e399aa0 (diff)
downloadchromium_src-abc98c5e56509da6534a658c967b6fe3675106dc.zip
chromium_src-abc98c5e56509da6534a658c967b6fe3675106dc.tar.gz
chromium_src-abc98c5e56509da6534a658c967b6fe3675106dc.tar.bz2
This makes some changes to the o3d tree in preparation
for landing in Chrome. The biggest pieces here are moving some of the third party dependencies back into o3d/third_party because they need to be distinct from the chrome versions of the same packages, and because O3D is the only one using the dependency. (NPAPI in particular). Also the plugin gyp file is now modified so that it can handle being part of both a chrome developer tree and an o3d developer tree (in the latter case, it generates the plugin and installer, in the former it does not) BE AWARE that this change will change the main solution/xcodebuild file from "build/all" to be "build/o3d", but rebuilding from gyp files will NOT remove the old "build/all" one, so you might be tricked into opening the wrong one. Review URL: http://codereview.chromium.org/256081 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@28169 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'o3d/samples')
-rw-r--r--o3d/samples/split_samples.py183
1 files changed, 0 insertions, 183 deletions
diff --git a/o3d/samples/split_samples.py b/o3d/samples/split_samples.py
deleted file mode 100644
index c101fdc..0000000
--- a/o3d/samples/split_samples.py
+++ /dev/null
@@ -1,183 +0,0 @@
-#!/usr/bin/env python
-# Copyright (c) 2009 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.
-
-"""This script takes the samples and splits out the code and the HTML
-into separate files for the unified sample browser."""
-
-import datetime
-import os.path
-import re
-import sys
-
-gflags_dir = os.path.normpath(
- os.path.join(os.path.dirname(sys.argv[0]),
- '..', '..', 'third_party', 'gflags', 'python'))
-sys.path.append(gflags_dir)
-
-import gflags
-
-year = datetime.date.today().year
-copyright_header = """/*
- * Copyright %d, Google Inc.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- *
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following disclaimer
- * in the documentation and/or other materials provided with the
- * distribution.
- * * Neither the name of Google Inc. nor the names of its
- * contributors may be used to endorse or promote products derived from
- * this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-""" % year
-
-FLAGS = gflags.FLAGS
-gflags.DEFINE_string('products', None,
- 'Sets the output directory for products.')
-
-gflags.DEFINE_string('samples', None,
- 'Sets the directory for samples..')
-
-gflags.DEFINE_boolean('find_candidates', False,
- 'Tells the script to just output a list of '
- 'candidate samples.')
-
-def FindCandidates():
- contents = GetFileContents(
- os.path.join(FLAGS.samples, "interactive_samples.js")).splitlines()
- start_re = re.compile("var codeArray.*")
- end_re = re.compile("];")
- keepers = []
- inside = False
- for line in contents:
- if end_re.match(line):
- inside = False
- if inside:
- keepers.append(line)
- if start_re.match(line):
- inside = True
- keepers = ["["] + keepers + ["]"]
- candidate_data = eval("\n".join(keepers),
- {'__builtins__': None, 'true': 1, 'false': 0}, None)
-
- # Put them into a dict to make sure they're unique
- candidates = {}
- for category in candidate_data:
- for samples in category['samples']:
- candidates[samples['files'][0]] = 1
- candidates_array = candidates.keys()
- candidates_array.sort()
- for candidate in candidates_array:
- print candidate
-
-def GetFileContents(filename):
- try:
- fd = open(filename, "r")
- output = fd.read()
- fd.close()
- except IOError:
- print "Unable to read file '%s'" % (filename)
- return None
- return output
-
-def SetFileContentsIfDifferent(filename, contents):
- try:
- fd = open(filename, "r")
- old_contents = fd.read()
- fd.close()
- except IOError:
- old_contents = None
- pass
-
- # If nothing changed, then don't re-write anything.
- if old_contents == contents:
- return True
-
- try:
- fd = open(filename, "wb")
- except IOError:
- print "Unable to write file '%s'" % (filename)
- return False
- output = fd.write(contents)
- fd.close()
- return True
-
-def SplitSample(sample_file, output_html, output_js):
- script_re = re.compile(r'(.*)<script(\s+type="text/javascript")' +
- r'(\s+charset="utf-8")?(\s+id="o3dscript")?' +
- r'\s*>(.*)</script>(.*)',
- re.DOTALL)
-
- content = GetFileContents(sample_file)
- m = script_re.match(content)
- if not m:
- raise Exception('Script regexp failed on input file %s' % sample_file)
- (html_start, type, charset, id, script, html_end) = m.groups()
- if not type:
- raise Exception('Found a script (%s) that lacked the javascript tag!'
- % sample_file)
- if not charset:
- charset = ''
-
- html_content = (
- '%(html_start)s<script %(type)s%(id)s%(charset)s '
- 'src="%(js_path)s"></script>%(html_end)s' %
- {
- 'html_start' : html_start,
- 'type' : type,
- 'id' : id,
- 'charset' : charset,
- 'js_path' : os.path.basename(output_js),
- 'html_end' : html_end
- })
-
- if not SetFileContentsIfDifferent(output_html, html_content):
- return False
- if not SetFileContentsIfDifferent(output_js, copyright_header + script):
- return False
- return True
-
-def main(argv):
- try:
- files = FLAGS(argv) # Parse flags
- except gflags.FlagsError, e:
- print '%s.\nUsage: %s [<options>]\n%s' % \
- (e, sys.argv[0], FLAGS)
- sys.exit(2)
-
- # Strip off argv[0] to leave a list of html files to split.
- files = files[1:]
-
- if FLAGS.find_candidates:
- return FindCandidates()
-
- for file in files:
- basename = os.path.basename(file)
- output_html = os.path.join(FLAGS.products, basename)
- output_js = os.path.splitext(output_html)[0] + '.js'
- print "Splitting sample %s into %s and %s" % (file, output_html, output_js)
- if not SplitSample(file, output_html, output_js):
- sys.exit(2)
-
-if __name__ == "__main__":
- main(sys.argv)