blob: 3c6acb9705daaa49793f8ef12386742d9de17102 [file] [log] [blame]
Colin Crossfe6064a2016-08-30 13:49:26 -07001//
2// Copyright (C) 2014 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
David Srbecky0adf4d82018-10-01 18:17:45 +010017// This produces human-readable asm_defines.s with the embedded compile-time constants.
Bob Badour9150de62021-02-26 03:22:24 -080018package {
19 // See: http://go/android-license-faq
20 // A large-scale-change added 'default_applicable_licenses' to import
21 // all of the 'license_kinds' from "art_license"
22 // to get the below license kinds:
23 // SPDX-license-identifier-Apache-2.0
24 default_applicable_licenses: ["art_license"],
25}
26
David Srbecky0adf4d82018-10-01 18:17:45 +010027cc_object {
28 name: "asm_defines.s",
Colin Crossfe6064a2016-08-30 13:49:26 -070029 host_supported: true,
David Srbecky0adf4d82018-10-01 18:17:45 +010030 device_supported: true,
Colin Crossfe6064a2016-08-30 13:49:26 -070031 defaults: [
32 "art_debug_defaults",
33 "art_defaults",
34 ],
Paul Duffineafeeb22019-07-19 10:22:32 +010035 header_libs: [
36 "art_libartbase_headers", // For base/bit_utils.h
Orion Hodson00cb81d2020-04-03 06:47:07 +010037 "jni_headers",
Paul Duffineafeeb22019-07-19 10:22:32 +010038 "libart_runtime_headers_ndk",
39 "libdexfile_all_headers", // For dex/modifiers.h
David Sehr334b9d72018-02-12 18:27:56 -080040 ],
David Srbecky0adf4d82018-10-01 18:17:45 +010041 // Produce text file rather than binary.
42 cflags: ["-S"],
43 srcs: ["asm_defines.cc"],
Jiyong Park7c2f69e2020-01-15 15:43:32 +090044 apex_available: [
Martin Stjernholm3e9abfc2020-10-09 22:17:51 +010045 "com.android.art",
Jiyong Park7c2f69e2020-01-15 15:43:32 +090046 "com.android.art.debug",
Jiyong Park7c2f69e2020-01-15 15:43:32 +090047 ],
Colin Crossfe6064a2016-08-30 13:49:26 -070048}
Igor Murashkin2bb70d32017-02-06 10:34:14 -080049
Martin Stjernholm1dc77ab2021-05-10 17:44:05 +010050soong_config_module_type_import {
51 from: "art/build/SoongConfig.bp",
52 module_types: [
53 "art_module_cc_genrule",
54 ],
55}
56
David Srbecky0adf4d82018-10-01 18:17:45 +010057// This extracts the compile-time constants from asm_defines.s and creates the header.
Martin Stjernholm1dc77ab2021-05-10 17:44:05 +010058art_module_cc_genrule {
Dan Willemsen2ca27802017-09-27 14:57:43 -070059 name: "cpp-define-generator-asm-support",
Martin Stjernholm1dc77ab2021-05-10 17:44:05 +010060
61 // :asm_defines.s is only available when building ART from source, so do the
62 // same here.
63 // TODO(b/172480617): Clean up when sources are gone from the platform tree
64 // and we no longer need to support sources present when prebuilts are used.
65 enabled: false,
66 soong_config_variables: {
67 source_build: {
68 enabled: true,
69 },
70 },
71
David Srbecky0adf4d82018-10-01 18:17:45 +010072 host_supported: true,
73 device_supported: true,
74 srcs: [":asm_defines.s"],
David Srbecky766e74f2018-10-02 17:12:24 +010075 out: ["asm_defines.h"],
David Srbecky0adf4d82018-10-01 18:17:45 +010076 tool_files: ["make_header.py"],
77 cmd: "$(location make_header.py) \"$(in)\" > \"$(out)\"",
Elliott Hughes221dfa62019-09-03 16:03:56 -070078 target: {
79 darwin: {
80 enabled: false,
81 },
Martin Stjernholm1dc77ab2021-05-10 17:44:05 +010082 windows: {
83 // When the module is enabled globally in the soong_config_variables
84 // stanza above, it gets enabled on windows too. Hence we need to
85 // disable it explicitly.
86 // TODO(b/172480617): Clean up with that.
87 enabled: false,
88 },
Elliott Hughes221dfa62019-09-03 16:03:56 -070089 },
Jiyong Park71f661c2020-04-28 18:20:43 +090090
91 apex_available: [
Martin Stjernholm3e9abfc2020-10-09 22:17:51 +010092 "com.android.art",
Jiyong Park71f661c2020-04-28 18:20:43 +090093 "com.android.art.debug",
Jiyong Park71f661c2020-04-28 18:20:43 +090094 ],
David Srbecky0adf4d82018-10-01 18:17:45 +010095}
96
97cc_library_headers {
98 name: "cpp-define-generator-definitions",
99 host_supported: true,
100 export_include_dirs: ["."],
Jiyong Park71f661c2020-04-28 18:20:43 +0900101
102 apex_available: [
Martin Stjernholm3e9abfc2020-10-09 22:17:51 +0100103 "com.android.art",
Jiyong Park71f661c2020-04-28 18:20:43 +0900104 "com.android.art.debug",
Jiyong Park71f661c2020-04-28 18:20:43 +0900105 ],
Nicolas Geoffrayec388c02021-03-03 22:09:06 +0000106 min_sdk_version: "S",
David Srbecky0adf4d82018-10-01 18:17:45 +0100107}
108
109python_binary_host {
110 name: "cpp-define-generator-test",
111 main: "make_header_test.py",
112 srcs: [
113 "make_header.py",
114 "make_header_test.py",
115 ],
116 test_suites: ["general-tests"],
Igor Murashkin2bb70d32017-02-06 10:34:14 -0800117}