관리-도구
편집 파일: dump_dependency_json.py
# Copyright (c) 2012 Google Inc. All rights reserved. # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. import os import gyp import gyp.common import gyp.msvs_emulation import json generator_supports_multiple_toolsets = True generator_wants_static_library_dependencies_adjusted = False generator_filelist_paths = {} generator_default_variables = {} for dirname in [ "INTERMEDIATE_DIR", "SHARED_INTERMEDIATE_DIR", "PRODUCT_DIR", "LIB_DIR", "SHARED_LIB_DIR", ]: # Some gyp steps fail if these are empty(!). generator_default_variables[dirname] = "dir" for unused in [ "RULE_INPUT_PATH", "RULE_INPUT_ROOT", "RULE_INPUT_NAME", "RULE_INPUT_DIRNAME", "RULE_INPUT_EXT", "EXECUTABLE_PREFIX", "EXECUTABLE_SUFFIX", "STATIC_LIB_PREFIX", "STATIC_LIB_SUFFIX", "SHARED_LIB_PREFIX", "SHARED_LIB_SUFFIX", "CONFIGURATION_NAME", ]: generator_default_variables[unused] = "" def CalculateVariables(default_variables, params): generator_flags = params.get("generator_flags", {}) for key, val in generator_flags.items(): default_variables.setdefault(key, val) default_variables.setdefault("OS", gyp.common.GetFlavor(params)) flavor = gyp.common.GetFlavor(params) if flavor == "win": gyp.msvs_emulation.CalculateCommonVariables(default_variables, params) def CalculateGeneratorInputInfo(params): """Calculate the generator specific info that gets fed to input (called by gyp).""" generator_flags = params.get("generator_flags", {}) if generator_flags.get("adjust_static_libraries", False): global generator_wants_static_library_dependencies_adjusted generator_wants_static_library_dependencies_adjusted = True toplevel = params["options"].toplevel_dir generator_dir = os.path.relpath(params["options"].generator_output or ".") # output_dir: relative path from generator_dir to the build directory. output_dir = generator_flags.get("output_dir", "out") qualified_out_dir = os.path.normpath( os.path.join(toplevel, generator_dir, output_dir, "gypfiles") ) global generator_filelist_paths generator_filelist_paths = { "toplevel": toplevel, "qualified_out_dir": qualified_out_dir, } def GenerateOutput(target_list, target_dicts, data, params): # Map of target -> list of targets it depends on. edges = {} # Queue of targets to visit. targets_to_visit = target_list[:] while len(targets_to_visit) > 0: target = targets_to_visit.pop() if target in edges: continue edges[target] = [] for dep in target_dicts[target].get("dependencies", []): edges[target].append(dep) targets_to_visit.append(dep) try: filepath = params["generator_flags"]["output_dir"] except KeyError: filepath = "." filename = os.path.join(filepath, "dump.json") f = open(filename, "w") json.dump(edges, f) f.close() print("Wrote json to %s." % filename)