//
// Copyright (C) 2019 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: "libartpalette_defaults",
    defaults: ["art_defaults"],
    host_supported: true,
    export_include_dirs: ["include"],
}

cc_library_headers {
    name: "libartpalette-headers",
    export_include_dirs: ["include"],
    host_supported: true,
    visibility: ["//system/libartpalette"],
}

// libartpalette is the dynamic loader of the platform abstraction
// layer. It is only used on Android. For other targets, it just
// implements a fake platform implementation.
art_cc_library {
    name: "libartpalette",
    defaults: ["libartpalette_defaults"],
    required: ["libartpalette-system"], // libartpalette.so dlopen()'s libartpalette-system.
    header_libs: ["libbase_headers"],
    target: {
        // Targets supporting dlopen build the client library which loads
        // and binds the methods in the libartpalette-system library.
        android: {
            srcs: ["apex/palette.cc"],
            shared: {
                shared_libs: ["liblog"],
            },
            static: {
                static_libs: ["liblog"],
            },
            version_script: "libartpalette.map.txt",
        },
        linux_bionic: {
            header_libs: ["libbase_headers"],
            srcs: ["system/palette_fake.cc"],
            shared: {
                shared_libs: [
                    "libbase",
                    "liblog",
                ],
            },
            version_script: "libartpalette.map.txt",
        },
        linux_glibc: {
            header_libs: ["libbase_headers"],
            srcs: ["system/palette_fake.cc"],
            shared: {
                shared_libs: [
                    "libbase",
                    "liblog",
                ],
            },
            version_script: "libartpalette.map.txt",
        },
        // Targets without support for dlopen just use the sources for
        // the system library which actually implements functionality.
        darwin: {
            enabled: true,
            header_libs: ["libbase_headers"],
            srcs: ["system/palette_fake.cc"],
            static_libs: [
                "libbase",
                "liblog",
            ],
        },
        windows: {
            enabled: true,
            header_libs: ["libbase_headers"],
            srcs: ["system/palette_fake.cc"],
            static_libs: [
                "libbase",
                "liblog",
            ],
        },
    },
    apex_available: [
        "com.android.art.release",
        "com.android.art.debug",
        // TODO(b/142944931): remove this
        "com.android.runtime", // due to the transitive dependency from linker
        // TODO(b/142944931) Clean this up. This is due to the dependency to libdexfile_support_static
        // from /system/core, etc.
        "//apex_available:platform",
    ],
}

art_cc_test {
    name: "art_libartpalette_tests",
    defaults: ["art_gtest_defaults"],
    host_supported: true,
    srcs: ["apex/palette_test.cc"],
    shared_libs: ["libartpalette"],
    test_per_src: true,
}
