java.gypi 3.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  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. # This file is meant to be included into a target to provide a rule
  5. # to build Java in a consistent manner.
  6. #
  7. # To use this, create a gyp target with the following form:
  8. # {
  9. # 'target_name': 'my-package_java',
  10. # 'type': 'none',
  11. # 'variables': {
  12. # 'package_name': 'my-package',
  13. # 'java_in_dir': 'path/to/package/root',
  14. # },
  15. # 'includes': ['path/to/this/gypi/file'],
  16. # }
  17. #
  18. # The generated jar-file will be:
  19. # <(PRODUCT_DIR)/lib.java/chromium_<(package_name).jar
  20. # Required variables:
  21. # package_name - Used to name the intermediate output directory and in the
  22. # names of some output files.
  23. # java_in_dir - The top-level java directory. The src should be in
  24. # <java_in_dir>/src.
  25. # Optional/automatic variables:
  26. # additional_input_paths - These paths will be included in the 'inputs' list to
  27. # ensure that this target is rebuilt when one of these paths changes.
  28. # additional_src_dirs - Additional directories with .java files to be compiled
  29. # and included in the output of this target.
  30. # generated_src_dirs - Same as additional_src_dirs except used for .java files
  31. # that are generated at build time. This should be set automatically by a
  32. # target's dependencies. The .java files in these directories are not
  33. # included in the 'inputs' list (unlike additional_src_dirs).
  34. # input_jars_paths - The path to jars to be included in the classpath. This
  35. # should be filled automatically by depending on the appropriate targets.
  36. {
  37. 'dependencies': [
  38. '<(DEPTH)/build/build_output_dirs_android.gyp:build_output_dirs'
  39. ],
  40. # This all_dependent_settings is used for java targets only. This will add the
  41. # chromium_<(package_name) jar to the classpath of dependent java targets.
  42. 'all_dependent_settings': {
  43. 'variables': {
  44. 'input_jars_paths': ['<(PRODUCT_DIR)/lib.java/chromium_<(package_name).jar'],
  45. },
  46. },
  47. 'variables': {
  48. 'input_jars_paths': [],
  49. 'additional_src_dirs': [],
  50. 'additional_input_paths': [],
  51. 'generated_src_dirs': [],
  52. },
  53. 'actions': [
  54. {
  55. 'action_name': 'ant_<(package_name)',
  56. 'message': 'Building <(package_name) java sources.',
  57. 'inputs': [
  58. 'android/ant/common.xml',
  59. 'android/ant/chromium-jars.xml',
  60. '>!@(find >(java_in_dir) >(additional_src_dirs) -name "*.java")',
  61. '>@(input_jars_paths)',
  62. '>@(additional_input_paths)',
  63. ],
  64. 'outputs': [
  65. '<(PRODUCT_DIR)/lib.java/chromium_<(package_name).jar',
  66. ],
  67. 'action': [
  68. 'ant',
  69. '-DCONFIGURATION_NAME=<(CONFIGURATION_NAME)',
  70. '-DANDROID_SDK=<(android_sdk)',
  71. '-DANDROID_SDK_ROOT=<(android_sdk_root)',
  72. '-DANDROID_SDK_TOOLS=<(android_sdk_tools)',
  73. '-DANDROID_SDK_VERSION=<(android_sdk_version)',
  74. '-DANDROID_GDBSERVER=<(android_gdbserver)',
  75. '-DPRODUCT_DIR=<(ant_build_out)',
  76. '-DADDITIONAL_SRC_DIRS=>(additional_src_dirs)',
  77. '-DGENERATED_SRC_DIRS=>(generated_src_dirs)',
  78. '-DINPUT_JARS_PATHS=>(input_jars_paths)',
  79. '-DPACKAGE_NAME=<(package_name)',
  80. '-Dbasedir=<(java_in_dir)',
  81. '-buildfile',
  82. '<(DEPTH)/build/android/ant/chromium-jars.xml'
  83. ]
  84. },
  85. ],
  86. }