1*8975f5c5SAndroid Build Coastguard Worker# Copyright 2018 The Chromium Authors. All rights reserved. 2*8975f5c5SAndroid Build Coastguard Worker# Use of this source code is governed by a BSD-style license that can be 3*8975f5c5SAndroid Build Coastguard Worker# found in the LICENSE file. 4*8975f5c5SAndroid Build Coastguard Worker 5*8975f5c5SAndroid Build Coastguard Workerimport("//build/config/android/rules.gni") 6*8975f5c5SAndroid Build Coastguard Workerimport("../gni/angle.gni") 7*8975f5c5SAndroid Build Coastguard Worker 8*8975f5c5SAndroid Build Coastguard Workervulkan_validation_layers = [ "VkLayer_khronos_validation" ] 9*8975f5c5SAndroid Build Coastguard Worker 10*8975f5c5SAndroid Build Coastguard Workerangle_libraries = [ 11*8975f5c5SAndroid Build Coastguard Worker "libEGL", 12*8975f5c5SAndroid Build Coastguard Worker "libGLESv1_CM", 13*8975f5c5SAndroid Build Coastguard Worker "libGLESv2", 14*8975f5c5SAndroid Build Coastguard Worker "libfeature_support", 15*8975f5c5SAndroid Build Coastguard Worker] 16*8975f5c5SAndroid Build Coastguard Worker 17*8975f5c5SAndroid Build Coastguard Workerif (enable_java_templates) { 18*8975f5c5SAndroid Build Coastguard Worker template("angle_apk") { 19*8975f5c5SAndroid Build Coastguard Worker manifest_target_name = "${target_name}__manifest" 20*8975f5c5SAndroid Build Coastguard Worker manifest_path = 21*8975f5c5SAndroid Build Coastguard Worker "${target_gen_dir}/${target_name}/android/AndroidManifest.xml" 22*8975f5c5SAndroid Build Coastguard Worker 23*8975f5c5SAndroid Build Coastguard Worker jinja_template(manifest_target_name) { 24*8975f5c5SAndroid Build Coastguard Worker input = "${angle_root}/android/AndroidManifest.xml.jinja2" 25*8975f5c5SAndroid Build Coastguard Worker output = manifest_path 26*8975f5c5SAndroid Build Coastguard Worker variables = [ 27*8975f5c5SAndroid Build Coastguard Worker "manifest_package=${invoker.package_name}", 28*8975f5c5SAndroid Build Coastguard Worker "extract_native_libs=${angle_extract_native_libs}", 29*8975f5c5SAndroid Build Coastguard Worker ] 30*8975f5c5SAndroid Build Coastguard Worker } 31*8975f5c5SAndroid Build Coastguard Worker 32*8975f5c5SAndroid Build Coastguard Worker android_assets("${invoker.package_name}_assets") { 33*8975f5c5SAndroid Build Coastguard Worker disable_compression = true 34*8975f5c5SAndroid Build Coastguard Worker sources = [ "src/feature_support_util/a4a_rules.json" ] 35*8975f5c5SAndroid Build Coastguard Worker } 36*8975f5c5SAndroid Build Coastguard Worker 37*8975f5c5SAndroid Build Coastguard Worker android_apk(target_name) { 38*8975f5c5SAndroid Build Coastguard Worker forward_variables_from(invoker, "*") 39*8975f5c5SAndroid Build Coastguard Worker android_manifest = manifest_path 40*8975f5c5SAndroid Build Coastguard Worker android_manifest_dep = ":$manifest_target_name" 41*8975f5c5SAndroid Build Coastguard Worker version_code = invoker.version_code 42*8975f5c5SAndroid Build Coastguard Worker version_name = invoker.version_name 43*8975f5c5SAndroid Build Coastguard Worker min_sdk_version = 26 44*8975f5c5SAndroid Build Coastguard Worker target_sdk_version = 28 45*8975f5c5SAndroid Build Coastguard Worker deps = [ ":${invoker.package_name}_assets" ] 46*8975f5c5SAndroid Build Coastguard Worker if (symbol_level != 0) { 47*8975f5c5SAndroid Build Coastguard Worker deps += [ ":compressed_symbols" ] 48*8975f5c5SAndroid Build Coastguard Worker if (android_64bit_target_cpu && 49*8975f5c5SAndroid Build Coastguard Worker defined(android_secondary_abi_toolchain)) { 50*8975f5c5SAndroid Build Coastguard Worker deps += [ ":compressed_symbols($android_secondary_abi_toolchain)" ] 51*8975f5c5SAndroid Build Coastguard Worker } 52*8975f5c5SAndroid Build Coastguard Worker } 53*8975f5c5SAndroid Build Coastguard Worker 54*8975f5c5SAndroid Build Coastguard Worker if (android_64bit_target_cpu && 55*8975f5c5SAndroid Build Coastguard Worker defined(android_secondary_abi_toolchain)) { 56*8975f5c5SAndroid Build Coastguard Worker if (symbol_level == 0) { 57*8975f5c5SAndroid Build Coastguard Worker secondary_abi_shared_libraries = [] 58*8975f5c5SAndroid Build Coastguard Worker foreach(_library, angle_libraries) { 59*8975f5c5SAndroid Build Coastguard Worker secondary_abi_shared_libraries += 60*8975f5c5SAndroid Build Coastguard Worker [ "$angle_root:${_library}($android_secondary_abi_toolchain)" ] 61*8975f5c5SAndroid Build Coastguard Worker } 62*8975f5c5SAndroid Build Coastguard Worker if (angle_enable_vulkan_validation_layers) { 63*8975f5c5SAndroid Build Coastguard Worker foreach(_layer, vulkan_validation_layers) { 64*8975f5c5SAndroid Build Coastguard Worker secondary_abi_shared_libraries += 65*8975f5c5SAndroid Build Coastguard Worker [ "$angle_vulkan_validation_layers_dir:${_layer}" + 66*8975f5c5SAndroid Build Coastguard Worker "($android_secondary_abi_toolchain)" ] 67*8975f5c5SAndroid Build Coastguard Worker } 68*8975f5c5SAndroid Build Coastguard Worker } 69*8975f5c5SAndroid Build Coastguard Worker } else { 70*8975f5c5SAndroid Build Coastguard Worker _secondary_out_dir = get_label_info( 71*8975f5c5SAndroid Build Coastguard Worker ":compressed_symbols($android_secondary_abi_toolchain)", 72*8975f5c5SAndroid Build Coastguard Worker "root_out_dir") 73*8975f5c5SAndroid Build Coastguard Worker secondary_abi_loadable_modules = [] 74*8975f5c5SAndroid Build Coastguard Worker foreach(_library, angle_libraries) { 75*8975f5c5SAndroid Build Coastguard Worker secondary_abi_loadable_modules += [ "$_secondary_out_dir/lib.compressed/${_library}${angle_libs_suffix}${shlib_extension}" ] 76*8975f5c5SAndroid Build Coastguard Worker } 77*8975f5c5SAndroid Build Coastguard Worker if (angle_enable_vulkan_validation_layers) { 78*8975f5c5SAndroid Build Coastguard Worker foreach(_layer, vulkan_validation_layers) { 79*8975f5c5SAndroid Build Coastguard Worker secondary_abi_loadable_modules += [ "${_secondary_out_dir}/lib.compressed/lib${_layer}${shlib_extension}" ] 80*8975f5c5SAndroid Build Coastguard Worker } 81*8975f5c5SAndroid Build Coastguard Worker } 82*8975f5c5SAndroid Build Coastguard Worker } 83*8975f5c5SAndroid Build Coastguard Worker } 84*8975f5c5SAndroid Build Coastguard Worker 85*8975f5c5SAndroid Build Coastguard Worker if (symbol_level == 0) { 86*8975f5c5SAndroid Build Coastguard Worker shared_libraries = [] 87*8975f5c5SAndroid Build Coastguard Worker foreach(_library, angle_libraries) { 88*8975f5c5SAndroid Build Coastguard Worker shared_libraries += [ "$angle_root:$_library" ] 89*8975f5c5SAndroid Build Coastguard Worker } 90*8975f5c5SAndroid Build Coastguard Worker if (angle_enable_vulkan_validation_layers) { 91*8975f5c5SAndroid Build Coastguard Worker foreach(_layer, vulkan_validation_layers) { 92*8975f5c5SAndroid Build Coastguard Worker shared_libraries += 93*8975f5c5SAndroid Build Coastguard Worker [ "$angle_vulkan_validation_layers_dir:${_layer}" ] 94*8975f5c5SAndroid Build Coastguard Worker } 95*8975f5c5SAndroid Build Coastguard Worker } 96*8975f5c5SAndroid Build Coastguard Worker if (angle_enable_vulkan_api_dump_layer) { 97*8975f5c5SAndroid Build Coastguard Worker shared_libraries += 98*8975f5c5SAndroid Build Coastguard Worker [ "$angle_lunarg_vulkantools_dir:VkLayer_lunarg_api_dump" ] 99*8975f5c5SAndroid Build Coastguard Worker } 100*8975f5c5SAndroid Build Coastguard Worker } else { 101*8975f5c5SAndroid Build Coastguard Worker loadable_modules = [] 102*8975f5c5SAndroid Build Coastguard Worker foreach(_library, angle_libraries) { 103*8975f5c5SAndroid Build Coastguard Worker loadable_modules += [ "$root_out_dir/lib.compressed/${_library}${angle_libs_suffix}${shlib_extension}" ] 104*8975f5c5SAndroid Build Coastguard Worker } 105*8975f5c5SAndroid Build Coastguard Worker if (angle_enable_vulkan_validation_layers) { 106*8975f5c5SAndroid Build Coastguard Worker foreach(_layer, vulkan_validation_layers) { 107*8975f5c5SAndroid Build Coastguard Worker loadable_modules += [ 108*8975f5c5SAndroid Build Coastguard Worker "$root_out_dir/lib.compressed/lib${_layer}${shlib_extension}", 109*8975f5c5SAndroid Build Coastguard Worker ] 110*8975f5c5SAndroid Build Coastguard Worker } 111*8975f5c5SAndroid Build Coastguard Worker } 112*8975f5c5SAndroid Build Coastguard Worker if (angle_enable_vulkan_api_dump_layer) { 113*8975f5c5SAndroid Build Coastguard Worker loadable_modules += [ "$root_out_dir/lib.compressed/libVkLayer_lunarg_api_dump${shlib_extension}" ] 114*8975f5c5SAndroid Build Coastguard Worker } 115*8975f5c5SAndroid Build Coastguard Worker } 116*8975f5c5SAndroid Build Coastguard Worker } 117*8975f5c5SAndroid Build Coastguard Worker } 118*8975f5c5SAndroid Build Coastguard Worker} 119