1// 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, 57 srcs: ["src/*.cc"], 58 clang_cflags: ["-Wimplicit-fallthrough"], 59 cflags: [ 60 "-Wall", 61 "-Werror", 62 ], 63 cppflags: [ 64 "-DVIXL_GENERATE_SIMULATOR_INSTRUCTIONS_VALUE=0", 65 "-Wextra", 66 "-fdiagnostics-show-option", 67 "-Wredundant-decls", 68 "-Wunreachable-code", 69 "-Wmissing-noreturn", 70 "-pedantic", 71 72 // Explicitly enable the write-strings warning. VIXL uses 73 // const correctly when handling string constants. 74 "-Wwrite-strings", 75 76 "-DVIXL_CODE_BUFFER_MALLOC", 77 ], 78 local_include_dirs: ["src"], 79 native_coverage: false, 80 sanitize: { 81 recover: ["shift-exponent"], 82 }, 83} 84 85art_cc_defaults { 86 name: "vixl-arm", 87 defaults: ["vixl-common"], 88 codegen: { 89 arm: { 90 srcs: ["src/aarch32/*.cc"], 91 cppflags: [ 92 "-DVIXL_INCLUDE_TARGET_T32", 93 ], 94 }, 95 }, 96} 97 98art_cc_defaults { 99 name: "vixl-arm64", 100 defaults: ["vixl-common"], 101 codegen: { 102 arm64: { 103 srcs: ["src/aarch64/*.cc"], 104 cppflags: [ 105 "-DVIXL_INCLUDE_SIMULATOR_AARCH64", 106 "-DVIXL_INCLUDE_TARGET_A64", 107 ], 108 } 109 }, 110} 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 132art_cc_library { 133 name: "libvixl", 134 defaults: [ 135 "vixl-release", 136 "vixl-arm", 137 "vixl-arm64", 138 "dex2oat-pgo-defaults", 139 ], 140 141 target: { 142 android: { 143 lto: { 144 thin: true, 145 }, 146 }, 147 }, 148} 149 150art_cc_library { 151 name: "libvixld", 152 defaults: [ 153 "vixl-debug", 154 "vixl-arm", 155 "vixl-arm64", 156 ], 157} 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// 164cc_test_host { 165 name: "vixl-test-runner", 166 gtest: false, 167 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 ], 174 data: [ 175 "test/test-trace-reference/*", 176 ], 177 enabled: false, 178 target: { 179 linux_glibc_x86_64: { 180 enabled: true, 181 }, 182 }, 183} 184