// 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.

bootstrap_go_package {
    name: "aidl-soong-rules",
    pkgPath: "android/soong/aidl",
    deps: [
        "blueprint",
        "soong",
        "soong-android",
        "soong-cc",
        "soong-genrule",
        "soong-phony",
        "soong-java",
    ],
    srcs: [
        "aidl_interface.go",
        "properties.go",
    ],
    pluginFor: ["soong_build"],
}

// These configurations are inherited by all aidl-gen modules

cc_defaults {
    name: "aidl-cpp-module-defaults",
    cflags: [
        "-Wall",
        "-Werror",
        "-Wextra-semi",
    ],
}

java_defaults {
    name: "aidl-java-module-defaults",
}

// Tests

aidl_interface {
    name: "test-piece-1",
    local_include_dir: "tests_1",
    srcs: [
        "tests_1/some_package/IFoo.aidl",
        "tests_1/some_package/Thing.aidl",
        "tests_1/some_package/sub_package/*.aidl",
    ],
    api_dir: "api/test-piece-1",
    versions: ["1"],
}

aidl_interface {
    name: "test-piece-2",
    local_include_dir: "tests_1",
    srcs: [
        "tests_1/INoPackage.aidl",
        "tests_1/some_package/IBar.aidl",
    ],
    imports: [
        "test-piece-1",
    ],
    api_dir: "api/test-piece-2",
    versions: ["1"],
}

aidl_interface {
    name: "test-piece-3",
    local_include_dir: "tests_1",
    srcs: [
        "tests_1/other_package/IBaz.aidl",
    ],
    imports: [
        "test-piece-2",
    ],
    api_dir: "api/test-piece-3",
    versions: ["1"],
}

aidl_interface {
    name: "test-piece-4",
    local_include_dir: "tests_2",
    srcs: [
        "tests_2/another_package/IFaz.aidl",
    ],
    imports: [
        "test-piece-1",
    ],
    api_dir: "api/test-piece-4",
    versions: ["1"],
}

aidl_interface {
    name: "test-root-package",
    srcs: [
        "test_package/IBaz.aidl",
    ],
    imports: [
        "test-piece-2",
    ],
    versions: ["1", "2"],
}
