blob: ac80641fae174ea2a5d0fd1be70f10e7e7f594bf [file] [log] [blame]
//
// Copyright (C) 2016 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_defaults {
name: "profman-defaults",
host_supported: true,
defaults: ["art_defaults"],
srcs: [
"boot_image_profile.cc",
"profman.cc",
"profile_assistant.cc",
],
header_libs: ["profman_headers"],
target: {
android: {
compile_multilib: "first",
shared_libs: [
"libbase",
],
},
host: {
whole_static_libs: [
"libbase",
],
},
darwin: {
enabled: true,
},
},
}
// Collect all the static defaults and build a host-only static library, which
// is then used for the (mostly) static host profman binary.
art_cc_library_static {
name: "libprofman_static",
device_supported: false,
host_supported: true,
defaults: [
"art_defaults",
"libartbase_static_defaults",
"libdexfile_static_defaults",
"libprofile_static_defaults",
],
target: {
darwin: {
enabled: true,
},
},
}
art_cc_library_static {
name: "libprofmand_static",
device_supported: false,
host_supported: true,
defaults: [
"art_debug_defaults",
"libartbased_static_defaults",
"libdexfiled_static_defaults",
"libprofiled_static_defaults",
],
target: {
darwin: {
enabled: true,
},
},
}
art_cc_binary {
name: "profman",
defaults: ["profman-defaults"],
target: {
android: {
shared_libs: [
"libartbase",
"libdexfile",
"libprofile",
],
},
host: {
// Make the host binary static, except for system libraries. This
// avoids having to bundle host dynamic libs in prebuilts.
static_libs: ["libprofman_static"],
stl: "c++_static",
},
},
apex_available: [
"com.android.art",
"com.android.art.debug",
"test_broken_com.android.art",
],
}
art_cc_binary {
name: "profmand",
defaults: [
"art_debug_defaults",
"profman-defaults",
],
target: {
android: {
shared_libs: [
"libartbased",
"libdexfiled",
"libprofiled",
],
},
host: {
// Make the host binary static, except for system libraries. This
// avoids having to bundle host dynamic libs in prebuilts.
static_libs: ["libprofmand_static"],
stl: "c++_static",
},
},
apex_available: [
"com.android.art.debug",
],
}
art_cc_binary {
name: "profmans",
defaults: [
"profman-defaults",
"libprofile_static_defaults",
"libdexfile_static_defaults",
"libartbase_static_defaults",
],
host_supported: true,
device_supported: false,
target: {
darwin: {
enabled: false,
},
windows: {
enabled: true,
cflags: ["-Wno-thread-safety"],
},
},
}
cc_library_headers {
name: "profman_headers",
defaults: ["art_defaults"],
export_include_dirs: ["include"],
host_supported: true,
target: {
darwin: {
enabled: false,
},
windows: {
enabled: true,
},
},
apex_available: [
"com.android.art",
"com.android.art.debug",
],
}
art_cc_defaults {
name: "art_profman_tests_defaults",
data: [
":art-gtest-jars-ProfileTestMultiDex",
],
header_libs: ["profman_headers"],
tidy_timeout_srcs: ["profile_assistant_test.cc"],
srcs: ["profile_assistant_test.cc"],
}
// Version of ART gtest `art_profman_tests` bundled with the ART APEX on target.
// TODO(b/192274705): Remove this module when the migration to standalone ART gtests is complete.
art_cc_test {
name: "art_profman_tests",
defaults: [
"art_gtest_defaults",
"art_profman_tests_defaults",
],
shared_libs: [
"libprofiled",
],
target: {
host: {
required: ["profmand"],
},
},
}
// Standalone version of ART gtest `art_profman_tests`, not bundled with the ART APEX on target.
art_cc_test {
name: "art_standalone_profman_tests",
defaults: [
"art_standalone_gtest_defaults",
"art_profman_tests_defaults",
],
data: [":generate-boot-image"],
shared_libs: [
"libprofile",
],
target: {
host: {
required: ["profman"],
},
},
test_config_template: "art_standalone_profman_tests.xml",
}