// Copyright (C) 2022 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 {
    default_applicable_licenses: ["Android-Apache-2.0"],
}

filegroup {
    name: "releasetools_merge_sources",
    srcs: [
        "merge_compatibility_checks.py",
        "merge_dexopt.py",
        "merge_meta.py",
        "merge_target_files.py",
        "merge_utils.py",
    ],
}

filegroup {
    name: "releasetools_merge_tests",
    srcs: [
        "test_merge_compatibility_checks.py",
        "test_merge_meta.py",
        "test_merge_utils.py",
    ],
}

python_binary_host {
    name: "merge_target_files",
    defaults: ["releasetools_binary_defaults"],
    srcs: [":releasetools_merge_sources"],
    libs: [
        "releasetools_add_img_to_target_files",
        "releasetools_build_super_image",
        "releasetools_check_target_files_vintf",
        "releasetools_common",
        "releasetools_find_shareduid_violation",
        "releasetools_img_from_target_files",
        "releasetools_ota_from_target_files",
    ],
    required: [
        "apexd_host",
        "checkvintf",
        "host_init_verifier",
        "secilc",
    ],
    target: {
        darwin: {
            // libs dep "releasetools_ota_from_target_files" is disabled on darwin
            enabled: false,
        },
    },
}

python_binary_host {
    name: "merge_builds",
    defaults: ["releasetools_binary_defaults"],
    srcs: [
        "merge_builds.py",
    ],
    libs: [
        "releasetools_build_super_image",
        "releasetools_common",
    ],
}
