blob: 01e9226d954e12a7af313e185c7559d77fb1b43d [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: {
Roland Levillain38a938e2018-09-21 10:55:51 +010038 // Use the 32-bit version of profman on devices.
Colin Crossc7376e02016-09-08 12:52:18 -070039 compile_multilib: "prefer32",
Martin Stjernholm39419da2021-03-28 22:32:16 +010040 shared_libs: [
41 "libbase",
42 ],
43 },
44 host: {
45 whole_static_libs: [
46 "libbase",
47 ],
Colin Crossc7376e02016-09-08 12:52:18 -070048 },
David Srbeckyd53f6062019-03-22 14:55:21 +000049 darwin: {
50 enabled: true,
51 },
Colin Crossc7376e02016-09-08 12:52:18 -070052 },
Martin Stjernholm39419da2021-03-28 22:32:16 +010053}
Colin Crossc7376e02016-09-08 12:52:18 -070054
Martin Stjernholm39419da2021-03-28 22:32:16 +010055// Collect all the static defaults and build a host-only static library, which
56// is then used for the (mostly) static host profman binary.
57art_cc_library_static {
58 name: "libprofman_static",
59 device_supported: false,
60 host_supported: true,
61 defaults: [
62 "art_defaults",
63 "libartbase_static_defaults",
64 "libdexfile_static_defaults",
65 "libprofile_static_defaults",
66 ],
Martin Stjernholma148d612021-03-30 19:02:39 +010067 target: {
68 darwin: {
69 enabled: true,
70 },
71 },
Martin Stjernholm39419da2021-03-28 22:32:16 +010072}
73
74art_cc_library_static {
75 name: "libprofmand_static",
76 device_supported: false,
77 host_supported: true,
78 defaults: [
79 "art_debug_defaults",
80 "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
Colin Cross6e95dd52016-09-12 15:37:10 -0700164art_cc_test {
165 name: "art_profman_tests",
166 defaults: [
Colin Crossafd3c9e2016-09-16 13:47:21 -0700167 "art_gtest_defaults",
Colin Cross6e95dd52016-09-12 15:37:10 -0700168 ],
David Sehr82d046e2018-04-23 08:14:19 -0700169 shared_libs: [
170 "libprofiled",
171 ],
David Srbecky4a88a5a2020-05-05 16:21:57 +0100172 data: [
173 ":art-gtest-jars-ProfileTestMultiDex",
174 ],
Colin Cross6e95dd52016-09-12 15:37:10 -0700175 srcs: ["profile_assistant_test.cc"],
Yo Chiang169dfb42020-08-07 04:22:18 +0000176 target: {
177 host: {
178 required: ["profmand"],
179 },
180 },
Colin Cross6e95dd52016-09-12 15:37:10 -0700181}