Home | History | Annotate | Download | only in build
      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