1# Copyright 2018 The Chromium Authors 2# Use of this source code is governed by a BSD-style license that can be 3# found in the LICENSE file. 4 5import("//build/config/android/channel.gni") 6import("//build/config/android/rules.gni") 7import("//build/util/process_version.gni") 8import("//third_party/jni_zero/jni_zero.gni") 9 10_version_constants_java_file = 11 "$target_gen_dir/java/org/chromium/base/version_info/VersionConstants.java" 12 13# Depend on this on the Java side to get org.base.version_info.Channel and 14# org.base.version_info.VersionConstants. 15android_library("version_constants_java") { 16 sources = [ 17 "java/src/org/chromium/base/version_info/VersionConstantsBridge.java", 18 "java/src/org/chromium/base/version_info/VersionInfo.java", 19 _version_constants_java_file, 20 ] 21 public_deps = [ ":channel_enum_java" ] 22 deps = [ 23 ":generate_version_constants", 24 "//build/android:build_java", 25 "//third_party/androidx:androidx_annotation_annotation_java", 26 "//third_party/jni_zero:jni_zero_java", 27 ] 28} 29 30# Depend on this on the native side to get version_info::GetChannel. It requires 31# version_constants_java for its JNI call. 32static_library("channel_getter") { 33 sources = [ 34 "channel_getter.cc", 35 "channel_getter.h", 36 ] 37 deps = [ 38 ":version_constants_bridge_jni", 39 "..:channel", 40 "//base", # for jni_generator_helper.h 41 ] 42} 43 44android_library("channel_enum_java") { 45 deps = [ "//third_party/androidx:androidx_annotation_annotation_java" ] 46 srcjar_deps = [ ":channel_enum_srcjar" ] 47} 48 49java_cpp_enum("channel_enum_srcjar") { 50 sources = [ "../channel.h" ] 51} 52 53process_version("generate_version_constants") { 54 process_only = true 55 template_file = "java/VersionConstants.java.version" 56 output = _version_constants_java_file 57 extra_args = [ 58 "-e", 59 "CHANNEL=str.upper('$android_channel')", 60 ] 61 62 # This dependency currently breaks webrtc which pulls in //base 63 # (but not //chrome). crbug.com/webrtc/13662 tracks removing webrtc's 64 # dependency on //base. For now we fake the check version far into the future. 65 if (build_with_chromium) { 66 sources = [ "//chrome/VERSION" ] 67 } else { 68 extra_args += [ 69 "-e", 70 "MAJOR=\"9999\"", 71 "-e", 72 "MINOR=\"9999\"", 73 "-e", 74 "BUILD=\"9999\"", 75 "-e", 76 "PATCH=\"9999\"", 77 ] 78 } 79} 80 81generate_jni("version_constants_bridge_jni") { 82 sources = 83 [ "java/src/org/chromium/base/version_info/VersionConstantsBridge.java" ] 84} 85