1 # Copyright (c) 2012 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 # This file helps gyp_chromium and landmines correctly set up the gyp
6 # environment from chromium.gyp_env on disk
10 SCRIPT_DIR
= os
.path
.dirname(os
.path
.realpath(__file__
))
11 CHROME_SRC
= os
.path
.dirname(SCRIPT_DIR
)
14 def apply_gyp_environment_from_file(file_path
):
15 """Reads in a *.gyp_env file and applies the valid keys to os.environ."""
16 if not os
.path
.exists(file_path
):
18 with
open(file_path
, 'rU') as f
:
19 file_contents
= f
.read()
21 file_data
= eval(file_contents
, {'__builtins__': None}, None)
22 except SyntaxError, e
:
23 e
.filename
= os
.path
.abspath(file_path
)
30 'CHROMIUM_GYP_SYNTAX_CHECK',
35 'GYP_GENERATOR_FLAGS',
37 'GYP_GENERATOR_OUTPUT',
43 for var
in supported_vars
:
44 file_val
= file_data
.get(var
)
48 if var
== 'GYP_DEFINES':
49 result
= file_val
+ ' ' + os
.environ
[var
]
50 behavior
= 'merges with, and individual components override,'
52 result
= os
.environ
[var
]
53 print 'INFO: Environment value for "%s" %s value in %s' % (
54 var
, behavior
, os
.path
.abspath(file_path
)
56 string_padding
= max(len(var
), len(file_path
), len('result'))
57 print ' %s: %s' % (var
.rjust(string_padding
), os
.environ
[var
])
58 print ' %s: %s' % (file_path
.rjust(string_padding
), file_val
)
59 os
.environ
[var
] = result
61 os
.environ
[var
] = file_val
64 def apply_chromium_gyp_env():
65 if 'SKIP_CHROMIUM_GYP_ENV' not in os
.environ
:
66 # Update the environment based on chromium.gyp_env
67 path
= os
.path
.join(os
.path
.dirname(CHROME_SRC
), 'chromium.gyp_env')
68 apply_gyp_environment_from_file(path
)