# # 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 \ 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_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