// Copyright (C) 2018 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. package { // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "system_tools_aidl_license" // to get the below license kinds: // SPDX-license-identifier-Apache-2.0 default_applicable_licenses: ["system_tools_aidl_license"], } bootstrap_go_package { name: "aidl-soong-rules", pkgPath: "android/soong/aidl", deps: [ "blueprint", "soong", "soong-apex", "soong-android", "soong-cc", "soong-genrule", "soong-phony", "soong-java", "soong-rust", ], srcs: [ "aidl_interface.go", "properties.go", "aidl_api.go", "aidl_gen_rule.go", "aidl_interface_backends.go", "aidl_interface_metadata_singleton.go", "aidl_mapping.go", "aidl_rust_source_provider.go", "aidl_utils.go", ], testSrcs: [ "aidl_test.go", ], pluginFor: ["soong_build"], } aidl_interfaces_metadata { name: "aidl_metadata_json", visibility: ["//system/tools/aidl:__subpackages__"], } // These configurations are inherited by all aidl-gen modules // TODO(b/146436251): default isn't applied because the module is created // in PreArchMutators, when import behavior becomes explicit, the logic can // be moved back to LoadHook, and then default can be applied as well. cc_defaults { name: "aidl-cpp-module-defaults", // TODO(b/31559095): remove when host bionic is available defaults: ["libbinder_ndk_host_user"], } java_defaults { name: "aidl-java-module-defaults", } rust_defaults { name: "aidl-rust-module-defaults", } // Tests filegroup { name: "aidl-test-filegroup", srcs: [ "tests_1/some_package/IFoo.aidl", "tests_1/some_package/Thing.aidl", "tests_1/some_package/sub_package/*.aidl", ], } aidl_interface { name: "test-piece-1", local_include_dir: "tests_1", vendor_available: true, double_loadable: true, host_supported: true, flags: ["-Werror"], srcs: [ "tests_1/some_package/IFoo.aidl", "tests_1/some_package/Thing.aidl", "tests_1/some_package/sub_package/*.aidl", // testing glob w/o filegroup ], versions: [ "1", "2", "3", ], } aidl_interface { name: "test-piece-2", local_include_dir: "tests_1", flags: ["-Werror"], srcs: [ "tests_1/INoPackage.aidl", "tests_1/some_package/IBar.aidl", ], imports: [ "test-piece-1", ], backend: { java: { platform_apis: true, }, }, gen_trace: true, versions: ["1"], } aidl_interface { name: "test-piece-3", local_include_dir: "tests_1", flags: ["-Werror"], srcs: [ "tests_1/other_package/IBaz.aidl", ], imports: [ "test-piece-2", ], backend: { java: { platform_apis: true, }, }, gen_trace: true, versions: ["1"], } aidl_interface { name: "test-piece-4", local_include_dir: "tests_2", flags: ["-Werror"], srcs: [ "tests_2/another_package/IFaz.aidl", ], imports: [ "test-piece-1", ], backend: { java: { platform_apis: true, }, }, gen_trace: true, versions: ["1"], dumpapi: { no_license: true, }, } aidl_interface { name: "test-root-package", flags: ["-Werror"], srcs: [ "test_package/IBaz.aidl", ], imports: [ "test-piece-2", ], backend: { java: { platform_apis: true, }, }, gen_trace: true, versions: [ "1", "2", ], } aidl_interface { name: "test-piece-5", unstable: true, local_include_dir: "tests_3", flags: ["-Werror"], srcs: [ "tests_3/EmptyParcelable.aidl", "tests_3/IEmptyInterface.aidl", ], } // These test that a parcel imported from A->B->C will have the required dependencies to link in // all backends (C++ backends need to link direclty against the constructor of the parcelable // in order to work) aidl_interface { name: "tests_transitive_parcel.a", flags: ["-Werror"], srcs: [ "tests_transitive_parcel/a/*.aidl" ], imports: [ "tests_transitive_parcel.b", "tests_transitive_parcel.c", ], unstable: true, backend: { rust: { enabled: true, }, }, } aidl_interface { name: "tests_transitive_parcel.b", flags: ["-Werror"], srcs: [ "tests_transitive_parcel/b/*.aidl" ], imports: [ "tests_transitive_parcel.c" ], unstable: true, backend: { rust: { enabled: true, }, }, } aidl_interface { name: "tests_transitive_parcel.c", flags: ["-Werror"], srcs: [ "tests_transitive_parcel/c/*.aidl" ], unstable: true, backend: { rust: { enabled: true, }, }, }