| # |
| # 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. |
| # |
| |
| 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_C_INCLUDES := external/gtest/include |
| 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_C_INCLUDES := external/gtest/include |
| 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_C_INCLUDES := external/gtest/include |
| 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 \ |
| 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_util.cpp \ |
| type_cpp_unittest.cpp \ |
| type_java_unittest.cpp \ |
| |
| LOCAL_STATIC_LIBRARIES := \ |
| libaidl-common \ |
| $(aidl_static_libraries) \ |
| libgmock_host \ |
| libgtest_host \ |
| |
| LOCAL_LDLIBS_linux := -lrt |
| include $(BUILD_HOST_NATIVE_TEST) |
| |
| # |
| # Everything below here is used for integration testing of generated AIDL code. |
| # |
| aidl_integration_test_cflags := $(aidl_cflags) -Wunused-parameter |
| aidl_integration_test_shared_libs := \ |
| libbase \ |
| libbinder \ |
| liblog \ |
| libutils |
| |
| include $(CLEAR_VARS) |
| LOCAL_MODULE := libaidl-integration-test |
| LOCAL_MODULE_CLASS := SHARED_LIBRARIES |
| LOCAL_CFLAGS := $(aidl_integration_test_cflags) |
| LOCAL_SHARED_LIBRARIES := $(aidl_integration_test_shared_libs) |
| LOCAL_AIDL_INCLUDES := \ |
| system/tools/aidl/tests/ \ |
| frameworks/native/aidl/binder |
| LOCAL_SRC_FILES := \ |
| tests/android/aidl/tests/ITestService.aidl \ |
| tests/android/aidl/tests/INamedCallback.aidl \ |
| tests/simple_parcelable.cpp |
| include $(BUILD_SHARED_LIBRARY) |
| |
| include $(CLEAR_VARS) |
| LOCAL_MODULE := aidl_test_service |
| LOCAL_CFLAGS := $(aidl_integration_test_cflags) |
| LOCAL_SHARED_LIBRARIES := \ |
| libaidl-integration-test \ |
| $(aidl_integration_test_shared_libs) |
| LOCAL_SRC_FILES := \ |
| tests/aidl_test_service.cpp |
| include $(BUILD_EXECUTABLE) |
| |
| include $(CLEAR_VARS) |
| LOCAL_MODULE := aidl_test_client |
| LOCAL_CFLAGS := $(aidl_integration_test_cflags) |
| LOCAL_SHARED_LIBRARIES := \ |
| libaidl-integration-test \ |
| $(aidl_integration_test_shared_libs) |
| LOCAL_SRC_FILES := \ |
| tests/aidl_test_client.cpp \ |
| tests/aidl_test_client_file_descriptors.cpp \ |
| tests/aidl_test_client_parcelables.cpp \ |
| tests/aidl_test_client_nullables.cpp \ |
| tests/aidl_test_client_primitives.cpp \ |
| tests/aidl_test_client_utf8_strings.cpp \ |
| 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. |
| ifndef BRILLO |
| |
| include $(CLEAR_VARS) |
| LOCAL_PACKAGE_NAME := aidl_test_services |
| # Turn off Java optimization tools to speed up our test iterations. |
| LOCAL_PROGUARD_ENABLED := disabled |
| LOCAL_DEX_PREOPT := false |
| LOCAL_CERTIFICATE := platform |
| LOCAL_MANIFEST_FILE := tests/java_app/AndroidManifest.xml |
| LOCAL_RESOURCE_DIR := $(LOCAL_PATH)/tests/java_app/resources |
| LOCAL_SRC_FILES := \ |
| tests/android/aidl/tests/ITestService.aidl \ |
| tests/android/aidl/tests/INamedCallback.aidl \ |
| tests/java_app/src/android/aidl/tests/SimpleParcelable.java \ |
| tests/java_app/src/android/aidl/tests/TestServiceClient.java |
| LOCAL_AIDL_INCLUDES := \ |
| system/tools/aidl/tests/ \ |
| frameworks/native/aidl/binder |
| include $(BUILD_PACKAGE) |
| |
| endif # not defined BRILLO |