Index: native_client_sdk/src/build_tools/build_projects.py |
diff --git a/native_client_sdk/src/build_tools/build_projects.py b/native_client_sdk/src/build_tools/build_projects.py |
index ab3752cbedb43db58e6d921c7b052d82aeca7142..8b896fe3aea426513ca1a8fd47555a60272a867b 100755 |
--- a/native_client_sdk/src/build_tools/build_projects.py |
+++ b/native_client_sdk/src/build_tools/build_projects.py |
@@ -40,16 +40,37 @@ VALID_TOOLCHAINS = [ |
] |
# Global verbosity setting. |
-# If set to try (normally via a command line arg) then build_projects will |
+# If set to True (normally via a command line arg) then build_projects will |
# add V=1 to all calls to 'make' |
verbose = False |
+def Trace(msg): |
+ if verbose: |
+ sys.stderr.write(str(msg) + '\n') |
+ |
+ |
+def CopyFile(src, dst): |
+ buildbot_common.CopyFile(src, dst, verbose) |
+ |
+ |
+def CopyDir(src, dst, **kwargs): |
+ buildbot_common.CopyDir(src, dst, verbose=verbose, **kwargs) |
+ |
+ |
+def RemoveDir(dst): |
+ buildbot_common.RemoveDir(dst, verbose) |
+ |
+ |
+def MakeDir(dst): |
+ buildbot_common.MakeDir(dst, verbose) |
+ |
+ |
def CopyFilesFromTo(filelist, srcdir, dstdir): |
for filename in filelist: |
srcpath = os.path.join(srcdir, filename) |
dstpath = os.path.join(dstdir, filename) |
- buildbot_common.CopyFile(srcpath, dstpath) |
+ CopyFile(srcpath, dstpath) |
def UpdateHelpers(pepperdir, clobber=False): |
@@ -59,8 +80,8 @@ def UpdateHelpers(pepperdir, clobber=False): |
exampledir = os.path.join(pepperdir, 'examples') |
if clobber: |
- buildbot_common.RemoveDir(exampledir) |
- buildbot_common.MakeDir(exampledir) |
+ RemoveDir(exampledir) |
+ MakeDir(exampledir) |
# Copy files for individual build and landing page |
files = ['favicon.ico', 'httpd.cmd', 'index.css', 'index.js', |
@@ -68,16 +89,13 @@ def UpdateHelpers(pepperdir, clobber=False): |
CopyFilesFromTo(files, SDK_RESOURCE_DIR, exampledir) |
# Copy tools scripts and make includes |
- buildbot_common.CopyDir(os.path.join(SDK_SRC_DIR, 'tools', '*.py'), |
- tools_dir) |
- buildbot_common.CopyDir(os.path.join(SDK_SRC_DIR, 'tools', '*.mk'), |
- tools_dir) |
+ CopyDir(os.path.join(SDK_SRC_DIR, 'tools', '*.py'), tools_dir) |
+ CopyDir(os.path.join(SDK_SRC_DIR, 'tools', '*.mk'), tools_dir) |
# Copy tools/lib scripts |
tools_lib_dir = os.path.join(pepperdir, 'tools', 'lib') |
- buildbot_common.MakeDir(tools_lib_dir) |
- buildbot_common.CopyDir(os.path.join(SDK_SRC_DIR, 'tools', 'lib', '*.py'), |
- tools_lib_dir) |
+ MakeDir(tools_lib_dir) |
+ CopyDir(os.path.join(SDK_SRC_DIR, 'tools', 'lib', '*.py'), tools_lib_dir) |
# On Windows add a prebuilt make |
if getos.GetPlatform() == 'win': |
@@ -133,15 +151,15 @@ def UpdateProjects(pepperdir, project_tree, toolchains, |
for arch in LIB_DICT[platform]: |
dirpath = os.path.join(libdir, '%s_%s_host' % (platform, arch), config) |
if clobber: |
- buildbot_common.RemoveDir(dirpath) |
- buildbot_common.MakeDir(dirpath) |
+ RemoveDir(dirpath) |
+ MakeDir(dirpath) |
landing_page = None |
for branch, projects in project_tree.iteritems(): |
dirpath = os.path.join(pepperdir, branch) |
if clobber: |
- buildbot_common.RemoveDir(dirpath) |
- buildbot_common.MakeDir(dirpath) |
+ RemoveDir(dirpath) |
+ MakeDir(dirpath) |
targets = [desc['NAME'] for desc in projects] |
deps = GetDeps(projects) |
@@ -158,7 +176,8 @@ def UpdateProjects(pepperdir, project_tree, toolchains, |
srcroot = os.path.dirname(desc['FILEPATH']) |
generate_make.ProcessProject(pepperdir, srcroot, pepperdir, desc, |
toolchains, configs=configs, |
- first_toolchain=first_toolchain) |
+ first_toolchain=first_toolchain, |
+ verbose=verbose) |
if branch.startswith('examples'): |
landing_page.AddDesc(desc) |
@@ -221,15 +240,15 @@ def BuildProjectsBranch(pepperdir, branch, deps, clean, config, args=None): |
else: |
make_cmd.append('TOOLCHAIN=all') |
- buildbot_common.Run(make_cmd, cwd=make_dir, env=env) |
+ buildbot_common.Run(make_cmd, cwd=make_dir, env=env, verbose=verbose) |
if clean: |
# Clean to remove temporary files but keep the built |
- buildbot_common.Run(make_cmd + ['clean'], cwd=make_dir, env=env) |
+ buildbot_common.Run(make_cmd + ['clean'], cwd=make_dir, env=env, |
+ verbose=verbose) |
def BuildProjects(pepperdir, project_tree, deps=True, |
clean=False, config='Debug'): |
- |
# Make sure we build libraries (which live in 'src') before |
# any of the examples. |
build_first = [p for p in project_tree if p != 'src'] |
@@ -245,7 +264,8 @@ def main(argv): |
help='Clobber project directories before copying new files', |
action='store_true', default=False) |
parser.add_option('-b', '--build', |
- help='Build the projects.', action='store_true') |
+ help='Build the projects. Otherwise the projects are only copied.', |
+ action='store_true') |
parser.add_option('--config', |
help='Choose configuration to build (Debug or Release). Builds both ' |
'by default') |
@@ -272,6 +292,10 @@ def main(argv): |
options, args = parser.parse_args(argv[1:]) |
+ global verbose |
+ if options.verbose: |
+ verbose = True |
+ |
if 'NACL_SDK_ROOT' in os.environ: |
# We don't want the currently configured NACL_SDK_ROOT to have any effect |
# on the build. |
@@ -292,37 +316,35 @@ def main(argv): |
if 'host' in options.toolchain: |
options.toolchain.remove('host') |
options.toolchain.append(getos.GetPlatform()) |
- print 'Adding platform: ' + getos.GetPlatform() |
+ Trace('Adding platform: ' + getos.GetPlatform()) |
ValidateToolchains(options.toolchain) |
filters = {} |
if options.toolchain: |
filters['TOOLS'] = options.toolchain |
- print 'Filter by toolchain: ' + str(options.toolchain) |
+ Trace('Filter by toolchain: ' + str(options.toolchain)) |
if not options.experimental: |
filters['EXPERIMENTAL'] = False |
if options.dest: |
filters['DEST'] = options.dest |
- print 'Filter by type: ' + str(options.dest) |
+ Trace('Filter by type: ' + str(options.dest)) |
if args: |
filters['NAME'] = args |
- print 'Filter by name: ' + str(args) |
+ Trace('Filter by name: ' + str(args)) |
try: |
project_tree = parse_dsc.LoadProjectTree(SDK_SRC_DIR, include=filters) |
except parse_dsc.ValidationError as e: |
buildbot_common.ErrorExit(str(e)) |
- parse_dsc.PrintProjectTree(project_tree) |
+ |
+ if verbose: |
+ parse_dsc.PrintProjectTree(project_tree) |
UpdateHelpers(pepperdir, clobber=options.clobber) |
UpdateProjects(pepperdir, project_tree, options.toolchain, |
clobber=options.clobber) |
- if options.verbose: |
- global verbose |
- verbose = True |
- |
if options.build: |
if options.config: |
configs = [options.config] |