blob: 917d79ab00f67e608cf9a4852c18ae93c65194a1 [file] [log] [blame]
Colin Crossc7376e02016-09-08 12:52:18 -07001//
2// Copyright (C) 2016 The Android Open Source Project
3//
4// Licensed under the Apache License, Version 2.0 (the "License");
5// you may not use this file except in compliance with the License.
6// You may obtain a copy of the License at
7//
8// http://www.apache.org/licenses/LICENSE-2.0
9//
10// Unless required by applicable law or agreed to in writing, software
11// distributed under the License is distributed on an "AS IS" BASIS,
12// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13// See the License for the specific language governing permissions and
14// limitations under the License.
15//
16
Bob Badour9150de62021-02-26 03:22:24 -080017package {
18 // See: http://go/android-license-faq
19 // A large-scale-change added 'default_applicable_licenses' to import
20 // all of the 'license_kinds' from "art_license"
21 // to get the below license kinds:
22 // SPDX-license-identifier-Apache-2.0
23 default_applicable_licenses: ["art_license"],
24}
25
Colin Crossc7376e02016-09-08 12:52:18 -070026cc_defaults {
27 name: "profman-defaults",
28 host_supported: true,
29 defaults: ["art_defaults"],
30 srcs: [
Mathieu Chartier2f794552017-06-19 10:58:08 -070031 "boot_image_profile.cc",
Colin Crossc7376e02016-09-08 12:52:18 -070032 "profman.cc",
33 "profile_assistant.cc",
34 ],
35
36 target: {
37 android: {
Orion Hodson0e858532021-08-02 21:16:05 +010038 compile_multilib: "first",
Martin Stjernholm39419da2021-03-28 22:32:16 +010039 shared_libs: [
40 "libbase",
41 ],
42 },
43 host: {
44 whole_static_libs: [
45 "libbase",
46 ],
Colin Crossc7376e02016-09-08 12:52:18 -070047 },
David Srbeckyd53f6062019-03-22 14:55:21 +000048 darwin: {
49 enabled: true,
50 },
Colin Crossc7376e02016-09-08 12:52:18 -070051 },
Martin Stjernholm39419da2021-03-28 22:32:16 +010052}
Colin Crossc7376e02016-09-08 12:52:18 -070053
Martin Stjernholm39419da2021-03-28 22:32:16 +010054// Collect all the static defaults and build a host-only static library, which
55// is then used for the (mostly) static host profman binary.
56art_cc_library_static {
57 name: "libprofman_static",
58 device_supported: false,
59 host_supported: true,
60 defaults: [
61 "art_defaults",
62 "libartbase_static_defaults",
63 "libdexfile_static_defaults",
64 "libprofile_static_defaults",
65 ],
Martin Stjernholma148d612021-03-30 19:02:39 +010066 target: {
67 darwin: {
68 enabled: true,
69 },
70 },
Martin Stjernholm39419da2021-03-28 22:32:16 +010071}
72
73art_cc_library_static {
74 name: "libprofmand_static",
75 device_supported: false,
76 host_supported: true,
77 defaults: [
78 "art_debug_defaults",
Martin Stjernholm36138ac2021-05-12 00:40:23 +010079 "art_defaults",
Martin Stjernholm39419da2021-03-28 22:32:16 +010080 "libartbased_static_defaults",
81 "libdexfiled_static_defaults",
82 "libprofiled_static_defaults",
Andreas Gampe3fec9ac2016-09-13 10:47:28 -070083 ],
Martin Stjernholma148d612021-03-30 19:02:39 +010084 target: {
85 darwin: {
86 enabled: true,
87 },
88 },
Colin Crossc7376e02016-09-08 12:52:18 -070089}
90
91art_cc_binary {
92 name: "profman",
93 defaults: ["profman-defaults"],
Martin Stjernholm39419da2021-03-28 22:32:16 +010094 target: {
95 android: {
96 shared_libs: [
97 "libartbase",
98 "libdexfile",
99 "libprofile",
100 ],
101 },
102 host: {
103 // Make the host binary static, except for system libraries. This
104 // avoids having to bundle host dynamic libs in prebuilts.
105 static_libs: ["libprofman_static"],
106 stl: "c++_static",
107
108 },
109 },
Jiyong Park066dd9022019-12-19 02:11:59 +0000110 apex_available: [
Martin Stjernholm3e9abfc2020-10-09 22:17:51 +0100111 "com.android.art",
Jiyong Park066dd9022019-12-19 02:11:59 +0000112 "com.android.art.debug",
113 ],
Colin Crossc7376e02016-09-08 12:52:18 -0700114}
115
116art_cc_binary {
117 name: "profmand",
118 defaults: [
Colin Crossc7376e02016-09-08 12:52:18 -0700119 "art_debug_defaults",
Andreas Gampe5115efb2017-05-24 16:55:54 -0700120 "profman-defaults",
Colin Crossc7376e02016-09-08 12:52:18 -0700121 ],
Martin Stjernholm39419da2021-03-28 22:32:16 +0100122 target: {
123 android: {
124 shared_libs: [
125 "libartbased",
126 "libdexfiled",
127 "libprofiled",
128 ],
129 },
130 host: {
131 // Make the host binary static, except for system libraries. This
132 // avoids having to bundle host dynamic libs in prebuilts.
133 static_libs: ["libprofmand_static"],
134 stl: "c++_static",
135
136 },
137 },
Jiyong Park066dd9022019-12-19 02:11:59 +0000138 apex_available: [
139 "com.android.art.debug",
140 ],
Colin Crossc7376e02016-09-08 12:52:18 -0700141}
Colin Cross6e95dd52016-09-12 15:37:10 -0700142
David Sehr9d9227a2018-12-19 12:32:50 -0800143art_cc_binary {
144 name: "profmans",
145 defaults: [
146 "profman-defaults",
147 "libprofile_static_defaults",
148 "libdexfile_static_defaults",
149 "libartbase_static_defaults",
150 ],
151 host_supported: true,
152 device_supported: false,
153 target: {
154 darwin: {
155 enabled: false,
156 },
157 windows: {
158 enabled: true,
Andreas Gampe0dc93b12019-05-15 10:30:22 -0700159 cflags: ["-Wno-thread-safety"],
David Sehr9d9227a2018-12-19 12:32:50 -0800160 },
161 },
162}
163
Roland Levillainf0409142021-03-22 15:45:03 +0000164art_cc_defaults {
165 name: "art_profman_tests_defaults",
David Srbecky4a88a5a2020-05-05 16:21:57 +0100166 data: [
167 ":art-gtest-jars-ProfileTestMultiDex",
168 ],
Colin Cross6e95dd52016-09-12 15:37:10 -0700169 srcs: ["profile_assistant_test.cc"],
Roland Levillainf0409142021-03-22 15:45:03 +0000170}
171
172// Version of ART gtest `art_profman_tests` bundled with the ART APEX on target.
173// TODO(b/192274705): Remove this module when the migration to standalone ART gtests is complete.
174art_cc_test {
175 name: "art_profman_tests",
176 defaults: [
177 "art_gtest_defaults",
178 "art_profman_tests_defaults",
179 ],
180 shared_libs: [
181 "libprofiled",
182 ],
Yo Chiang169dfb42020-08-07 04:22:18 +0000183 target: {
184 host: {
185 required: ["profmand"],
186 },
187 },
Colin Cross6e95dd52016-09-12 15:37:10 -0700188}
Roland Levillainf0409142021-03-22 15:45:03 +0000189
190// Standalone version of ART gtest `art_profman_tests`, not bundled with the ART APEX on target.
191art_cc_test {
192 name: "art_standalone_profman_tests",
193 defaults: [
194 "art_standalone_gtest_defaults",
195 "art_profman_tests_defaults",
196 ],
197 shared_libs: [
198 "libprofile",
199 ],
200 target: {
201 host: {
202 required: ["profman"],
203 },
204 },
205 test_config_template: "art_standalone_profman_tests.xml",
206}