// 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 { // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "hardware_libhardware_license" // to get the below license kinds: // SPDX-license-identifier-Apache-2.0 default_applicable_licenses: ["hardware_libhardware_license"], } cc_defaults { name: "dynamic_sensor_defaults", // intended to be integrated into hal, thus vendor vendor: true, cflags: [ "-Wall", "-Werror", "-Wextra", ], export_include_dirs: ["."], shared_libs: [ "libbase", "libhidparser", "server_configurable_flags", "libaconfig_storage_read_api_cc", ], static_libs: [ "dynamic_sensors_flags_c_lib", ], cpp_std: "c++20", target: { android: { srcs: [ "BaseDynamicSensorDaemon.cpp", "BaseSensorObject.cpp", "ConnectionDetector.cpp", "DummyDynamicAccelDaemon.cpp", "DynamicSensorManager.cpp", "HidRawDevice.cpp", "HidRawSensor.cpp", "HidRawSensorDaemon.cpp", "HidRawSensorDevice.cpp", "RingBuffer.cpp", ], shared_libs: [ "libcutils", "liblog", "libutils", ], header_libs: [ "libbase_headers", "libhardware_headers", "libstagefright_foundation_headers", ], }, host: { local_include_dirs: [ "test", "HidUtils/test", ], }, // host test is targeting linux host only darwin: { enabled: false, }, }, } // // There are two ways to utilize the dynamic sensor module: // 1. Use as an extension in an existing hal: declare dependency on libdynamic_sensor_ext shared // library in existing sensor hal. // 2. Use as a standalone sensor HAL and configure multihal to combine it with sensor hal that // hosts other sensors: add dependency on sensors.dynamic_sensor_hal in device level makefile and // write multihal configuration file accordingly. // // Please take only one of these two options to avoid conflict over hardware resource. // // // Option 1: sensor extension module // cc_library_shared { name: "libdynamic_sensor_ext", defaults: ["dynamic_sensor_defaults"], cflags: ["-DLOG_TAG=\"DynamicSensorExt\""], } // // Option 2: independent sensor hal // cc_library_shared { name: "sensors.dynamic_sensor_hal", defaults: ["dynamic_sensor_defaults"], relative_install_path: "hw", cflags: ["-DLOG_TAG=\"DynamicSensorHal\""], srcs: [ "DynamicSensorsSubHal.cpp", "sensors.cpp", ], shared_libs: [ "android.hardware.sensors@2.0", "android.hardware.sensors@2.0-ScopedWakelock", "android.hardware.sensors@2.1", "libhidlbase", ], static_libs: [ "android.hardware.sensors@1.0-convert", ], header_libs: [ "android.hardware.sensors@2.X-multihal.header", "android.hardware.sensors@2.X-shared-utils", ], } // // Host test for HidRawSensor. Test with dummy test HID descriptors. // cc_binary_host { name: "hidrawsensor_host_test", defaults: ["dynamic_sensor_defaults"], srcs: [ "HidRawSensor.cpp", "BaseSensorObject.cpp", "HidUtils/test/TestHidDescriptor.cpp", "test/HidRawSensorTest.cpp", ], } // // Host test for HidRawDevice and HidRawSensor. Test with hidraw // device node. // cc_binary_host { name: "hidrawdevice_host_test", defaults: ["dynamic_sensor_defaults"], srcs: [ "HidRawDevice.cpp", "HidRawSensor.cpp", "BaseSensorObject.cpp", "test/HidRawDeviceTest.cpp", ], } // // Android device test for HidRawDevice and HidRawSensor // // Assuming lunch target 1 // $ cd test // $ mma -j . // $ adb push $ANDROID_BUILD_TOP/out/target/product/generic/vendor/bin/hidrawdevice_test /vendor/bin // $ adb shell hidrawdevice_test /dev/hidraw0 // cc_binary { name: "hidrawdevice_test", defaults: ["dynamic_sensor_defaults"], srcs: [ "test/HidRawDeviceTest.cpp", ], cflags: ["-DLOG_TO_CONSOLE=1"], local_include_dirs: [ "test", "HidUtils/test", ], } aconfig_declarations { name: "dynamic_sensors_flags", package: "com.android.libhardware.dynamic.sensors.flags", container: "system", srcs: ["dynamic_sensors.aconfig"], } cc_aconfig_library { name: "dynamic_sensors_flags_c_lib", aconfig_declarations: "dynamic_sensors_flags", host_supported: true, vendor: true, }