Convert to Android.bp am: 8fd503f6d7
am: b3dd722c09

Change-Id: I600d89c12bd2a87ff2dc3bfe5cd6c1dbec5f438f
diff --git a/Android.bp b/Android.bp
new file mode 100644
index 0000000..fcb2851
--- /dev/null
+++ b/Android.bp
@@ -0,0 +1,156 @@
+//
+// Copyright (C) 2015 The Android Open Source Project
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+cc_defaults {
+    name: "aidl_defaults",
+    clang_cflags: [
+        "-Wall",
+        "-Wextra",
+        "-Werror",
+    ],
+    whole_static_libs: ["libgtest_prod"],
+    static_libs: [
+        "libbase",
+        "libcutils",
+    ],
+    target: {
+        windows: {
+            enabled: true,
+        },
+    },
+}
+
+// Logic shared between aidl and its unittests
+cc_library_host_static {
+    name: "libaidl-common",
+    defaults: ["aidl_defaults"],
+
+    clang_cflags: [
+        // Tragically, the code is riddled with unused parameters.
+        "-Wno-unused-parameter",
+
+        // yacc dumps a lot of code *just in case*.
+        "-Wno-unused-function",
+        "-Wno-unneeded-internal-declaration",
+
+        // yacc is a tool from a more civilized age.
+        "-Wno-deprecated-register",
+
+        // yacc also has a habit of using char* over const char*.
+        "-Wno-writable-strings",
+    ],
+
+    srcs: [
+        "aidl.cpp",
+        "aidl_language.cpp",
+        "aidl_language_l.ll",
+        "aidl_language_y.yy",
+        "ast_cpp.cpp",
+        "ast_java.cpp",
+        "code_writer.cpp",
+        "generate_cpp.cpp",
+        "generate_java.cpp",
+        "generate_java_binder.cpp",
+        "import_resolver.cpp",
+        "line_reader.cpp",
+        "io_delegate.cpp",
+        "options.cpp",
+        "type_cpp.cpp",
+        "type_java.cpp",
+        "type_namespace.cpp",
+    ],
+}
+
+// aidl executable
+cc_binary_host {
+    name: "aidl",
+    defaults: ["aidl_defaults"],
+    srcs: ["main_java.cpp"],
+    static_libs: [
+        "libaidl-common",
+        "libbase",
+    ],
+}
+
+// aidl-cpp executable
+cc_binary_host {
+    name: "aidl-cpp",
+    defaults: ["aidl_defaults"],
+    srcs: ["main_cpp.cpp"],
+    static_libs: [
+        "libaidl-common",
+        "libbase",
+    ],
+}
+
+// Unit tests
+cc_test_host {
+    name: "aidl_unittests",
+
+    cflags: [
+        "-Wall",
+        "-Wextra",
+        "-Werror",
+        "-g",
+        "-DUNIT_TEST",
+    ],
+    // Tragically, the code is riddled with unused parameters.
+    clang_cflags: ["-Wno-unused-parameter"],
+    srcs: [
+        "aidl_unittest.cpp",
+        "ast_cpp_unittest.cpp",
+        "ast_java_unittest.cpp",
+        "generate_cpp_unittest.cpp",
+        "io_delegate_unittest.cpp",
+        "options_unittest.cpp",
+        "tests/end_to_end_tests.cpp",
+        "tests/fake_io_delegate.cpp",
+        "tests/main.cpp",
+        "tests/test_data_example_interface.cpp",
+        "tests/test_data_ping_responder.cpp",
+        "tests/test_data_string_constants.cpp",
+        "tests/test_util.cpp",
+        "type_cpp_unittest.cpp",
+        "type_java_unittest.cpp",
+    ],
+
+    static_libs: [
+        "libaidl-common",
+        "libbase",
+        "libcutils",
+        "libgmock_host",
+    ],
+
+    target: {
+        linux: {
+            host_ldlibs: ["-lrt"],
+        },
+    },
+}
+
+//
+// Everything below here is used for integration testing of generated AIDL code.
+//
+cc_binary {
+    name: "aidl_test_sentinel_searcher",
+    srcs: ["tests/aidl_test_sentinel_searcher.cpp"],
+    cflags: [
+        "-Wall",
+        "-Wextra",
+        "-Werror",
+        "-Wunused-parameter",
+    ],
+}
diff --git a/Android.mk b/Android.mk
index 3c1463a..a44dc0b 100644
--- a/Android.mk
+++ b/Android.mk
@@ -17,107 +17,6 @@
 LOCAL_PATH := $(call my-dir)
 
 aidl_cflags := -Wall -Wextra -Werror
-aidl_static_libraries := libbase libcutils
-
-aidl_module_host_os := darwin linux windows
-ifdef BRILLO
-  aidl_module_host_os := darwin linux
-endif
-
-# Logic shared between aidl and its unittests
-include $(CLEAR_VARS)
-LOCAL_MODULE := libaidl-common
-LOCAL_MODULE_HOST_OS := $(aidl_module_host_os)
-
-LOCAL_WHOLE_STATIC_LIBRARIES := libgtest_prod
-LOCAL_CLANG_CFLAGS := $(aidl_cflags)
-# Tragically, the code is riddled with unused parameters.
-LOCAL_CLANG_CFLAGS += -Wno-unused-parameter
-# yacc dumps a lot of code *just in case*.
-LOCAL_CLANG_CFLAGS += -Wno-unused-function
-LOCAL_CLANG_CFLAGS += -Wno-unneeded-internal-declaration
-# yacc is a tool from a more civilized age.
-LOCAL_CLANG_CFLAGS += -Wno-deprecated-register
-# yacc also has a habit of using char* over const char*.
-LOCAL_CLANG_CFLAGS += -Wno-writable-strings
-LOCAL_STATIC_LIBRARIES := $(aidl_static_libraries)
-
-LOCAL_SRC_FILES := \
-    aidl.cpp \
-    aidl_language.cpp \
-    aidl_language_l.ll \
-    aidl_language_y.yy \
-    ast_cpp.cpp \
-    ast_java.cpp \
-    code_writer.cpp \
-    generate_cpp.cpp \
-    generate_java.cpp \
-    generate_java_binder.cpp \
-    import_resolver.cpp \
-    line_reader.cpp \
-    io_delegate.cpp \
-    options.cpp \
-    type_cpp.cpp \
-    type_java.cpp \
-    type_namespace.cpp \
-
-include $(BUILD_HOST_STATIC_LIBRARY)
-
-
-# aidl executable
-include $(CLEAR_VARS)
-LOCAL_MODULE := aidl
-
-LOCAL_MODULE_HOST_OS := $(aidl_module_host_os)
-LOCAL_CFLAGS := $(aidl_cflags)
-LOCAL_WHOLE_STATIC_LIBRARIES := libgtest_prod
-LOCAL_SRC_FILES := main_java.cpp
-LOCAL_STATIC_LIBRARIES := libaidl-common $(aidl_static_libraries)
-include $(BUILD_HOST_EXECUTABLE)
-
-# aidl-cpp executable
-include $(CLEAR_VARS)
-LOCAL_MODULE := aidl-cpp
-
-LOCAL_MODULE_HOST_OS := $(aidl_module_host_os)
-LOCAL_CFLAGS := $(aidl_cflags)
-LOCAL_WHOLE_STATIC_LIBRARIES := libgtest_prod
-LOCAL_SRC_FILES := main_cpp.cpp
-LOCAL_STATIC_LIBRARIES := libaidl-common $(aidl_static_libraries)
-include $(BUILD_HOST_EXECUTABLE)
-
-# Unit tests
-include $(CLEAR_VARS)
-LOCAL_MODULE := aidl_unittests
-LOCAL_MODULE_HOST_OS := darwin linux
-
-LOCAL_CFLAGS := $(aidl_cflags) -g -DUNIT_TEST
-# Tragically, the code is riddled with unused parameters.
-LOCAL_CLANG_CFLAGS := -Wno-unused-parameter
-LOCAL_SRC_FILES := \
-    aidl_unittest.cpp \
-    ast_cpp_unittest.cpp \
-    ast_java_unittest.cpp \
-    generate_cpp_unittest.cpp \
-    io_delegate_unittest.cpp \
-    options_unittest.cpp \
-    tests/end_to_end_tests.cpp \
-    tests/fake_io_delegate.cpp \
-    tests/main.cpp \
-    tests/test_data_example_interface.cpp \
-    tests/test_data_ping_responder.cpp \
-    tests/test_data_string_constants.cpp \
-    tests/test_util.cpp \
-    type_cpp_unittest.cpp \
-    type_java_unittest.cpp \
-
-LOCAL_STATIC_LIBRARIES := \
-    libaidl-common \
-    $(aidl_static_libraries) \
-    libgmock_host \
-
-LOCAL_LDLIBS_linux := -lrt
-include $(BUILD_HOST_NATIVE_TEST)
 
 #
 # Everything below here is used for integration testing of generated AIDL code.
@@ -169,12 +68,6 @@
     tests/aidl_test_client_service_exceptions.cpp
 include $(BUILD_EXECUTABLE)
 
-include $(CLEAR_VARS)
-LOCAL_MODULE := aidl_test_sentinel_searcher
-LOCAL_SRC_FILES := tests/aidl_test_sentinel_searcher.cpp
-LOCAL_CFLAGS := $(aidl_integration_test_cflags)
-include $(BUILD_EXECUTABLE)
-
 
 # aidl on its own doesn't need the framework, but testing native/java
 # compatibility introduces java dependencies.