blob: bc4e560d7f72a51764b7894bc12808bd893e30c7 [file] [log] [blame]
Serban Constantinescu98eabc72016-08-16 14:33:45 +01001// Copyright (C) 2016 The Android Open Source Project
2// All rights reserved.
3//
4// Redistribution and use in source and binary forms, with or without
5// modification, are permitted provided that the following conditions
6// are met:
7// * Redistributions of source code must retain the above copyright
8// notice, this list of conditions and the following disclaimer.
9// * Redistributions in binary form must reproduce the above copyright
10// notice, this list of conditions and the following disclaimer in
11// the documentation and/or other materials provided with the
12// distribution.
13//
14// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
15// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
16// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
17// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
18// COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
19// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
20// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
21// OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
22// AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
23// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
24// OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
25// SUCH DAMAGE.
26//
27//
28// Copyright (c) 2016 VIXL authors
29// All rights reserved.
30//
31// Redistribution and use in source and binary forms, with or without
32// modification, are permitted provided that the following conditions
33// are met:
34// 1. Redistributions of source code must retain the above copyright
35// notice, this list of conditions and the following disclaimer.
36// 2. Redistributions in binary form must reproduce the above copyright
37// notice, this list of conditions and the following disclaimer in the
38// documentation and/or other materials provided with the distribution.
39// 3. The name of the company may not be used to endorse or promote
40// products derived from this software without specific prior written
41// permission.
42//
43// THIS SOFTWARE IS PROVIDED BY ARM LTD ``AS IS'' AND ANY EXPRESS OR IMPLIED
44// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
45// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
46// IN NO EVENT SHALL ARM LTD BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
47// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
48// TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
49// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
50// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
51// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
52// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
53
54cc_defaults {
55 name: "vixl-common",
56 host_supported: true,
Serban Constantinescu98eabc72016-08-16 14:33:45 +010057 srcs: ["src/*.cc"],
58 clang_cflags: ["-Wimplicit-fallthrough"],
Chih-Hung Hsieh5652ef32017-09-29 11:33:41 -070059 cflags: [
60 "-Wall",
61 "-Werror",
62 ],
Serban Constantinescu98eabc72016-08-16 14:33:45 +010063 cppflags: [
64 "-DVIXL_GENERATE_SIMULATOR_INSTRUCTIONS_VALUE=0",
Serban Constantinescu98eabc72016-08-16 14:33:45 +010065 "-Wextra",
Serban Constantinescu98eabc72016-08-16 14:33:45 +010066 "-fdiagnostics-show-option",
67 "-Wredundant-decls",
68 "-Wunreachable-code",
69 "-Wmissing-noreturn",
70 "-pedantic",
Serban Constantinescu98eabc72016-08-16 14:33:45 +010071
72 // Explicitly enable the write-strings warning. VIXL uses
73 // const correctly when handling string constants.
74 "-Wwrite-strings",
Vladimir Marko9b007712018-04-26 16:04:44 +010075
Vladimir Marko9b007712018-04-26 16:04:44 +010076 "-DVIXL_CODE_BUFFER_MALLOC",
Serban Constantinescu98eabc72016-08-16 14:33:45 +010077 ],
78 local_include_dirs: ["src"],
79 native_coverage: false,
80 sanitize: {
81 recover: ["shift-exponent"],
82 },
83}
84
Roland Levillain9c53ca62018-10-31 19:51:43 +000085art_cc_defaults {
Serban Constantinescu98eabc72016-08-16 14:33:45 +010086 name: "vixl-arm",
87 defaults: ["vixl-common"],
Roland Levillain9c53ca62018-10-31 19:51:43 +000088 codegen: {
89 arm: {
90 srcs: ["src/aarch32/*.cc"],
91 cppflags: [
92 "-DVIXL_INCLUDE_TARGET_T32",
93 ],
94 },
95 },
Serban Constantinescu98eabc72016-08-16 14:33:45 +010096}
97
Roland Levillain9c53ca62018-10-31 19:51:43 +000098art_cc_defaults {
Serban Constantinescu98eabc72016-08-16 14:33:45 +010099 name: "vixl-arm64",
100 defaults: ["vixl-common"],
Roland Levillain9c53ca62018-10-31 19:51:43 +0000101 codegen: {
102 arm64: {
103 srcs: ["src/aarch64/*.cc"],
104 cppflags: [
105 "-DVIXL_INCLUDE_SIMULATOR_AARCH64",
106 "-DVIXL_INCLUDE_TARGET_A64",
107 ],
108 }
109 },
Serban Constantinescu98eabc72016-08-16 14:33:45 +0100110}
111
112cc_defaults {
113 name: "vixl-debug",
114 defaults: ["vixl-common"],
115 cppflags: [
116 "-DVIXL_DEBUG",
117 "-UNDEBUG",
118
119 "-O2",
120 "-ggdb3",
121 ],
122}
123
124cc_defaults {
125 name: "vixl-release",
126 defaults: ["vixl-common"],
127 cppflags: [
128 "-O3",
129 ],
130}
131
Roland Levillain9c53ca62018-10-31 19:51:43 +0000132art_cc_library {
133 name: "libvixl",
Pirama Arumuga Nainar67fa1c72018-04-18 23:03:04 -0700134 defaults: [
135 "vixl-release",
Roland Levillain9c53ca62018-10-31 19:51:43 +0000136 "vixl-arm",
Pirama Arumuga Nainar67fa1c72018-04-18 23:03:04 -0700137 "vixl-arm64",
138 "dex2oat-pgo-defaults",
139 ],
Pirama Arumuga Nainar9048d872018-01-04 11:18:07 -0800140
Yi Kongf6111722018-04-06 14:10:43 -0700141 target: {
142 android: {
143 lto: {
144 thin: true,
145 },
146 },
147 },
Serban Constantinescu98eabc72016-08-16 14:33:45 +0100148}
149
Roland Levillain9c53ca62018-10-31 19:51:43 +0000150art_cc_library {
151 name: "libvixld",
Pirama Arumuga Nainar67fa1c72018-04-18 23:03:04 -0700152 defaults: [
Roland Levillain9c53ca62018-10-31 19:51:43 +0000153 "vixl-debug",
Pirama Arumuga Nainar67fa1c72018-04-18 23:03:04 -0700154 "vixl-arm",
Roland Levillain9c53ca62018-10-31 19:51:43 +0000155 "vixl-arm64",
Pirama Arumuga Nainar67fa1c72018-04-18 23:03:04 -0700156 ],
Serban Constantinescu98eabc72016-08-16 14:33:45 +0100157}
158
159//######## VIXL HOST TESTS #########
160//
161// We only support 64bit host builds for now.
162// To run all the tests: vixl-test-runner --run_all
163//
Dan Willemsen7168b852017-10-06 11:27:01 -0700164cc_test_host {
Serban Constantinescu98eabc72016-08-16 14:33:45 +0100165 name: "vixl-test-runner",
Dan Willemsen7168b852017-10-06 11:27:01 -0700166 gtest: false,
Serban Constantinescu98eabc72016-08-16 14:33:45 +0100167 defaults: ["vixl-debug", "vixl-arm", "vixl-arm64"],
168 local_include_dirs: ["test"],
169 srcs: [
170 "test/*.cc",
171 "test/aarch32/*.cc",
172 "test/aarch64/*.cc",
173 ],
Dan Willemsen7168b852017-10-06 11:27:01 -0700174 data: [
175 "test/test-trace-reference/*",
176 ],
Serban Constantinescu98eabc72016-08-16 14:33:45 +0100177 enabled: false,
178 target: {
Dan Willemsenbe06b802017-10-02 10:41:10 -0700179 linux_glibc_x86_64: {
Serban Constantinescu98eabc72016-08-16 14:33:45 +0100180 enabled: true,
181 },
182 },
183}