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,
+        },
+    },
+}