"Fossies" - the Fresh Open Source Software Archive

Member "Atom/resources/app/apm/node_modules/node-gyp/gyp/pylib/gyp/generator/gypsh.py" (8 Mar 2017, 1665 Bytes) of archive /windows/misc/atom-windows.zip:


As a special service "Fossies" has tried to format the requested source page into HTML format using (guessed) Python source code syntax highlighting (style: standard) with prefixed line numbers. Alternatively you can here view or download the uninterpreted source code file.

    1 # Copyright (c) 2011 Google Inc. 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 """gypsh output module
    6 
    7 gypsh is a GYP shell.  It's not really a generator per se.  All it does is
    8 fire up an interactive Python session with a few local variables set to the
    9 variables passed to the generator.  Like gypd, it's intended as a debugging
   10 aid, to facilitate the exploration of .gyp structures after being processed
   11 by the input module.
   12 
   13 The expected usage is "gyp -f gypsh -D OS=desired_os".
   14 """
   15 
   16 
   17 import code
   18 import sys
   19 
   20 
   21 # All of this stuff about generator variables was lovingly ripped from gypd.py.
   22 # That module has a much better description of what's going on and why.
   23 _generator_identity_variables = [
   24   'EXECUTABLE_PREFIX',
   25   'EXECUTABLE_SUFFIX',
   26   'INTERMEDIATE_DIR',
   27   'PRODUCT_DIR',
   28   'RULE_INPUT_ROOT',
   29   'RULE_INPUT_DIRNAME',
   30   'RULE_INPUT_EXT',
   31   'RULE_INPUT_NAME',
   32   'RULE_INPUT_PATH',
   33   'SHARED_INTERMEDIATE_DIR',
   34 ]
   35 
   36 generator_default_variables = {
   37 }
   38 
   39 for v in _generator_identity_variables:
   40   generator_default_variables[v] = '<(%s)' % v
   41 
   42 
   43 def GenerateOutput(target_list, target_dicts, data, params):
   44   locals = {
   45         'target_list':  target_list,
   46         'target_dicts': target_dicts,
   47         'data':         data,
   48       }
   49 
   50   # Use a banner that looks like the stock Python one and like what
   51   # code.interact uses by default, but tack on something to indicate what
   52   # locals are available, and identify gypsh.
   53   banner='Python %s on %s\nlocals.keys() = %s\ngypsh' % \
   54          (sys.version, sys.platform, repr(sorted(locals.keys())))
   55 
   56   code.interact(banner, local=locals)