Add support for Android.bp
The VIXL equivalent for:
- https://android-review.googlesource.com/#/c/256784/
Change-Id: I34ce65172763dac23373e3ada91edc4ec639ee33
diff --git a/third_party/android/Android.bp b/third_party/android/Android.bp
new file mode 100644
index 0000000..5d38d7a
--- /dev/null
+++ b/third_party/android/Android.bp
@@ -0,0 +1,157 @@
+// 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"],
+ srcs: ["src/aarch32/*.cc"],
+}
+
+cc_defaults {
+ name: "vixl-arm64",
+ defaults: ["vixl-common"],
+ cppflags: ["-DVIXL_INCLUDE_SIMULATOR_AARCH64"],
+ 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"],
+}
+
+cc_library {
+ name: "libvixld-arm64",
+ defaults: ["vixl-debug", "vixl-arm64"],
+}
+
+cc_library {
+ name: "libvixl-arm",
+ defaults: ["vixl-release", "vixl-arm"],
+}
+
+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,
+ },
+ },
+}