1# Copyright (c) 2012 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 'variables': { 7 # When including this gypi, the following variables must be set: 8 # schema_files: a list of json or IDL files that comprise the api model. 9 # cc_dir: path to generated files 10 # root_namespace: the C++ namespace that all generated files go under 11 # Functions and namespaces can be excluded by setting "nocompile" to true. 12 'api_gen_dir': '<(DEPTH)/tools/json_schema_compiler', 13 'api_gen': '<(api_gen_dir)/compiler.py', 14 }, 15 'rules': [ 16 { 17 'rule_name': 'genapi', 18 'msvs_external_rule': 1, 19 'extension': 'json', 20 'inputs': [ 21 '<(api_gen_dir)/cc_generator.py', 22 '<(api_gen_dir)/code.py', 23 '<(api_gen_dir)/compiler.py', 24 '<(api_gen_dir)/cpp_generator.py', 25 '<(api_gen_dir)/cpp_type_generator.py', 26 '<(api_gen_dir)/cpp_util.py', 27 '<(api_gen_dir)/h_generator.py', 28 '<(api_gen_dir)/json_schema.py', 29 '<(api_gen_dir)/model.py', 30 '<(api_gen_dir)/util.cc', 31 '<(api_gen_dir)/util.h', 32 '<(api_gen_dir)/util_cc_helper.py', 33 # TODO(calamity): uncomment this when gyp on windows behaves like other 34 # platforms. List expansions of filepaths in inputs expand to different 35 # things. 36 # '<@(schema_files)', 37 ], 38 'outputs': [ 39 '<(SHARED_INTERMEDIATE_DIR)/<(cc_dir)/<(RULE_INPUT_ROOT).cc', 40 '<(SHARED_INTERMEDIATE_DIR)/<(cc_dir)/<(RULE_INPUT_ROOT).h', 41 ], 42 'action': [ 43 'python', 44 '<(api_gen)', 45 '<(RULE_INPUT_PATH)', 46 '--root=<(DEPTH)', 47 '--destdir=<(SHARED_INTERMEDIATE_DIR)', 48 '--namespace=<(root_namespace)', 49 '--generator=cpp', 50 ], 51 'message': 'Generating C++ code from <(RULE_INPUT_PATH) json files', 52 'process_outputs_as_sources': 1, 53 }, 54 { 55 'rule_name': 'genapi_idl', 56 'msvs_external_rule': 1, 57 'extension': 'idl', 58 'inputs': [ 59 '<(api_gen_dir)/cc_generator.py', 60 '<(api_gen_dir)/code.py', 61 '<(api_gen_dir)/compiler.py', 62 '<(api_gen_dir)/cpp_generator.py', 63 '<(api_gen_dir)/cpp_type_generator.py', 64 '<(api_gen_dir)/cpp_util.py', 65 '<(api_gen_dir)/h_generator.py', 66 '<(api_gen_dir)/idl_schema.py', 67 '<(api_gen_dir)/model.py', 68 '<(api_gen_dir)/util.cc', 69 '<(api_gen_dir)/util.h', 70 '<(api_gen_dir)/util_cc_helper.py', 71 # TODO(calamity): uncomment this when gyp on windows behaves like other 72 # platforms. List expansions of filepaths in inputs expand to different 73 # things. 74 # '<@(schema_files)', 75 ], 76 'outputs': [ 77 '<(SHARED_INTERMEDIATE_DIR)/<(cc_dir)/<(RULE_INPUT_ROOT).cc', 78 '<(SHARED_INTERMEDIATE_DIR)/<(cc_dir)/<(RULE_INPUT_ROOT).h', 79 ], 80 'action': [ 81 'python', 82 '<(api_gen)', 83 '<(RULE_INPUT_PATH)', 84 '--root=<(DEPTH)', 85 '--destdir=<(SHARED_INTERMEDIATE_DIR)', 86 '--namespace=<(root_namespace)', 87 '--generator=cpp', 88 ], 89 'message': 'Generating C++ code from <(RULE_INPUT_PATH) IDL files', 90 'process_outputs_as_sources': 1, 91 }, 92 ], 93 'include_dirs': [ 94 '<(SHARED_INTERMEDIATE_DIR)', 95 '<(DEPTH)', 96 ], 97 'dependencies':[ 98 '<(DEPTH)/tools/json_schema_compiler/api_gen_util.gyp:api_gen_util', 99 ], 100 'direct_dependent_settings': { 101 'include_dirs': [ 102 '<(SHARED_INTERMEDIATE_DIR)', 103 ] 104 }, 105 # This target exports a hard dependency because it generates header 106 # files. 107 'hard_dependency': 1, 108} 109