/*
 * 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",
    ],
}

filegroup {
    name: "contexthub_generic_aidl_hal_core",
    srcs: [
        "host/common/preloaded_nanoapp_loader.cc",
        "host/common/time_syncer.cc",
        "host/common/config_util.cc",
        "host/common/log_message_parser.cc",
        "host/hal_generic/common/permissions_util.cc",
        "host/hal_generic/common/hal_client_manager.cc",
        "host/hal_generic/common/multi_client_context_hub_base.cc",
    ],
}

cc_library_static {
    name: "chre_client",
    vendor_available: true,
    export_include_dirs: [
        "host/common/include",
        "platform/shared/include",
        "util/include",
    ],
    srcs: [
        "host/common/file_stream.cc",
        "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"],
}

filegroup {
    name: "st_hal_lpma_handler",
    srcs: ["host/common/st_hal_lpma_handler.cc"],
}

cc_binary {
    name: "chre_aidl_hal_client",
    vendor: true,
    local_include_dirs: [
        "host/common/include",
        "chre_api/include",
    ],
    srcs: [
        "host/common/file_stream.cc",
        "host/common/chre_aidl_hal_client.cc",
    ],
    shared_libs: [
        "android.hardware.contexthub-V2-ndk",
        "libbase",
        "libbinder_ndk",
        "libjsoncpp",
        "liblog",
        "libutils",
    ],
    cflags: ["-Wall", "-Werror", "-fexceptions"],
}

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_library_static {
    name: "android.hardware.contexthub@1.1-common-impl",
    vendor: true,
    srcs: [
        "host/hal_generic/V1_1/generic_context_hub_v1_1.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",
    ],
    cflags: ["-Wall", "-Werror"],
    export_header_lib_headers: [
        "android.hardware.contexthub@1.X-shared-impl",
        "android.hardware.contexthub@1.X-common-utils",
    ],
    export_static_lib_headers: [
        "chre_client",
    ],
    export_include_dirs: ["host/hal_generic/V1_1/"],
    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/service.cc",
    ],
    init_rc: ["host/hal_generic/V1_1/android.hardware.contexthub@1.1-service-generic.rc"],
    cflags: ["-Wall", "-Werror"],
    shared_libs: [
        "libcutils",
        "liblog",
        "libhidlbase",
        "libutils",
        "android.hardware.contexthub@1.0",
        "android.hardware.contexthub@1.1",
        "android.hardware.contexthub@1.2",
    ],
    static_libs: [
        "android.hardware.contexthub@1.1-common-impl",
        "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-V2-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-V2-ndk",
        "event_logger",
        "libgmock",
    ],
    shared_libs: [
        "libcutils",
        "libutils",
    ],
    header_libs: [
        "chre_flatbuffers",
    ],
    defaults: [
        "chre_linux_cflags",
    ],
    cflags: [
        "-Wall",
        "-Werror",
        "-DCHRE_IS_HOST_BUILD",
    ],
}

genrule {
    name: "chre_atoms_log.h",
    tools: ["stats-log-api-gen"],
    cmd: "$(location stats-log-api-gen) --header $(genDir)/chre_atoms_log.h --module chre --namespace android,chre,Atoms --vendor-proto hardware/google/pixel/pixelstats/pixelatoms.proto",
    out: [
        "chre_atoms_log.h",
    ],
}

cc_library {
    name: "chre_atoms_log",
    vendor: true,
    generated_headers: ["chre_atoms_log.h"],
    export_generated_headers: ["chre_atoms_log.h"],
}

cc_library {
    name: "chremetrics-cpp",
    vendor: true,
    proto: {
        type: "lite",
        export_proto_headers: true,
    },
    srcs: [
        "core/chre_metrics.proto",
    ],
}

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_available: 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",
        "platform/linux/task_util/task.cc",
        "platform/linux/task_util/task_manager.cc",
        "util/dynamic_vector_base.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",
    isolated: true,
    test_suites: ["general-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",
        "platform/linux/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,
    },
}

// pw_rpc rules instantiation

cc_defaults {
    name: "pw_rpc_cflags_chre",
    cflags: [
        "-DPW_RPC_USE_GLOBAL_MUTEX=0",
        "-DPW_RPC_CLIENT_STREAM_END_CALLBACK",
        "-DPW_RPC_DYNAMIC_ALLOCATION",
    ],
}

cc_library_static {
    name: "pw_rpc_chre",
    defaults: [
        "pw_rpc_cflags_chre",
        "pw_rpc_defaults",
    ],
}

cc_library_static {
    name: "pw_rpc_nanopb_chre",
    defaults: [
        "pw_rpc_cflags_chre",
        "pw_rpc_nanopb_defaults",
    ],
    static_libs: [
        "pw_rpc_raw_chre",
        "pw_rpc_chre",
    ],
    export_static_lib_headers: [
        "pw_rpc_raw_chre",
        "pw_rpc_chre",
    ],
}

cc_library_static {
    name: "pw_rpc_raw_chre",
    defaults: [
        "pw_rpc_cflags_chre",
        "pw_rpc_raw_defaults",
    ],
    static_libs: [
        "pw_rpc_chre",
    ],
}

genrule {
    name: "rpc_test_proto_header",
    defaults: [
        "pw_rpc_generate_nanopb_proto",
    ],
    srcs: ["test/simulation/rpc/rpc_test.proto"],
    out: [
        "rpc_test.pb.h",
    ],
}

genrule {
    name: "rpc_test_proto_source",
    defaults: [
        "pw_rpc_generate_nanopb_proto",
    ],
    srcs: ["test/simulation/rpc/rpc_test.proto"],
    out: [
        "rpc_test.pb.c",
    ],

}

genrule {
    name: "rpc_test_rpc_header",
    defaults: [
        "pw_rpc_generate_nanopb_rpc_header",
    ],
    srcs: ["test/simulation/rpc/rpc_test.proto"],
    out: [
        "rpc_test.rpc.pb.h",
    ],
}

cc_test_host {
    name: "chre_simulation_tests",
    // TODO(b/232537107): Evaluate if isolated can be turned on
    isolated: false,
    test_suites: ["general-tests"],
    srcs: [
        "test/simulation/*.cc",
    ],
    generated_sources: [
        "rpc_test_proto_source",
    ],
    generated_headers: [
        "rpc_test_proto_header",
        "rpc_test_rpc_header",
    ],
    local_include_dirs: [
        "test/simulation/inc",
        "platform/shared",
    ],
    static_libs: [
        "chre_linux",
        "chre_pal_linux",
        "libprotobuf-c-nano",
        "pw_containers",
        "pw_protobuf",
        "pw_rpc_nanopb_chre",
        "pw_rpc_chre",
        "pw_stream",
        "pw_varint",
    ],
    defaults: [
        "chre_linux_cflags",
        "pw_rpc_cflags_chre",
    ],
    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_endpoint_manager.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/system_health_monitor.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/power_control_manager.cc",
        "platform/linux/system_time.cc",
        "platform/linux/system_timer.cc",
        "platform/linux/task_util/task.cc",
        "platform/linux/task_util/task_manager.cc",
        "platform/shared/audio_pal/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_wifi.cc",
        "platform/shared/system_time.cc",
        "platform/shared/tracing.cc",
        "platform/shared/version.cc",
        "platform/shared/sensor_pal/platform_sensor.cc",
        "platform/shared/sensor_pal/platform_sensor_type_helpers.cc",
        "platform/shared/sensor_pal/platform_sensor_manager.cc",
        "util/**/*.cc",
    ],
    exclude_srcs: [
        "util/tests/**/*",
    ],
    export_include_dirs: [
        "chre_api/include",
        "chre_api/include/chre_api",
        "core/include",
        "pal/include",
        "pal/util/include",
        "platform/shared/audio_pal/include",
        "platform/linux/include",
        "platform/shared/include",
        "platform/shared/sensor_pal/include",
        "platform/include",
        "util/include",
    ],
    header_libs: [
        "chre_api",
    ],
    defaults: [
        "chre_linux_cflags",
        "pw_rpc_cflags_chre",
    ],
    static_libs: [
        "libgtest",
        "libgmock",
        "pw_rpc_chre",
    ],
    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",
        "-DCHRE_TEST_WIFI_SCAN_RESULT_TIMEOUT_NS=3000000000",
        "-DCHRE_TEST_WIFI_RANGING_RESULT_TIMEOUT_NS=3000000000",
        "-DCHRE_TEST_ASYNC_RESULT_TIMEOUT_NS=3000000000",
        "-DCHRE_BLE_READ_RSSI_SUPPORT_ENABLED",
    ],
}

subdirs = [
    "apps/wifi_offload",
]

cc_defaults {
    name: "chre_daemon_common",
    local_include_dirs: [
        "external/flatbuffers/include",
        "host/common/include",
        "platform/shared/include",
        "util/include",
    ],
    srcs: [
        "host/common/daemon_base.cc",
        "host/common/fbs_daemon_base.cc",
        "host/common/file_stream.cc",
        "host/common/fragmented_load_transaction.cc",
        "host/common/host_protocol_host.cc",
        "host/common/log_message_parser.cc",
        "host/common/socket_server.cc",
        "host/common/st_hal_lpma_handler.cc",
        "platform/shared/host_protocol_common.cc",
    ],
    shared_libs: [
        "libbase",
        "libbinder_ndk",
        "libcutils",
        "libjsoncpp",
        "libutils",
        "liblog",
    ],
    static_libs: [
        "chre_config_util",
    ]
}

cc_library_static {
    name: "chre_config_util",
    vendor: true,
    host_supported: true,
    export_include_dirs: [
        "host/common/include",
    ],
    srcs: [
        "host/common/config_util.cc",
    ],
    shared_libs: [
        "libjsoncpp",
        "liblog",
    ]
}

cc_binary {
    name: "chre_daemon_exynos",
    cpp_std: "c++20",
    defaults: ["chre_daemon_common"],
    soc_specific: true,
    local_include_dirs: [
        "host/exynos",
    ],
    cflags: [ "-DCHRE_LPMA_REQUEST_START_RECOGNITION" ],
    srcs: [
        "host/exynos/exynos_daemon.cc",
        "host/exynos/main.cc",
    ],
    static_libs: [
        "pw_detokenizer",
        "pw_varint",
    ],
    shared_libs: [
        "libhidlbase",
        "libpower",
        "android.hardware.soundtrigger@2.0",
    ],
    header_libs: [
        "pw_span_headers",
        "pw_polyfill_headers",
    ],
    init_rc: ["host/exynos/chre_daemon_exynos.rc"],
}

java_library_static {
    name: "chre_api_test_proto_java_lite",
    host_supported: true,
    proto: {
        type: "lite",
    },
    srcs: ["apps/test/common/chre_api_test/rpc/chre_api_test.proto"],
    sdk_version: "current",
}

cc_library_static {
    name: "chre_host_util",
    vendor_available: true,
    host_supported: true,
    export_include_dirs: [
        "host/common/include",
    ],
    srcs: [
        "host/common/file_stream.cc",
    ],
    shared_libs:[
        "liblog",
    ],
    cflags: ["-Wall", "-Werror"]
}
