blob: ada2f6bdcaeb44d9c2f3a1adf963991bae9e9a66 [file] [log] [blame]
// Copyright (C) 2018 The Android Open Source Project
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package {
// See: http://go/android-license-faq
// A large-scale-change added 'default_applicable_licenses' to import
// all of the 'license_kinds' from "art_license"
// to get the below license kinds:
// SPDX-license-identifier-Apache-2.0
default_applicable_licenses: ["art_license"],
}
cc_binary {
name: "veridex",
defaults: ["art_defaults"],
host_supported: true,
srcs: [
"flow_analysis.cc",
"hidden_api.cc",
"hidden_api_finder.cc",
"precise_hidden_api_finder.cc",
"resolver.cc",
"veridex.cc",
],
cflags: [
"-Wall",
"-Werror",
],
static_libs: [
"libdexfile",
"libartbase",
"libartpalette",
"libbase",
"liblog",
"libz",
"libziparchive",
],
stl: "libc++_static",
header_libs: [
"art_libartbase_headers",
],
target: {
darwin: {
enabled: true,
},
},
}
// Expose the appcompat.sh script for use by the build.
sh_binary_host {
name: "veridex-appcompat",
src: "appcompat.sh",
filename_from_src: true,
}
genrule {
name: "system_stub_dex_d8_input_jar",
srcs: [":system_android_jar"],
tools: ["zip2zip"],
out: ["system_stub_dex_d8_input.jar"],
cmd: "$(location zip2zip) " +
"-j -i $(in) " +
"-o $(out) \"**/*.class\" ",
}
genrule {
name: "system_stub_dex",
srcs: [
":system_stub_dex_d8_input_jar",
],
tools: [
"d8",
],
out: [
"dex_dir/classes.dex",
"dex_dir/classes2.dex",
],
cmd: "mkdir -p $(genDir)/dex_dir &&" +
"$(location d8) " +
"-JXmx4096M -JXX:+TieredCompilation -JXX:TieredStopAtLevel=1 " +
"-JDcom.android.tools.r8.emitRecordAnnotationsInDex " +
"-JDcom.android.tools.r8.emitPermittedSubclassesAnnotationsInDex " +
"-JXX:OnError=\"cat hs_err_pid%p.log\" " +
"-JXX:CICompilerCount=6 -JXX:+UseDynamicNumberOfGCThreads " +
"--output $(genDir)/dex_dir " +
"--min-api 1000 " +
"$(in)",
}
genrule {
name: "public_oahl_stub_dex_d8_input_jar",
srcs: [":public.org.apache.http.legacy.jar"],
tools: ["zip2zip"],
out: ["oahl_stub_dex_d8_input.jar"],
cmd: "$(location zip2zip) " +
"-j -i $(in) " +
"-o $(out) \"**/*.class\" ",
}
genrule {
name: "public_oahl_stub_dex",
srcs: [
":public_oahl_stub_dex_d8_input_jar",
],
tools: [
"d8",
],
out: [
"dex_dir/classes.dex",
],
cmd: "mkdir -p $(genDir)/dex_dir &&" +
"$(location d8) " +
"-JXmx4096M -JXX:+TieredCompilation -JXX:TieredStopAtLevel=1 " +
"-JDcom.android.tools.r8.emitRecordAnnotationsInDex " +
"-JDcom.android.tools.r8.emitPermittedSubclassesAnnotationsInDex " +
"-JXX:OnError=\"cat hs_err_pid%p.log\" " +
"-JXX:CICompilerCount=6 -JXX:+UseDynamicNumberOfGCThreads " +
"--output $(genDir)/dex_dir " +
"--min-api 1000 " +
"$(in)",
}
genrule {
name: "veridex_zip",
srcs: [
"appcompat.sh",
":platform-bootclasspath{hiddenapi-flags.csv}",
":system_stub_dex",
":public_oahl_stub_dex",
],
tools: [
"soong_zip",
"veridex",
],
out: ["veridex.zip"],
cmd: "mkdir -p $(genDir)/tmp &&" +
"ls -1 $(locations :system_stub_dex) | sort > $(genDir)/tmp/system-stubs.zip.list && " +
"$(locations soong_zip) -o $(genDir)/tmp/system-stubs.zip" +
" -j -l $(genDir)/tmp/system-stubs.zip.list && " +
"ls -1 $(locations :public_oahl_stub_dex) | sort > $(genDir)/tmp/org.apache.http.legacy-stubs.zip.list && " +
"$(locations soong_zip) -o $(genDir)/tmp/org.apache.http.legacy-stubs.zip " +
" -j -l $(genDir)/tmp/org.apache.http.legacy-stubs.zip.list && " +
"$(locations soong_zip) -o $(out)" +
" -C `dirname $(location appcompat.sh)` -f $(location appcompat.sh)" +
" -C `dirname $(location :platform-bootclasspath{hiddenapi-flags.csv})` -f $(location :platform-bootclasspath{hiddenapi-flags.csv})" +
" -C `dirname $(location veridex)` -f $(location veridex)" +
" -j -f $(genDir)/tmp/system-stubs.zip" +
" -j -f $(genDir)/tmp/org.apache.http.legacy-stubs.zip",
visibility: ["//visibility:public"],
}