blob: 7f67f6f1e5252afd6dba9dfc09786e538b8322f6 [file] [log] [blame]
/*
* 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_COMPLETION_REQUEST_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/test_base.cc",
"test/simulation/test_util.cc",
"test/simulation/*_test.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",
include_dirs: ["external/protobuf/src"],
},
srcs: [
"apps/test/common/chre_api_test/rpc/chre_api_test.proto",
":libprotobuf-internal-protos",
],
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"]
}