// Copyright (C) 2016 The Android Open Source Project // All rights reserved. // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions // are met: // * Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. // * Redistributions in binary form must reproduce the above copyright // notice, this list of conditions and the following disclaimer in // the documentation and/or other materials provided with the // distribution. // // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS // FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE // COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, // INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, // BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS // OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED // AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, // OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT // OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF // SUCH DAMAGE. // // // Copyright (c) 2016 VIXL authors // All rights reserved. // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions // are met: // 1. Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. // 2. Redistributions in binary form must reproduce the above copyright // notice, this list of conditions and the following disclaimer in the // documentation and/or other materials provided with the distribution. // 3. The name of the company may not be used to endorse or promote // products derived from this software without specific prior written // permission. // // THIS SOFTWARE IS PROVIDED BY ARM LTD ``AS IS'' AND ANY EXPRESS OR IMPLIED // WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF // MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. // IN NO EVENT SHALL ARM LTD BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED // TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR // PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF // LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING // NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS // SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. cc_defaults { name: "vixl-common", host_supported: true, clang: true, srcs: ["src/*.cc"], clang_cflags: ["-Wimplicit-fallthrough"], cppflags: [ "-DVIXL_GENERATE_SIMULATOR_INSTRUCTIONS_VALUE=0", "-Wall", "-Wextra", "-Werror", "-fdiagnostics-show-option", "-Wredundant-decls", "-Wunreachable-code", "-Wmissing-noreturn", "-pedantic", "-std=c++11", // Explicitly enable the write-strings warning. VIXL uses // const correctly when handling string constants. "-Wwrite-strings", ], local_include_dirs: ["src"], native_coverage: false, sanitize: { recover: ["shift-exponent"], }, } cc_defaults { name: "vixl-arm", defaults: ["vixl-common"], cppflags: [ "-DVIXL_CODE_BUFFER_MALLOC", "-DVIXL_INCLUDE_TARGET_T32", ], srcs: ["src/aarch32/*.cc"], } cc_defaults { name: "vixl-arm64", defaults: ["vixl-common"], cppflags: [ "-DVIXL_INCLUDE_SIMULATOR_AARCH64", "-DVIXL_CODE_BUFFER_MMAP", "-DVIXL_INCLUDE_TARGET_A64", ], srcs: ["src/aarch64/*.cc"], } cc_defaults { name: "vixl-debug", defaults: ["vixl-common"], cppflags: [ "-DVIXL_DEBUG", "-UNDEBUG", "-O2", "-ggdb3", ], } cc_defaults { name: "vixl-release", defaults: ["vixl-common"], cppflags: [ "-O3", ], } cc_library { name: "libvixl-arm64", defaults: ["vixl-release", "vixl-arm64"], vendor_available: true, vndk: { enabled: true, }, } cc_library { name: "libvixld-arm64", defaults: ["vixl-debug", "vixl-arm64"], } cc_library { name: "libvixl-arm", defaults: ["vixl-release", "vixl-arm"], vendor_available: true, vndk: { enabled: true, }, } cc_library { name: "libvixld-arm", defaults: ["vixl-debug", "vixl-arm"], } //######## VIXL HOST TESTS ######### // // We only support 64bit host builds for now. // To run all the tests: vixl-test-runner --run_all // cc_binary_host { name: "vixl-test-runner", static_executable: true, defaults: ["vixl-debug", "vixl-arm", "vixl-arm64"], local_include_dirs: ["test"], srcs: [ "test/*.cc", "test/aarch32/*.cc", "test/aarch64/*.cc", ], enabled: false, target: { linux_x86_64: { enabled: true, }, }, }