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

cc_defaults {
    name: "idmap2_defaults",
    tidy: true,
    tidy_checks: [
        "modernize-*",
        "-modernize-avoid-c-arrays",
        "android-*",
        "misc-*",
        "readability-*",
    ],
    tidy_flags: [
        "-system-headers",
        "-warnings-as-errors=*",
    ],
}

cc_library {
    name: "libidmap2",
    defaults: [
        "idmap2_defaults",
    ],
    host_supported: true,
    srcs: [
        "libidmap2/BinaryStreamVisitor.cpp",
        "libidmap2/CommandLineOptions.cpp",
        "libidmap2/FileUtils.cpp",
        "libidmap2/Idmap.cpp",
        "libidmap2/Policies.cpp",
        "libidmap2/PrettyPrintVisitor.cpp",
        "libidmap2/RawPrintVisitor.cpp",
        "libidmap2/ResourceUtils.cpp",
        "libidmap2/Result.cpp",
        "libidmap2/Xml.cpp",
        "libidmap2/ZipFile.cpp",
    ],
    export_include_dirs: ["include"],
    target: {
        android: {
            static: {
                enabled: false,
            },
            shared_libs: [
                "libandroidfw",
                "libbase",
                "libcutils",
                "libutils",
                "libziparchive",
            ],
        },
        host: {
            shared: {
                enabled: false,
            },
            static_libs: [
                "libandroidfw",
                "libbase",
                "libutils",
                "libziparchive",
            ],
        },
    },
}

cc_test {
    name: "idmap2_tests",
    defaults: [
        "idmap2_defaults",
    ],
    tidy_checks: [
        "-readability-magic-numbers",
    ],
    host_supported: true,
    test_suites: ["general-tests"],
    srcs: [
        "tests/BinaryStreamVisitorTests.cpp",
        "tests/CommandLineOptionsTests.cpp",
        "tests/FileUtilsTests.cpp",
        "tests/Idmap2BinaryTests.cpp",
        "tests/IdmapTests.cpp",
        "tests/Main.cpp",
        "tests/PoliciesTests.cpp",
        "tests/PrettyPrintVisitorTests.cpp",
        "tests/RawPrintVisitorTests.cpp",
        "tests/ResourceUtilsTests.cpp",
        "tests/ResultTests.cpp",
        "tests/XmlTests.cpp",
        "tests/ZipFileTests.cpp",
    ],
    required: [
        "idmap2",
    ],
    static_libs: ["libgmock"],
    target: {
        android: {
            shared_libs: [
                "libandroidfw",
                "libbase",
                "libidmap2",
                "liblog",
                "libutils",
                "libz",
                "libziparchive",
            ],
        },
        host: {
            static_libs: [
                "libandroidfw",
                "libbase",
                "libidmap2",
                "liblog",
                "libutils",
                "libziparchive",
            ],
            shared_libs: [
                "libz",
            ],
        },
    },
    data: ["tests/data/**/*.apk"],
}

cc_binary {
    name: "idmap2",
    defaults: [
        "idmap2_defaults",
    ],
    host_supported: true,
    srcs: [
        "idmap2/Create.cpp",
        "idmap2/Dump.cpp",
        "idmap2/Lookup.cpp",
        "idmap2/Main.cpp",
        "idmap2/Scan.cpp",
        "idmap2/Verify.cpp",
    ],
    target: {
        android: {
            shared_libs: [
                "libandroidfw",
                "libbase",
                "libcutils",
                "libidmap2",
                "libutils",
                "libziparchive",
            ],
        },
        host: {
            static_libs: [
                "libandroidfw",
                "libbase",
                "libidmap2",
                "liblog",
                "libutils",
                "libziparchive",
            ],
            shared_libs: [
                "libz",
            ],
        },
    },
}

cc_binary {
    name: "idmap2d",
    defaults: [
        "idmap2_defaults",
    ],
    host_supported: false,
    srcs: [
        "idmap2d/Idmap2Service.cpp",
        "idmap2d/Main.cpp",
    ],
    shared_libs: [
        "libandroidfw",
        "libbase",
        "libbinder",
        "libcutils",
        "libidmap2",
        "libutils",
        "libziparchive",
    ],
    static_libs: [
        "libidmap2daidl",
    ],
    init_rc: ["idmap2d/idmap2d.rc"],
}

cc_library_static {
    name: "libidmap2daidl",
    defaults: [
        "idmap2_defaults",
    ],
    tidy: false,
    host_supported: false,
    srcs: [
        ":idmap2_aidl",
    ],
    shared_libs: [
        "libbase",
    ],
    aidl: {
        export_aidl_headers: true,
    },
}

filegroup {
    name: "idmap2_aidl",
    srcs: [
        "idmap2d/aidl/android/os/IIdmap2.aidl",
    ],
}