1*795d594fSAndroid Build Coastguard Worker// Copyright (C) 2018 The Android Open Source Project 2*795d594fSAndroid Build Coastguard Worker// 3*795d594fSAndroid Build Coastguard Worker// Licensed under the Apache License, Version 2.0 (the "License"); 4*795d594fSAndroid Build Coastguard Worker// you may not use this file except in compliance with the License. 5*795d594fSAndroid Build Coastguard Worker// You may obtain a copy of the License at 6*795d594fSAndroid Build Coastguard Worker// 7*795d594fSAndroid Build Coastguard Worker// http://www.apache.org/licenses/LICENSE-2.0 8*795d594fSAndroid Build Coastguard Worker// 9*795d594fSAndroid Build Coastguard Worker// Unless required by applicable law or agreed to in writing, software 10*795d594fSAndroid Build Coastguard Worker// distributed under the License is distributed on an "AS IS" BASIS, 11*795d594fSAndroid Build Coastguard Worker// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12*795d594fSAndroid Build Coastguard Worker// See the License for the specific language governing permissions and 13*795d594fSAndroid Build Coastguard Worker// limitations under the License. 14*795d594fSAndroid Build Coastguard Worker 15*795d594fSAndroid Build Coastguard Workerpackage { 16*795d594fSAndroid Build Coastguard Worker // See: http://go/android-license-faq 17*795d594fSAndroid Build Coastguard Worker // A large-scale-change added 'default_applicable_licenses' to import 18*795d594fSAndroid Build Coastguard Worker // all of the 'license_kinds' from "art_license" 19*795d594fSAndroid Build Coastguard Worker // to get the below license kinds: 20*795d594fSAndroid Build Coastguard Worker // SPDX-license-identifier-Apache-2.0 21*795d594fSAndroid Build Coastguard Worker default_applicable_licenses: ["art_license"], 22*795d594fSAndroid Build Coastguard Worker} 23*795d594fSAndroid Build Coastguard Worker 24*795d594fSAndroid Build Coastguard Workercc_binary { 25*795d594fSAndroid Build Coastguard Worker name: "veridex", 26*795d594fSAndroid Build Coastguard Worker defaults: ["art_defaults"], 27*795d594fSAndroid Build Coastguard Worker host_supported: true, 28*795d594fSAndroid Build Coastguard Worker srcs: [ 29*795d594fSAndroid Build Coastguard Worker "flow_analysis.cc", 30*795d594fSAndroid Build Coastguard Worker "hidden_api.cc", 31*795d594fSAndroid Build Coastguard Worker "hidden_api_finder.cc", 32*795d594fSAndroid Build Coastguard Worker "precise_hidden_api_finder.cc", 33*795d594fSAndroid Build Coastguard Worker "resolver.cc", 34*795d594fSAndroid Build Coastguard Worker "veridex.cc", 35*795d594fSAndroid Build Coastguard Worker ], 36*795d594fSAndroid Build Coastguard Worker cflags: [ 37*795d594fSAndroid Build Coastguard Worker "-Wall", 38*795d594fSAndroid Build Coastguard Worker "-Werror", 39*795d594fSAndroid Build Coastguard Worker ], 40*795d594fSAndroid Build Coastguard Worker static_libs: [ 41*795d594fSAndroid Build Coastguard Worker "libdexfile", 42*795d594fSAndroid Build Coastguard Worker "libartbase", 43*795d594fSAndroid Build Coastguard Worker "libartpalette", 44*795d594fSAndroid Build Coastguard Worker "libbase", 45*795d594fSAndroid Build Coastguard Worker "liblog", 46*795d594fSAndroid Build Coastguard Worker "libz", 47*795d594fSAndroid Build Coastguard Worker "libziparchive", 48*795d594fSAndroid Build Coastguard Worker ], 49*795d594fSAndroid Build Coastguard Worker stl: "libc++_static", 50*795d594fSAndroid Build Coastguard Worker header_libs: [ 51*795d594fSAndroid Build Coastguard Worker "art_libartbase_headers", 52*795d594fSAndroid Build Coastguard Worker ], 53*795d594fSAndroid Build Coastguard Worker target: { 54*795d594fSAndroid Build Coastguard Worker darwin: { 55*795d594fSAndroid Build Coastguard Worker enabled: true, 56*795d594fSAndroid Build Coastguard Worker }, 57*795d594fSAndroid Build Coastguard Worker }, 58*795d594fSAndroid Build Coastguard Worker} 59*795d594fSAndroid Build Coastguard Worker 60*795d594fSAndroid Build Coastguard Worker// Expose the appcompat.sh script for use by the build. 61*795d594fSAndroid Build Coastguard Workersh_binary_host { 62*795d594fSAndroid Build Coastguard Worker name: "veridex-appcompat", 63*795d594fSAndroid Build Coastguard Worker src: "appcompat.sh", 64*795d594fSAndroid Build Coastguard Worker filename_from_src: true, 65*795d594fSAndroid Build Coastguard Worker} 66*795d594fSAndroid Build Coastguard Worker 67*795d594fSAndroid Build Coastguard Workergenrule { 68*795d594fSAndroid Build Coastguard Worker name: "system_stub_dex_d8_input_jar", 69*795d594fSAndroid Build Coastguard Worker visibility: ["//visibility:private"], 70*795d594fSAndroid Build Coastguard Worker srcs: [":system_android_jar"], 71*795d594fSAndroid Build Coastguard Worker tools: ["zip2zip"], 72*795d594fSAndroid Build Coastguard Worker out: ["system_stub_dex_d8_input.jar"], 73*795d594fSAndroid Build Coastguard Worker cmd: "$(location zip2zip) " + 74*795d594fSAndroid Build Coastguard Worker "-j -i $(in) " + 75*795d594fSAndroid Build Coastguard Worker "-o $(out) \"**/*.class\" ", 76*795d594fSAndroid Build Coastguard Worker} 77*795d594fSAndroid Build Coastguard Worker 78*795d594fSAndroid Build Coastguard Workergenrule { 79*795d594fSAndroid Build Coastguard Worker name: "system_stub_dex", 80*795d594fSAndroid Build Coastguard Worker visibility: ["//visibility:private"], 81*795d594fSAndroid Build Coastguard Worker srcs: [":system_stub_dex_d8_input_jar"], 82*795d594fSAndroid Build Coastguard Worker tools: ["d8"], 83*795d594fSAndroid Build Coastguard Worker out: [ 84*795d594fSAndroid Build Coastguard Worker "dex_dir/classes.dex", 85*795d594fSAndroid Build Coastguard Worker "dex_dir/classes2.dex", 86*795d594fSAndroid Build Coastguard Worker ], 87*795d594fSAndroid Build Coastguard Worker cmd: "mkdir -p $(genDir)/dex_dir &&" + 88*795d594fSAndroid Build Coastguard Worker "$(location d8) " + 89*795d594fSAndroid Build Coastguard Worker "-JXmx4096M -JXX:+TieredCompilation -JXX:TieredStopAtLevel=1 " + 90*795d594fSAndroid Build Coastguard Worker "-JDcom.android.tools.r8.emitRecordAnnotationsInDex " + 91*795d594fSAndroid Build Coastguard Worker "-JDcom.android.tools.r8.emitPermittedSubclassesAnnotationsInDex " + 92*795d594fSAndroid Build Coastguard Worker "-JXX:OnError=\"cat hs_err_pid%p.log\" " + 93*795d594fSAndroid Build Coastguard Worker "-JXX:CICompilerCount=6 -JXX:+UseDynamicNumberOfGCThreads " + 94*795d594fSAndroid Build Coastguard Worker "--output $(genDir)/dex_dir " + 95*795d594fSAndroid Build Coastguard Worker "--min-api 1000 " + 96*795d594fSAndroid Build Coastguard Worker "$(in)", 97*795d594fSAndroid Build Coastguard Worker} 98*795d594fSAndroid Build Coastguard Worker 99*795d594fSAndroid Build Coastguard Workergenrule { 100*795d594fSAndroid Build Coastguard Worker name: "public_oahl_stub_dex_d8_input_jar", 101*795d594fSAndroid Build Coastguard Worker visibility: ["//visibility:private"], 102*795d594fSAndroid Build Coastguard Worker srcs: [":public.org.apache.http.legacy.jar"], 103*795d594fSAndroid Build Coastguard Worker tools: ["zip2zip"], 104*795d594fSAndroid Build Coastguard Worker out: ["oahl_stub_dex_d8_input.jar"], 105*795d594fSAndroid Build Coastguard Worker cmd: "$(location zip2zip) " + 106*795d594fSAndroid Build Coastguard Worker "-j -i $(in) " + 107*795d594fSAndroid Build Coastguard Worker "-o $(out) \"**/*.class\" ", 108*795d594fSAndroid Build Coastguard Worker} 109*795d594fSAndroid Build Coastguard Worker 110*795d594fSAndroid Build Coastguard Workergenrule { 111*795d594fSAndroid Build Coastguard Worker name: "oahl_stub_dex", 112*795d594fSAndroid Build Coastguard Worker visibility: ["//visibility:private"], 113*795d594fSAndroid Build Coastguard Worker srcs: [":public_oahl_stub_dex_d8_input_jar"], 114*795d594fSAndroid Build Coastguard Worker tools: ["d8"], 115*795d594fSAndroid Build Coastguard Worker out: [ 116*795d594fSAndroid Build Coastguard Worker "dex_dir/classes.dex", 117*795d594fSAndroid Build Coastguard Worker ], 118*795d594fSAndroid Build Coastguard Worker cmd: "mkdir -p $(genDir)/dex_dir &&" + 119*795d594fSAndroid Build Coastguard Worker "$(location d8) " + 120*795d594fSAndroid Build Coastguard Worker "-JXmx4096M -JXX:+TieredCompilation -JXX:TieredStopAtLevel=1 " + 121*795d594fSAndroid Build Coastguard Worker "-JDcom.android.tools.r8.emitRecordAnnotationsInDex " + 122*795d594fSAndroid Build Coastguard Worker "-JDcom.android.tools.r8.emitPermittedSubclassesAnnotationsInDex " + 123*795d594fSAndroid Build Coastguard Worker "-JXX:OnError=\"cat hs_err_pid%p.log\" " + 124*795d594fSAndroid Build Coastguard Worker "-JXX:CICompilerCount=6 -JXX:+UseDynamicNumberOfGCThreads " + 125*795d594fSAndroid Build Coastguard Worker "--output $(genDir)/dex_dir " + 126*795d594fSAndroid Build Coastguard Worker "--min-api 1000 " + 127*795d594fSAndroid Build Coastguard Worker "$(in)", 128*795d594fSAndroid Build Coastguard Worker} 129*795d594fSAndroid Build Coastguard Worker 130*795d594fSAndroid Build Coastguard Workergenrule { 131*795d594fSAndroid Build Coastguard Worker name: "org.apache.http.legacy-stubs.zip", 132*795d594fSAndroid Build Coastguard Worker visibility: ["//visibility:private"], 133*795d594fSAndroid Build Coastguard Worker srcs: [":oahl_stub_dex"], 134*795d594fSAndroid Build Coastguard Worker tools: ["soong_zip"], 135*795d594fSAndroid Build Coastguard Worker out: ["org.apache.http.legacy-stubs.zip"], 136*795d594fSAndroid Build Coastguard Worker cmd: "mkdir -p $(genDir)/tmp &&" + 137*795d594fSAndroid Build Coastguard Worker "ls -1 $(locations :oahl_stub_dex) | sort > $(genDir)/tmp/org.apache.http.legacy-stubs.zip.list && " + 138*795d594fSAndroid Build Coastguard Worker "$(locations soong_zip) -o $(genDir)/org.apache.http.legacy-stubs.zip " + 139*795d594fSAndroid Build Coastguard Worker " -j -l $(genDir)/tmp/org.apache.http.legacy-stubs.zip.list", 140*795d594fSAndroid Build Coastguard Worker} 141*795d594fSAndroid Build Coastguard Worker 142*795d594fSAndroid Build Coastguard Workergenrule { 143*795d594fSAndroid Build Coastguard Worker name: "system-stubs.zip", 144*795d594fSAndroid Build Coastguard Worker visibility: ["//visibility:private"], 145*795d594fSAndroid Build Coastguard Worker srcs: [":system_stub_dex"], 146*795d594fSAndroid Build Coastguard Worker tools: ["soong_zip"], 147*795d594fSAndroid Build Coastguard Worker out: ["system-stubs.zip"], 148*795d594fSAndroid Build Coastguard Worker cmd: "mkdir -p $(genDir)/tmp &&" + 149*795d594fSAndroid Build Coastguard Worker "ls -1 $(locations :system_stub_dex) | sort > $(genDir)/tmp/system-stubs.zip.list && " + 150*795d594fSAndroid Build Coastguard Worker "$(locations soong_zip) -o $(genDir)/system-stubs.zip" + 151*795d594fSAndroid Build Coastguard Worker " -j -l $(genDir)/tmp/system-stubs.zip.list", 152*795d594fSAndroid Build Coastguard Worker} 153*795d594fSAndroid Build Coastguard Worker 154*795d594fSAndroid Build Coastguard Workerpython_binary_host { 155*795d594fSAndroid Build Coastguard Worker name: "appcompat", 156*795d594fSAndroid Build Coastguard Worker srcs: ["appcompat.py"], 157*795d594fSAndroid Build Coastguard Worker data: [ 158*795d594fSAndroid Build Coastguard Worker ":veridex", 159*795d594fSAndroid Build Coastguard Worker ":org.apache.http.legacy-stubs.zip", 160*795d594fSAndroid Build Coastguard Worker ":system-stubs.zip", 161*795d594fSAndroid Build Coastguard Worker ], 162*795d594fSAndroid Build Coastguard Worker device_common_data: [ 163*795d594fSAndroid Build Coastguard Worker ":platform-bootclasspath{hiddenapi-flags.csv}", 164*795d594fSAndroid Build Coastguard Worker ], 165*795d594fSAndroid Build Coastguard Worker} 166*795d594fSAndroid Build Coastguard Worker 167*795d594fSAndroid Build Coastguard Worker// TODO: Remove `veridex_zip` and `appcompat.sh` after migrating 168*795d594fSAndroid Build Coastguard Worker// `GtsUnofficialApisUsageTestCases` and `GtsNetUnofficialApisUsageTestCases` to use appcompat. 169*795d594fSAndroid Build Coastguard Workerjava_genrule { 170*795d594fSAndroid Build Coastguard Worker name: "veridex_zip", 171*795d594fSAndroid Build Coastguard Worker srcs: [ 172*795d594fSAndroid Build Coastguard Worker "appcompat.sh", 173*795d594fSAndroid Build Coastguard Worker ":platform-bootclasspath{hiddenapi-flags.csv}", 174*795d594fSAndroid Build Coastguard Worker ":org.apache.http.legacy-stubs.zip", 175*795d594fSAndroid Build Coastguard Worker ":system-stubs.zip", 176*795d594fSAndroid Build Coastguard Worker ], 177*795d594fSAndroid Build Coastguard Worker tools: [ 178*795d594fSAndroid Build Coastguard Worker "soong_zip", 179*795d594fSAndroid Build Coastguard Worker "veridex", 180*795d594fSAndroid Build Coastguard Worker ], 181*795d594fSAndroid Build Coastguard Worker out: ["veridex.zip"], 182*795d594fSAndroid Build Coastguard Worker cmd: "mkdir -p $(genDir)/tmp &&" + 183*795d594fSAndroid Build Coastguard Worker "$(locations soong_zip) -o $(out)" + 184*795d594fSAndroid Build Coastguard Worker " -C `dirname $(location appcompat.sh)` -f $(location appcompat.sh)" + 185*795d594fSAndroid Build Coastguard Worker " -C `dirname $(location :platform-bootclasspath{hiddenapi-flags.csv})` -f $(location :platform-bootclasspath{hiddenapi-flags.csv})" + 186*795d594fSAndroid Build Coastguard Worker " -C `dirname $(location veridex)` -f $(location veridex)" + 187*795d594fSAndroid Build Coastguard Worker " -C `dirname $(location :org.apache.http.legacy-stubs.zip)` -f $(location :org.apache.http.legacy-stubs.zip)" + 188*795d594fSAndroid Build Coastguard Worker " -C `dirname $(location :system-stubs.zip)` -f $(location :system-stubs.zip)", 189*795d594fSAndroid Build Coastguard Worker visibility: ["//visibility:public"], 190*795d594fSAndroid Build Coastguard Worker} 191