// Copyright (C) 2019 The LineageOS 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: "livedisplay_samsung_exynos_defaults",
    defaults: ["hidl_defaults"],
    relative_install_path: "hw",
    srcs: [
        "AdaptiveBacklight.cpp",
        "DisplayColorCalibrationExynos.cpp",
        "DisplayModes.cpp",
        "ReadingEnhancement.cpp",
        "SunlightEnhancementExynos.cpp",
        "serviceExynos.cpp",
    ],
    shared_libs: [
        "libbase",
        "libbinder",
        "libhidlbase",
        "libutils",
        "vendor.lineage.livedisplay@2.0",
    ],
}

cc_defaults {
    name: "livedisplay_samsung_qcom_defaults",
    defaults: ["hidl_defaults"],
    relative_install_path: "hw",
    srcs: [
        "AdaptiveBacklight.cpp",
        "DisplayColorCalibration.cpp",
        "DisplayModes.cpp",
        "ReadingEnhancement.cpp",
        "SunlightEnhancement.cpp",
        "service.cpp",
    ],
    shared_libs: [
        "libbase",
        "libbinder",
        "libhidlbase",
        "libutils",
        "vendor.lineage.livedisplay@2.0",
    ],
}

cc_binary {
    name: "lineage.livedisplay@2.0-service.samsung-exynos",
    init_rc: ["lineage.livedisplay@2.0-service.samsung-exynos.rc"],
    defaults: ["livedisplay_samsung_exynos_defaults"],
    cflags: ["-DLIVES_IN_SYSTEM"],
}

cc_binary {
    name: "vendor.lineage.livedisplay@2.0-service.samsung-exynos",
    init_rc: ["vendor.lineage.livedisplay@2.0-service.samsung-exynos.rc"],
    defaults: ["livedisplay_samsung_exynos_defaults"],
    vendor: true,
}

cc_binary {
    name: "lineage.livedisplay@2.0-service.samsung-qcom",
    init_rc: ["lineage.livedisplay@2.0-service.samsung-qcom.rc"],
    defaults: ["livedisplay_samsung_qcom_defaults"],
    cflags: ["-DLIVES_IN_SYSTEM"],
}

cc_binary {
    name: "vendor.lineage.livedisplay@2.0-service.samsung-qcom",
    init_rc: ["vendor.lineage.livedisplay@2.0-service.samsung-qcom.rc"],
    defaults: ["livedisplay_samsung_qcom_defaults"],
    vendor: true,
}
