blob: 68f27397d41663f24b692a28d7ac3078a38c826d [file] [log] [blame]
raymes49fd5a32013-02-15 04:55:27 +00001#!/usr/bin/python2.6
2#
3# Copyright 2010 Google Inc. All Rights Reserved.
4
5"""Script to checkout the ChromeOS source.
6
7This script sets up the ChromeOS source in the given directory, matching a
8particular release of ChromeOS.
9"""
10
11__author__ = "raymes@google.com (Raymes Khoury)"
12
13import optparse
14import sys
15from utils import command_executer
16from utils import logger
17from utils import utils
18import build_chromeos
19
20cmd_executer = None
21
22
23def Usage(parser, message):
24 print "ERROR: " + message
25 parser.print_help()
26 sys.exit(0)
27
28
29def Main():
30 """Build Chrome browser."""
31 # Common initializations
32 global cmd_executer
33 cmd_executer = command_executer.GetCommandExecuter()
34
35 parser = optparse.OptionParser()
36 parser.add_option("--chromeos_root", dest="chromeos_root",
37 help="Target directory for ChromeOS installation.")
raymes49fd5a32013-02-15 04:55:27 +000038 parser.add_option("--version", dest="version")
39 parser.add_option("--cflags", dest="cflags",
asharif32ed84e2013-02-15 05:15:55 +000040 default="",
raymes49fd5a32013-02-15 04:55:27 +000041 help="CFLAGS for the ChromeOS packages")
42 parser.add_option("--cxxflags", dest="cxxflags",
asharif32ed84e2013-02-15 05:15:55 +000043 default="",
raymes49fd5a32013-02-15 04:55:27 +000044 help="CXXFLAGS for the ChromeOS packages")
45 parser.add_option("--ldflags", dest="ldflags",
asharif32ed84e2013-02-15 05:15:55 +000046 default="",
raymes49fd5a32013-02-15 04:55:27 +000047 help="LDFLAGS for the ChromeOS packages")
48 parser.add_option("--board", dest="board",
49 help="ChromeOS target board, e.g. x86-generic")
50
51 options = parser.parse_args()[0]
52
53 if options.chromeos_root is None:
54 Usage(parser, "--chromeos_root must be set")
55
56 if options.board is None:
57 Usage(parser, "--board must be set")
58
raymes49fd5a32013-02-15 04:55:27 +000059 if options.version is None:
60 logger.GetLogger().LogOutput("No Chrome version given so "
61 "using the default checked in version.")
62 chrome_version = ""
63 else:
64 chrome_version = "CHROME_VERSION=%s" % options.version
65
raymes49fd5a32013-02-15 04:55:27 +000066 # Emerge the browser
67 ret = (build_chromeos.
asharif32ed84e2013-02-15 05:15:55 +000068 ExecuteCommandInChroot(options.chromeos_root, None,
raymes49fd5a32013-02-15 04:55:27 +000069 "CHROME_ORIGIN=SERVER_SOURCE %s "
raymesaa351762013-02-15 04:56:51 +000070 "CFLAGS=\"$(portageq-%s envvar CFLAGS) %s\" "
71 "LDFLAGS=\"$(portageq-%s envvar LDFLAGS) %s\" "
72 "CXXFLAGS=\"$(portageq-%s envvar CXXFLAGS) %s\" "
asharif9d6ccaa2013-02-15 04:57:17 +000073 "emerge-%s --buildpkg chromeos-chrome" %
raymesaa351762013-02-15 04:56:51 +000074 (chrome_version, options.board, options.cflags,
75 options.board, options.ldflags, options.board,
76 options.cxxflags, options.board)))
raymes49fd5a32013-02-15 04:55:27 +000077
78 utils.AssertTrue(ret == 0, "build_packages failed")
79
80 # Build image
81 ret = (build_chromeos.
asharif32ed84e2013-02-15 05:15:55 +000082 ExecuteCommandInChroot(options.chromeos_root, None,
raymes81d88962013-02-15 04:56:26 +000083 "./build_image --yes --board=%s" % options.board))
raymes49fd5a32013-02-15 04:55:27 +000084
85 utils.AssertTrue(ret == 0, "build_image failed")
86
87 # Mod image for test
88 ret = (build_chromeos.
asharif32ed84e2013-02-15 05:15:55 +000089 ExecuteCommandInChroot(options.chromeos_root, None,
raymes49fd5a32013-02-15 04:55:27 +000090 "./mod_image_for_test.sh --board=%s"
91 % options.board))
92
93 utils.AssertTrue(ret == 0, "mod_image_for_test failed")
94
95if __name__ == "__main__":
96 Main()