// Copyright (C) 2015 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.

// =====================
// libdrmhwc_utils.a
// =====================
cc_library_static {
    name: "libdrmhwc_utils",

    srcs: ["worker.cpp"],

    cflags: [
        "-Wall",
        "-Werror",
    ],

    vendor: true,

}

// =====================
// hwcomposer.drm.so
// =====================
cc_defaults {
    name: "hwcomposer.drm_defaults",

    shared_libs: [
        "libcutils",
        "libdrm",
        "libhardware",
        "liblog",
        "libsync",
        "libui",
        "libutils",
    ],

    static_libs: ["libdrmhwc_utils"],

    cflags: [
        "-Wall",
        "-Werror",
    ],

    cppflags: [
        "-DHWC2_USE_CPP11",
        "-DHWC2_INCLUDE_STRINGIFICATION",
    ],

    relative_install_path: "hw",
    vendor: true,
}
cc_library_static {
    name: "drm_hwcomposer",
    defaults: ["hwcomposer.drm_defaults"],
    srcs: [
        "autolock.cpp",
        "resourcemanager.cpp",
        "drmdevice.cpp",
        "drmconnector.cpp",
        "drmcrtc.cpp",
        "drmdisplaycomposition.cpp",
        "drmdisplaycompositor.cpp",
        "drmencoder.cpp",
        "drmeventlistener.cpp",
        "drmhwctwo.cpp",
        "drmmode.cpp",
        "drmplane.cpp",
        "drmproperty.cpp",
        "hwcutils.cpp",
        "platform.cpp",
        "vsyncworker.cpp",
    ],
}

cc_library_shared {
    name: "hwcomposer.drm",
    defaults: ["hwcomposer.drm_defaults"],
    whole_static_libs: ["drm_hwcomposer"],
    srcs: ["platformdrmgeneric.cpp"],
    cppflags: ["-DUSE_DRM_GENERIC_IMPORTER"],
}

cc_library_shared {
    name: "hwcomposer.drm_minigbm",
    defaults: ["hwcomposer.drm_defaults"],
    whole_static_libs: ["drm_hwcomposer"],
    srcs: [
        "platformdrmgeneric.cpp",
        "platformminigbm.cpp",
    ],
    include_dirs: ["external/minigbm/cros_gralloc"],
}

// Used by hwcomposer.drm_hikey and hwcomposer.drm_hikey960
filegroup {
    name: "drm_hwcomposer_platformhisi",
    srcs: [
        "platformdrmgeneric.cpp",
        "platformhisi.cpp",
    ],
}
