Flutter Engine
The Flutter Engine
Loading...
Searching...
No Matches
third_party
dart-lang
sdk
tools
gn_helpers.py
Go to the documentation of this file.
1
# Copyright 2014 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.
4
"""Helper functions useful when writing scripts that are run from GN's
5
exec_script function."""
6
7
8
class
GNException(Exception):
9
pass
10
11
12
def
ToGNString(value, allow_dicts=True):
13
"""Prints the given value to stdout.
14
15
allow_dicts indicates if this function will allow converting dictionaries
16
to GN scopes. This is only possible at the top level, you can't nest a
17
GN scope in a list, so this should be set to False for recursive calls."""
18
if
isinstance(value, str):
19
if
value.find(
'\n'
) >= 0:
20
raise
GNException(
"Trying to print a string with a newline in it."
)
21
return
'"'
+ value.replace(
'"'
,
'\\"'
) +
'"'
22
23
if
isinstance(value, list):
24
return
'[ %s ]'
%
', '
.join(ToGNString(v)
for
v
in
value)
25
26
if
isinstance(value, dict):
27
if
not
allow_dicts:
28
raise
GNException(
"Attempting to recursively print a dictionary."
)
29
result =
""
30
for
key
in
value:
31
if
not
isinstance(key, str):
32
raise
GNException(
"Dictionary key is not a string."
)
33
result +=
"%s = %s\n"
% (key, ToGNString(value[key],
False
))
34
return
result
35
36
if
isinstance(value, int):
37
return
str(value)
38
39
raise
GNException(
"Unsupported type when printing to GN."
)
Generated on Fri Apr 26 2024 06:14:39 for Flutter Engine by
1.9.8