Home | History | Annotate | Download | only in build
      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: an array 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   'actions': [
     16     {
     17       'action_name': 'genapi_bundle',
     18       'inputs': [
     19         '<(api_gen_dir)/cc_generator.py',
     20         '<(api_gen_dir)/code.py',
     21         '<(api_gen_dir)/compiler.py',
     22         '<(api_gen_dir)/cpp_bundle_generator.py',
     23         '<(api_gen_dir)/cpp_type_generator.py',
     24         '<(api_gen_dir)/cpp_util.py',
     25         '<(api_gen_dir)/h_generator.py',
     26         '<(api_gen_dir)/idl_schema.py',
     27         '<(api_gen_dir)/json_schema.py',
     28         '<(api_gen_dir)/model.py',
     29         '<(api_gen_dir)/util_cc_helper.py',
     30         '<@(schema_files)',
     31       ],
     32       'outputs': [
     33         '<(SHARED_INTERMEDIATE_DIR)/<(cc_dir)/generated_api.h',
     34         '<(SHARED_INTERMEDIATE_DIR)/<(cc_dir)/generated_api.cc',
     35         '<(SHARED_INTERMEDIATE_DIR)/<(cc_dir)/generated_schemas.h',
     36         '<(SHARED_INTERMEDIATE_DIR)/<(cc_dir)/generated_schemas.cc',
     37       ],
     38       'action': [
     39         'python',
     40         '<(api_gen)',
     41         '--root=<(DEPTH)',
     42         '--destdir=<(SHARED_INTERMEDIATE_DIR)',
     43         '--namespace=<(root_namespace)',
     44         '--generator=cpp-bundle',
     45         '<@(schema_files)',
     46       ],
     47       'message': 'Generating C++ API bundle code',
     48       'process_outputs_as_sources': 1,
     49     }
     50   ],
     51   'include_dirs': [
     52     '<(SHARED_INTERMEDIATE_DIR)',
     53     '<(DEPTH)',
     54   ],
     55   'direct_dependent_settings': {
     56     'include_dirs': [
     57       '<(SHARED_INTERMEDIATE_DIR)',
     58     ]
     59   },
     60   # This target exports a hard dependency because it generates header
     61   # files.
     62   'hard_dependency': 1,
     63 }
     64