blob: 76ae841ffb6a0882a6ea9a9238af0c6b5b752560 [file] [log] [blame]
Ben Murdoch4a90d5f2016-03-22 12:00:34 +00001# Copyright 2015 the V8 project 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
5"""
6Sets up various automatic gyp environment variables. These are used by
7gyp_v8 and landmines.py which run at different stages of runhooks. To
8make sure settings are consistent between them, all setup should happen here.
9"""
10
11import os
12import sys
13import vs_toolchain
14
15SCRIPT_DIR = os.path.dirname(os.path.realpath(__file__))
16V8_ROOT = os.path.abspath(os.path.join(SCRIPT_DIR, os.pardir))
17
18
19def apply_gyp_environment(file_path=None):
20 """
21 Reads in a *.gyp_env file and applies the valid keys to os.environ.
22 """
23 if not file_path or not os.path.exists(file_path):
24 return
25 file_contents = open(file_path).read()
26 try:
27 file_data = eval(file_contents, {'__builtins__': None}, None)
28 except SyntaxError, e:
29 e.filename = os.path.abspath(file_path)
30 raise
31 supported_vars = ( 'V8_GYP_FILE',
32 'V8_GYP_SYNTAX_CHECK',
33 'GYP_DEFINES',
Ben Murdoch61f157c2016-09-16 13:49:30 +010034 'GYP_GENERATORS',
Ben Murdoch4a90d5f2016-03-22 12:00:34 +000035 'GYP_GENERATOR_FLAGS',
36 'GYP_GENERATOR_OUTPUT', )
37 for var in supported_vars:
38 val = file_data.get(var)
39 if val:
40 if var in os.environ:
41 print 'INFO: Environment value for "%s" overrides value in %s.' % (
42 var, os.path.abspath(file_path)
43 )
44 else:
45 os.environ[var] = val
46
47
48def set_environment():
49 """Sets defaults for GYP_* variables."""
50
51 if 'SKIP_V8_GYP_ENV' not in os.environ:
52 # Update the environment based on v8.gyp_env
53 gyp_env_path = os.path.join(os.path.dirname(V8_ROOT), 'v8.gyp_env')
54 apply_gyp_environment(gyp_env_path)
Ben Murdoch61f157c2016-09-16 13:49:30 +010055
56 if not os.environ.get('GYP_GENERATORS'):
57 # Default to ninja on all platforms.
58 os.environ['GYP_GENERATORS'] = 'ninja'
59
Ben Murdoch4a90d5f2016-03-22 12:00:34 +000060 vs_toolchain.SetEnvironmentAndGetRuntimeDllDirs()