60 строки
1.9 KiB
Python
60 строки
1.9 KiB
Python
# Copyright 2014 The Chromium Authors. All rights reserved.
|
|
# Use of this source code is governed by a BSD-style license that can be
|
|
# found in the LICENSE file.
|
|
|
|
# This file is meant to be included into a target to provide an action
|
|
# to generate Java source files from a C++ header file containing annotated
|
|
# enum definitions using a Python script.
|
|
#
|
|
# To use this, create a gyp target with the following form:
|
|
# {
|
|
# 'target_name': 'bitmap_format_java',
|
|
# 'type': 'none',
|
|
# 'variables': {
|
|
# 'source_file': 'ui/android/bitmap_format.h',
|
|
# },
|
|
# 'includes': [ '../build/android/java_cpp_enum.gypi' ],
|
|
# },
|
|
#
|
|
# Then have the gyp target which compiles the java code depend on the newly
|
|
# created target.
|
|
|
|
{
|
|
'variables': {
|
|
# Location where all generated Java sources will be placed.
|
|
'output_dir': '<(SHARED_INTERMEDIATE_DIR)/enums/<(_target_name)',
|
|
'generator_path': '<(DEPTH)/build/android/gyp/java_cpp_enum.py',
|
|
'generator_args': '--output_dir=<(output_dir) <(source_file)',
|
|
},
|
|
'direct_dependent_settings': {
|
|
'variables': {
|
|
# Ensure that the output directory is used in the class path
|
|
# when building targets that depend on this one.
|
|
'generated_src_dirs': [
|
|
'<(output_dir)/',
|
|
],
|
|
},
|
|
},
|
|
'actions': [
|
|
{
|
|
'action_name': 'generate_java_constants',
|
|
'inputs': [
|
|
'<(DEPTH)/build/android/gyp/util/build_utils.py',
|
|
'<(generator_path)',
|
|
'<(source_file)',
|
|
],
|
|
'outputs': [
|
|
# This is the main reason this is an action and not a rule. Gyp doesn't
|
|
# properly expand RULE_INPUT_PATH here and so it's impossible to
|
|
# calculate the list of outputs.
|
|
'<!@pymod_do_main(java_cpp_enum --print_output_only '
|
|
'<@(generator_args))',
|
|
],
|
|
'action': [
|
|
'python', '<(generator_path)', '<@(generator_args)'
|
|
],
|
|
'message': 'Generating Java from cpp header <(source_file)',
|
|
},
|
|
],
|
|
}
|