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