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

package {
    default_applicable_licenses: ["system_chre_license"],
}

// Added automatically by a large-scale-change that took the approach of
// 'apply every license found to every target'. While this makes sure we respect
// every license restriction, it may not be entirely correct.
//
// e.g. GPL in an MIT project might only apply to the contrib/ directory.
//
// Please consider splitting the single license below into multiple licenses,
// taking care not to lose any license_kind information, and overriding the
// default license using the 'licenses: [...]' property on targets as needed.
//
// For unused files, consider creating a 'fileGroup' with "//visibility:private"
// to attach the license to, and including a comment whether the files may be
// used in the current project.
// See: http://go/android-license-faq
license {
    name: "system_chre_license",
    visibility: [":__subpackages__"],
    license_kinds: [
        "SPDX-license-identifier-Apache-2.0",
        "SPDX-license-identifier-BSD",
    ],
    license_text: [
        "NOTICE",
    ],
}

cc_library_static {
    name: "chre_client",
    vendor: true,
    export_include_dirs: [
        "host/common/include",
        "platform/shared/include",
        "util/include",
    ],
    srcs: [
        "host/common/fragmented_load_transaction.cc",
        "host/common/host_protocol_host.cc",
        "host/common/socket_client.cc",
        "platform/shared/host_protocol_common.cc",
    ],
    header_libs: ["chre_flatbuffers"],
    export_header_lib_headers: ["chre_flatbuffers"],
    shared_libs: [
        "libcutils",
        "liblog",
        "libutils",
    ],
    cflags: ["-Wall", "-Werror"],
}

cc_binary {
    name: "chre_test_client",
    vendor: true,
    local_include_dirs: [
        "chre_api/include/chre_api",
        "util/include",
    ],
    srcs: [
        "host/common/test/chre_test_client.cc",
    ],
    cflags: ["-Wall", "-Werror"],
    shared_libs: [
        "libcutils",
        "liblog",
        "libutils",
    ],
    static_libs: ["chre_client"],
}

cc_binary {
    name: "chre_power_test_client",
    vendor: true,
    local_include_dirs: [
        "chre_api/include/chre_api",
        "util/include",
        "apps/power_test/common/include",
    ],
    srcs: [
        "host/common/test/power_test/chre_power_test_client.cc",
    ],
    cflags: ["-Wall", "-Werror"],
    shared_libs: [
        "libcutils",
        "liblog",
        "libutils",
    ],
    static_libs: ["chre_client"],
}

cc_test {
    name: "audio_stress_test",
    vendor: true,
    local_include_dirs: [
        "chre_api/include/chre_api",
        "util/include",
    ],
    srcs: [
        "host/common/audio_stress_test/audio_stress_test.cc",
    ],
    cflags: ["-Wall", "-Werror"],
    shared_libs: [
        "libcutils",
        "liblog",
        "libutils",
    ],
    static_libs: ["chre_client"],
    gtest: false,
}

cc_library_headers {
    name: "android.hardware.contexthub@1.X-shared-impl",
    vendor: true,
    export_include_dirs: ["host/hal_generic/common/"],
    cflags: ["-Wall", "-Werror"],
    shared_libs: [
        "libcutils",
        "liblog",
        "libhidlbase",
        "libutils",
        "android.hardware.contexthub@1.0",
    ],
    static_libs: ["chre_client"],
}

cc_library_shared {
    name: "android.hardware.contexthub@1.0-impl.generic",
    vendor: true,
    relative_install_path: "hw",
    srcs: [
        "host/hal_generic/V1_0/generic_context_hub_v1_0.cc",
        "host/hal_generic/common/hal_chre_socket_connection.cc",
        "host/hal_generic/common/permissions_util.cc",
    ],
    cflags: ["-Wall", "-Werror"],
    header_libs: [
        "android.hardware.contexthub@1.X-shared-impl",
        "android.hardware.contexthub@1.X-common-utils",
    ],
    shared_libs: [
        "libcutils",
        "liblog",
        "libhidlbase",
        "libutils",
        "android.hardware.contexthub@1.0",
        "android.hardware.contexthub@1.1",
        "android.hardware.contexthub@1.2",
    ],
    static_libs: ["chre_client"],
}

cc_binary {
    name: "android.hardware.contexthub@1.1-service.generic",
    defaults: ["hidl_defaults"],
    vendor: true,
    relative_install_path: "hw",
    srcs: [
        "host/hal_generic/V1_1/generic_context_hub_v1_1.cc",
        "host/hal_generic/V1_1/service.cc",
        "host/hal_generic/common/context_hub_settings_util.cc",
        "host/hal_generic/common/hal_chre_socket_connection.cc",
        "host/hal_generic/common/permissions_util.cc",
    ],
    init_rc: ["host/hal_generic/V1_1/android.hardware.contexthub@1.1-service-generic.rc"],
    cflags: ["-Wall", "-Werror"],
    header_libs: [
        "android.hardware.contexthub@1.X-shared-impl",
        "android.hardware.contexthub@1.X-common-utils",
    ],
    shared_libs: [
        "libcutils",
        "liblog",
        "libhidlbase",
        "libutils",
        "android.hardware.contexthub@1.0",
        "android.hardware.contexthub@1.1",
        "android.hardware.contexthub@1.2",
    ],
    static_libs: ["chre_client"],
    vintf_fragments: ["host/hal_generic/V1_1/android.hardware.contexthub@1.1-generic.xml"],
}

cc_binary {
    name: "android.hardware.contexthub@1.2-service.generic",
    defaults: ["hidl_defaults"],
    vendor: true,
    relative_install_path: "hw",
    srcs: [
        "host/hal_generic/V1_2/generic_context_hub_v1_2.cc",
        "host/hal_generic/V1_2/service.cc",
        "host/hal_generic/common/context_hub_settings_util.cc",
        "host/hal_generic/common/hal_chre_socket_connection.cc",
        "host/hal_generic/common/permissions_util.cc",
    ],
    init_rc: ["host/hal_generic/V1_2/android.hardware.contexthub@1.2-service-generic.rc"],
    cflags: ["-Wall", "-Werror"],
    header_libs: [
        "android.hardware.contexthub@1.X-shared-impl",
        "android.hardware.contexthub@1.X-common-utils",
    ],
    shared_libs: [
        "libcutils",
        "liblog",
        "libhidlbase",
        "libutils",
        "android.hardware.contexthub@1.0",
        "android.hardware.contexthub@1.1",
        "android.hardware.contexthub@1.2",
    ],
    static_libs: ["chre_client"],
    vintf_fragments: ["host/hal_generic/V1_2/android.hardware.contexthub@1.2-generic.xml"],
}

cc_library_static {
    name: "event_logger",
    vendor: true,
    host_supported: true,
    srcs: [
        "host/hal_generic/aidl/event_logger.cc",
    ],
    local_include_dirs: [
        "util/include",
        "host/common/include",
    ],
    shared_libs: [
        "android.hardware.contexthub-V1-ndk",
        "libcutils",
        "libutils",
    ],
    header_libs: [
        "chre_flatbuffers",
    ],
    cflags: [
        "-Wall",
        "-Werror",
        "-DCHRE_IS_HOST_BUILD",
    ],
}

cc_test_host {
    name: "hal_unit_tests",
    vendor: true,
    srcs: [
        "host/test/**/*_test.cc",
    ],
    local_include_dirs: [
        "util/include",
        "host/common/include",
    ],
    static_libs: [
        "android.hardware.contexthub-V1-ndk",
        "event_logger",
        "libgmock",
    ],
    shared_libs: [
        "libcutils",
        "libutils",
    ],
    header_libs: [
        "chre_flatbuffers",
    ],
    defaults: [
        "chre_linux_cflags",
    ],
    cflags: [
        "-Wall",
        "-Werror",
        "-DCHRE_IS_HOST_BUILD",
    ],
}

cc_binary {
    name: "android.hardware.contexthub-service.generic",
    defaults: ["hidl_defaults"],
    vendor: true,
    relative_install_path: "hw",
    srcs: [
        "host/hal_generic/aidl/generic_context_hub_aidl.cc",
        "host/hal_generic/aidl/service.cc",
        "host/hal_generic/common/hal_chre_socket_connection.cc",
        "host/hal_generic/common/permissions_util.cc",
    ],
    local_include_dirs: [
        "host/hal_generic/common/",
        "util/include",
    ],
    init_rc: ["host/hal_generic/aidl/android.hardware.contexthub-service.generic.rc"],
    cflags: [
        "-Wall",
        "-Werror",
        "-DCHRE_MESSAGE_TO_HOST_MAX_SIZE=4000", // Needed to import CHRE APIs.
        "-DCHRE_HAL_SOCKET_METRICS_ENABLED",
        "-DCHRE_IS_HOST_BUILD",
    ],
    shared_libs: [
        "android.frameworks.stats-V1-ndk",
        "libcutils",
        "liblog",
        "libprotobuf-cpp-lite",
        "libutils",
        "libbase",
        "libbinder_ndk",
        "android.hardware.contexthub-V1-ndk",
        "//hardware/google/pixel:pixelatoms-cpp",
    ],
    header_libs: [
        "chre_api",
    ],
    static_libs: [
        "chre_client",
        "event_logger",
    ],
    vintf_fragments: ["host/hal_generic/aidl/android.hardware.contexthub-service.generic.xml"],
}

cc_library_headers {
    name: "chre_api",
    vendor: true,
    export_include_dirs: [
        "chre_api/include/chre_api",
        "chre_api/include",
    ],
    host_supported: true,
}

cc_library_headers {
    name: "chre_flatbuffers",
    vendor: true,
    host_supported: true,
    export_include_dirs: [
        "external/flatbuffers/include",
    ],
}

cc_library_headers {
    name: "chre_pal",
    vendor: true,
    export_include_dirs: [
        "pal/include",
    ],
    header_libs: [
        "chre_api",
    ],
    export_header_lib_headers: [
        "chre_api",
    ],
    host_supported: true,
}

cc_library_headers {
    name: "chre_test_common",
    vendor: true,
    export_include_dirs: [
        "test/common/include",
    ],
    host_supported: true,
}

cc_library_static {
    name: "chre_pal_linux",
    vendor: true,
    srcs: [
        "platform/shared/pal_system_api.cc",
        "platform/linux/assert.cc",
        "platform/linux/fatal_error.cc",
        "platform/linux/memory.cc",
        "platform/linux/pal_gnss.cc",
        "platform/linux/pal_nan.cc",
        "platform/linux/pal_wifi.cc",
        "platform/linux/pal_wwan.cc",
        "platform/linux/platform_log.cc",
        "platform/linux/system_time.cc",
    ],
    export_include_dirs: [
        "platform/shared/include",
        "platform/include",
        "platform/linux/include",
        "util/include",
    ],
    header_libs: [
        "chre_pal",
    ],
    static_libs: [
        "libgtest",
        "libgmock",
    ],
    defaults: [
        "chre_linux_cflags",
    ],
    host_supported: true,
}

cc_test_host {
    name: "chre_unit_tests",
    srcs: [
        "core/tests/**/*.cc",
        "pal/tests/**/*_test.cc",
        "pal/util/tests/**/*.cc",
        "pal/util/wifi_pal_convert.c",
        "pal/util/wifi_scan_cache.c",
        "platform/tests/**/*.cc",
        "util/tests/**/*.cc",
    ],
    exclude_srcs: [
        // Exclude slow PAL tests.
        "pal/tests/src/gnss_pal_impl_test.cc",
    ],
    local_include_dirs: [
        "chre_api/include",
        "chre_api/include/chre_api",
        "core/include",
        "pal/include",
        "pal/tests/include",
        "pal/util/include",
        "platform/include",
        "platform/linux/include",
        "platform/shared/include",
        "util/include",
    ],
    cflags: [
        "-DCHRE_MESSAGE_TO_HOST_MAX_SIZE=4096",
        "-DCHRE_MINIMUM_LOG_LEVEL=CHRE_LOG_LEVEL_DEBUG",
        "-DCHRE_ASSERTIONS_ENABLED=true",
        "-DCHRE_FILENAME=__FILE__",
        "-DGTEST",
    ],
    static_libs: [
        "chre_linux",
        "libgmock",
    ],
    sanitize: {
        address: true,
    },
}

cc_test_host {
    name: "chre_simulation_tests",
    srcs: [
        "test/simulation/*.cc",
    ],
    local_include_dirs: [
        "test/simulation/inc",
        "platform/shared",
    ],
    static_libs: [
        "chre_linux",
        "chre_pal_linux",
    ],
    defaults: [
        "chre_linux_cflags",
    ],
    sanitize: {
        address: true,
    },
}

cc_library_static {
    name: "chre_linux",
    vendor: true,
    srcs: [
        "core/audio_request_manager.cc",
        "core/ble_request_manager.cc",
        "core/ble_request_multiplexer.cc",
        "core/ble_request.cc",
        "core/debug_dump_manager.cc",
        "core/event_loop_manager.cc",
        "core/event_loop.cc",
        "core/event_ref_queue.cc",
        "core/event.cc",
        "core/gnss_manager.cc",
        "core/host_comms_manager.cc",
        "core/host_notifications.cc",
        "core/init.cc",
        "core/nanoapp.cc",
        "core/sensor_request_manager.cc",
        "core/sensor_request_multiplexer.cc",
        "core/sensor_request.cc",
        "core/sensor_type_helpers.cc",
        "core/sensor_type.cc",
        "core/sensor.cc",
        "core/settings.cc",
        "core/timer_pool.cc",
        "core/wifi_request_manager.cc",
        "core/wifi_scan_request.cc",
        "platform/linux/assert.cc",
        "platform/linux/context.cc",
        "platform/linux/fatal_error.cc",
        "platform/linux/host_link.cc",
        "platform/linux/memory_manager.cc",
        "platform/linux/memory.cc",
        "platform/linux/pal_audio.cc",
        "platform/linux/pal_ble.cc",
        "platform/linux/pal_gnss.cc",
        "platform/linux/pal_nan.cc",
        "platform/linux/pal_sensor.cc",
        "platform/linux/pal_wifi.cc",
        "platform/linux/platform_debug_dump_manager.cc",
        "platform/linux/platform_log.cc",
        "platform/linux/platform_nanoapp.cc",
        "platform/linux/platform_pal.cc",
        "platform/linux/platform_sensor_type_helpers.cc",
        "platform/linux/platform_sensor.cc",
        "platform/linux/power_control_manager.cc",
        "platform/linux/system_time.cc",
        "platform/linux/system_timer.cc",
        "platform/linux/testing/platform_audio.cc",
        "platform/shared/chre_api_audio.cc",
        "platform/shared/chre_api_ble.cc",
        "platform/shared/chre_api_core.cc",
        "platform/shared/chre_api_gnss.cc",
        "platform/shared/chre_api_re.cc",
        "platform/shared/chre_api_sensor.cc",
        "platform/shared/chre_api_user_settings.cc",
        "platform/shared/chre_api_wifi.cc",
        "platform/shared/log_buffer.cc",
        "platform/shared/memory_manager.cc",
        "platform/shared/pal_system_api.cc",
        "platform/shared/platform_ble.cc",
        "platform/shared/platform_gnss.cc",
        "platform/shared/platform_sensor_manager.cc",
        "platform/shared/platform_wifi.cc",
        "platform/shared/system_time.cc",
        "platform/shared/version.cc",
        "util/**/*.cc",
    ],
    // TODO(b/217952682) Exclude pigweed because it can't be built via
    // Android.bp
    exclude_srcs: [
        "util/pigweed/*.cc",
        "util/tests/**/*",
    ],
    export_include_dirs: [
        "chre_api/include",
        "chre_api/include/chre_api",
        "core/include",
        "pal/include",
        "pal/util/include",
        "platform/linux/include",
        "platform/linux/testing/include",
        "platform/shared/include",
        "platform/include",
        "util/include",
    ],
    header_libs: [
        "chre_api",
    ],
    defaults: [
        "chre_linux_cflags",
    ],
    static_libs: [
        "libgtest",
        "libgmock",
    ],
    host_supported: true,
}

cc_defaults {
   name: "chre_linux_cflags",
   cflags: [
        "-DCHRE_MESSAGE_TO_HOST_MAX_SIZE=4096",
        "-DCHRE_MINIMUM_LOG_LEVEL=CHRE_LOG_LEVEL_DEBUG",
        "-DCHRE_ASSERTIONS_ENABLED=true",
        "-DCHRE_FILENAME=__FILE__",
        "-DGTEST",
        "-DCHRE_FIRST_SUPPORTED_API_VERSION=CHRE_API_VERSION_1_1",
        "-DCHRE_AUDIO_SUPPORT_ENABLED",
        "-DCHRE_BLE_SUPPORT_ENABLED",
        "-DCHRE_GNSS_SUPPORT_ENABLED",
        "-DCHRE_SENSORS_SUPPORT_ENABLED",
        "-DCHRE_WIFI_SUPPORT_ENABLED",
        "-DCHRE_WIFI_NAN_SUPPORT_ENABLED",
    ],
}

subdirs = [
    "apps/wifi_offload",
]
