| // 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"], |
| } |