Revert "Merged all Chromoting Host code into remoting_core.dll (Windows)."
[chromium-blink-merge.git] / native_client_sdk / src / build_tools / build_examples.py
blob0e985212d03507d6af31dbe1c1bab7e162fee326
1 #!/usr/bin/env python
2 # Copyright (c) 2012 The Chromium Authors. All rights reserved.
3 # Use of this source code is governed by a BSD-style license that can be
4 # found in the LICENSE file.
6 import optparse
7 import os
8 import sys
10 import build_sdk
11 import build_utils
12 import test_sdk
14 sys.path.append(os.path.join(build_sdk.SDK_SRC_DIR, 'tools'))
15 import getos
18 def main(args):
19 parser = optparse.OptionParser()
20 parser.add_option('--copy',
21 help='Only copy the files, don\'t build.',
22 action='store_true' )
23 parser.add_option('--clobber-examples',
24 help='Don\'t examples directory before copying new files',
25 action='store_true' )
26 parser.add_option('--test-examples',
27 help='Run the pyauto tests for examples.', action='store_true')
28 parser.add_option('--experimental',
29 help='build experimental examples and libraries', action='store_true')
30 parser.add_option('-t', '--toolchain',
31 help='Build using toolchain. Can be passed more than once.',
32 action='append')
33 parser.add_option('--gyp',
34 help='Use gyp to build examples/libraries/Makefiles.',
35 action='store_true')
37 options, args = parser.parse_args(args[1:])
39 valid_toolchains = ['newlib', 'glibc', 'pnacl', 'host']
40 if not options.toolchain:
41 toolchains = valid_toolchains
42 else:
43 invalid_toolchains = set(options.toolchain) - set(valid_toolchains)
44 if invalid_toolchains:
45 print 'Ignoring invalid toolchains: %s' % (', '.join(invalid_toolchains),)
46 toolchains = list(set(options.toolchain) - invalid_toolchains)
48 pepper_ver = str(int(build_utils.ChromeMajorVersion()))
49 pepperdir = os.path.join(build_sdk.OUT_DIR, 'pepper_' + pepper_ver)
50 platform = getos.GetPlatform()
52 build_sdk.options = options
54 build_sdk.BuildStepCopyBuildHelpers(pepperdir, platform)
55 build_sdk.BuildStepCopyExamples(pepperdir, toolchains, options.experimental,
56 options.clobber_examples)
57 test_sdk.BuildStepCopyTests(pepperdir, toolchains, options.experimental,
58 options.clobber_examples)
59 if options.copy:
60 return 0
62 # False = don't clean after building the libraries directory.
63 build_sdk.BuildStepBuildLibraries(pepperdir, platform, 'src', False)
64 test_sdk.BuildStepBuildExamples(pepperdir, platform)
65 test_sdk.BuildStepBuildTests(pepperdir, platform)
66 if options.test_examples:
67 test_sdk.BuildStepRunPyautoTests(pepperdir, platform, pepper_ver)
69 return 0
72 if __name__ == '__main__':
73 sys.exit(main(sys.argv))