Add an UMA stat to be able to see if the User pods are show on start screen,
[chromium-blink-merge.git] / components / webui_generator / generator / build_helper.py
blob06232e66c7f3d1f1824de48596dd53eafe360e46
1 # Copyright 2015 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file.
5 # Provides various information needed for GYP and GN to generate and build
6 # files.
8 import os
9 import sys
11 from declaration import Declaration
12 import export_h
13 import util
14 import view_model
15 import web_ui_view
17 def GetImportDependencies(declaration):
18 return set(child.build_target for child in declaration.children.itervalues())
20 parser = util.CreateArgumentParser()
21 parser.add_argument('--output',
22 choices=['view_cc', 'view_h', 'model_cc', 'model_h',
23 'export_h', 'dirname', 'target_name', 'imports',
24 'impl_macro', 'import_dependencies',
25 'list_outputs'],
26 required=True,
27 help='Type of output')
28 parser.add_argument('--gn', action='store_true',
29 help='Is called by GN')
30 args = parser.parse_args()
31 declaration_path = os.path.relpath(args.declaration, args.root)
32 os.chdir(args.root)
33 try:
34 declaration = Declaration(declaration_path)
35 except Exception as e:
36 print >> sys.stderr, e.message
37 sys.exit(1)
39 if args.output == 'view_cc':
40 print declaration.webui_view_cc_name
41 elif args.output == 'view_h':
42 print declaration.webui_view_h_name
43 elif args.output == 'model_cc':
44 print declaration.view_model_cc_name
45 elif args.output == 'model_h':
46 print declaration.view_model_h_name
47 elif args.output == 'export_h':
48 print declaration.export_h_name
49 elif args.output == 'dirname':
50 print os.path.dirname(declaration_path)
51 elif args.output == 'target_name':
52 print declaration.build_target
53 elif args.output == 'imports':
54 for i in declaration.imports:
55 print '//' + i
56 elif args.output == 'import_dependencies':
57 for d in GetImportDependencies(declaration):
58 print (':' if args.gn else '') + d
59 elif args.output == 'list_outputs':
60 outputs = web_ui_view.ListOutputs(declaration, args.destination) + \
61 view_model.ListOutputs(declaration, args.destination) + \
62 export_h.ListOutputs(declaration, args.destination)
63 for output in outputs:
64 print output
65 elif args.output == 'impl_macro':
66 print declaration.component_impl_macro
67 else:
68 assert False