// Copyright (C) 2013 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: "inputflinger_defaults",
    cflags: [
        "-Wall",
        "-Wextra",
        "-Werror",
        "-Wno-unused-parameter",
        "-Wthread-safety",
    ],
}

cc_library_shared {
    name: "libinputflinger",
    defaults: ["inputflinger_defaults"],

    srcs: [
        "InputClassifier.cpp",
        "InputClassifierConverter.cpp",
        "InputDispatcher.cpp",
        "InputManager.cpp",
    ],

    shared_libs: [
        "android.hardware.input.classifier@1.0",
        "libbase",
        "libinputflinger_base",
        "libinputreporter",
        "libinputreader",
        "libbinder",
        "libcutils",
        "libhidlbase",
        "libinput",
        "liblog",
        "libutils",
        "libui",
        "server_configurable_flags",
    ],

    cflags: [
        // TODO(b/23084678): Move inputflinger to its own process and mark it hidden
        //-fvisibility=hidden
    ],

    export_include_dirs: [
        ".",
        "include",
    ],

}

cc_library_headers {
    name: "libinputflinger_headers",
    export_include_dirs: ["include"],
}

cc_library_shared {
    name: "libinputreader",
    defaults: ["inputflinger_defaults"],

    srcs: [
        "EventHub.cpp",
        "InputReader.cpp",
        "InputReaderFactory.cpp",
        "TouchVideoDevice.cpp",
    ],

    shared_libs: [
        "libbase",
        "libinputflinger_base",
        "libcrypto",
        "libcutils",
        "libinput",
        "liblog",
        "libui",
        "libutils",
        "libhardware_legacy",
        "libstatslog",
    ],

    header_libs: [
        "libinputflinger_headers",
    ],

    export_header_lib_headers: [
        "libinputflinger_headers",
    ],
}

cc_library_shared {
    name: "libinputflinger_base",
    defaults: ["inputflinger_defaults"],

    srcs: [
        "InputListener.cpp",
        "InputReaderBase.cpp",
    ],

    shared_libs: [
        "libbase",
        "libinput",
        "liblog",
        "libutils",
    ],

    header_libs: [
        "libinputflinger_headers",
    ],

    export_header_lib_headers: [
        "libinputflinger_headers",
    ],
}

cc_library_shared {
    name: "libinputreporter",
    defaults: ["inputflinger_defaults"],

    srcs: [
        "InputReporter.cpp",
    ],

    shared_libs: [
        "liblog",
        "libutils",
    ],

    header_libs: [
        "libinputflinger_headers",
    ],

    export_header_lib_headers: [
        "libinputflinger_headers",
    ],
}

subdirs = [
    "host",
    "tests",
]