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 5 """ 6 Sets up various automatic gyp environment variables. These are used by 7 gyp_chromium and landmines.py which run at different stages of runhooks. To 8 make sure settings are consistent between them, all setup should happen here. 9 """ 10 11 import gyp_helper 12 import os 13 import sys 14 import vs_toolchain 15 16 def SetEnvironment(): 17 """Sets defaults for GYP_* variables.""" 18 gyp_helper.apply_chromium_gyp_env() 19 20 # Default to ninja on linux and windows, but only if no generator has 21 # explicitly been set. 22 # Also default to ninja on mac, but only when not building chrome/ios. 23 # . -f / --format has precedence over the env var, no need to check for it 24 # . set the env var only if it hasn't been set yet 25 # . chromium.gyp_env has been applied to os.environ at this point already 26 if sys.platform.startswith(('linux', 'win', 'freebsd')) and \ 27 not os.environ.get('GYP_GENERATORS'): 28 os.environ['GYP_GENERATORS'] = 'ninja' 29 elif sys.platform == 'darwin' and not os.environ.get('GYP_GENERATORS') and \ 30 not 'OS=ios' in os.environ.get('GYP_DEFINES', []): 31 os.environ['GYP_GENERATORS'] = 'ninja' 32 33 vs_toolchain.SetEnvironmentAndGetRuntimeDllDirs() 34