| package { |
| // See: http://go/android-license-faq |
| // A large-scale-change added 'default_applicable_licenses' to import |
| // all of the 'license_kinds' from "system_bt_license" |
| // to get the below license kinds: |
| // SPDX-license-identifier-Apache-2.0 |
| // SPDX-license-identifier-BSD |
| default_applicable_licenses: ["system_bt_license"], |
| } |
| |
| cc_defaults { |
| name: "gd_defaults", |
| defaults: [ |
| "bluetooth_cflags", |
| ], |
| tidy_checks: [ |
| "-performance-unnecessary-value-param", |
| ], |
| target: { |
| android: { |
| test_config_template: "AndroidTestTemplate.xml", |
| shared_libs: [ |
| "liblog", |
| ], |
| sanitize: { |
| misc_undefined: ["bounds"], |
| }, |
| }, |
| darwin: { |
| enabled: false, |
| }, |
| }, |
| cflags: [ |
| "-DEXPORT_SYMBOL=__attribute__((visibility(\"default\")))", |
| "-DGOOGLE_PROTOBUF_NO_RTTI", |
| "-DLOG_NDEBUG=0", |
| "-Wno-unused-result", |
| "-fvisibility=hidden", |
| ], |
| header_libs: ["jni_headers"], |
| } |
| |
| cc_defaults { |
| name: "gd_clang_tidy", |
| tidy: true, |
| tidy_checks: [ |
| "-bugprone*", |
| "-cert-dcl21-cpp", // warning: overloaded returns a non-constant object instead of a constant object type |
| "-cert-dcl59-cpp", // warning: do not use unnamed namespaces in header files |
| "-cert-msc30-c", // warning: rand() has limited randomness; use C++11 random library instead |
| "-cert-msc50-cpp", // warning: rand() has limited randomness; use C++11 random library instead |
| "-cert-oop54-cpp", // warning: operator=() does not handle self-assignment properly |
| "-google*", |
| "-performance*", |
| "clang-analyzer-core.CallAndMessage", |
| "clang-analyzer-optin.cplusplus.UninitializedObject", |
| ], |
| tidy_checks_as_errors: [ |
| "clang-analyzer-core.CallAndMessage", |
| "clang-analyzer-optin.cplusplus.UninitializedObject", |
| "cppcoreguidelines-pro-type-member-init", |
| ], |
| tidy_flags: [ |
| "--header-filter=^.*packages/modules/Bluetooth/system/.*.h$", |
| |
| "--extra-arg-before=-Xclang", |
| "--extra-arg-before=-analyzer-config", |
| |
| "--extra-arg-before=-Xclang", |
| "--extra-arg-before=optin.cplusplus.UninitializedObject:Pedantic=true", |
| |
| "--extra-arg-before=-Xclang", |
| "--extra-arg-before=-analyzer-config", |
| |
| "--extra-arg-before=-Xclang", |
| "--extra-arg-before=optin.cplusplus.UninitializedObject:CheckPointeeInitialization=true", |
| |
| ], |
| } |
| |
| // Clang is targeted for android core libraries but other base libraries |
| // may not support clang tidy recommendations (e.g. MacOS) |
| cc_defaults { |
| name: "gd_clang_tidy_ignore_android", |
| tidy: true, |
| tidy_checks: [ |
| "-android-cloexec-accept", // warning: prefer accept4() to accept() because accept4() allows SOCK_CLOEXEC |
| "-android-cloexec-pipe2", // warning: 'pipe2' should use O_CLOEXEC where possible |
| "-android-cloexec-socket", // warning: 'pipe2' should use O_CLOEXEC where possible |
| ], |
| } |
| |
| cc_defaults { |
| name: "libbluetooth_gd_defaults", |
| defaults: [ |
| "gd_defaults", |
| ], |
| host_supported: true, |
| target: { |
| linux: { |
| srcs: [ |
| ":BluetoothOsSources_linux_generic", |
| ], |
| }, |
| host: { |
| srcs: [ |
| ":BluetoothHalSources_hci_host", |
| ":BluetoothOsSources_host", |
| ], |
| }, |
| android: { |
| srcs: [ |
| ":BluetoothHalSources_hci_android_hidl", |
| ":BluetoothOsSources_android", |
| ], |
| shared_libs: [ |
| "android.hardware.bluetooth@1.0", |
| "android.hardware.bluetooth@1.1", |
| "android.system.suspend-V1-ndk", |
| "android.system.suspend.control-V1-ndk", |
| "libbinder_ndk", |
| "libcutils", |
| "libhidlbase", |
| "libstatslog_bt", |
| "libutils", |
| ], |
| whole_static_libs: [ |
| "android.hardware.bluetooth-V1-ndk", |
| ], |
| }, |
| }, |
| srcs: [ |
| ":BluetoothAttSources", |
| ":BluetoothCommonSources", |
| ":BluetoothDumpsysSources", |
| ":BluetoothHalSources", |
| ":BluetoothHciSources", |
| ":BluetoothIsoSources", |
| ":BluetoothL2capSources", |
| ":BluetoothLogRedactionSources", |
| ":BluetoothMetricsSources", |
| ":BluetoothNeighborSources", |
| ":BluetoothOsSources", |
| ":BluetoothPacketSources", |
| ":BluetoothSecuritySources", |
| ":BluetoothShimSources", |
| ":BluetoothStorageSources", |
| ":BluetoothSyspropsSources", |
| "module.cc", |
| "module_dumper.cc", |
| "module_state_dumper.cc", |
| "stack_manager.cc", |
| ], |
| generated_headers: [ |
| "BluetoothGeneratedBundlerSchema_h_bfbs", |
| "BluetoothGeneratedDumpsysDataSchema_h", |
| ], |
| shared_libs: [ |
| "libcrypto", |
| "libflatbuffers-cpp", |
| "liblog", |
| ], |
| export_shared_lib_headers: [ |
| "libflatbuffers-cpp", |
| ], |
| whole_static_libs: [ |
| "bluetooth_flags_c_lib", |
| "libbluetooth_hci_pdl", |
| "libbluetooth_l2cap_pdl", |
| "libbluetooth_smp_pdl", |
| "libc++fs", |
| ], |
| static_libs: [ |
| "libbase", |
| "libbluetooth-dumpsys", |
| "libbluetooth-protos", |
| "libbluetooth-types", |
| "libbluetooth_crypto_toolbox", |
| "libbluetooth_log", |
| "libbluetooth_rust_interop", |
| "libbt-platform-protos-lite", |
| "libbt_shim_bridge", |
| "libbt_shim_ffi", |
| "libcom.android.sysprop.bluetooth.wrapped", |
| "libosi", |
| "server_configurable_flags", |
| ], |
| include_dirs: [ |
| "packages/modules/Bluetooth/system/include", |
| "packages/modules/Bluetooth/system/types", |
| ], |
| export_static_lib_headers: ["libbluetooth_rust_interop"], |
| } |
| |
| cc_library { |
| name: "libbluetooth_gd", |
| defaults: [ |
| "libbluetooth_gd_defaults", |
| ], |
| include_dirs: [ |
| "packages/modules/Bluetooth/system", |
| ], |
| apex_available: [ |
| "com.android.btservices", |
| ], |
| min_sdk_version: "31", |
| static_libs: ["libchrome"], |
| } |
| |
| cc_library_static { |
| name: "libbluetooth-gdx", |
| defaults: [ |
| "libbluetooth_gd_defaults", |
| ], |
| srcs: [ |
| ":BluetoothDiscoverySources", |
| ], |
| include_dirs: [ |
| "packages/modules/Bluetooth/system", |
| ], |
| apex_available: [ |
| "com.android.btservices", |
| ], |
| min_sdk_version: "31", |
| static_libs: ["libchrome"], |
| } |
| |
| cc_library { |
| name: "libbluetooth_gd_fuzzing", |
| defaults: [ |
| "libbluetooth_gd_defaults", |
| ], |
| include_dirs: [ |
| "packages/modules/Bluetooth/system", |
| ], |
| srcs: [ |
| ":BluetoothOsSources_fake_timer", |
| ], |
| cflags: [ |
| "-DFUZZ_TARGET", |
| "-DUSE_FAKE_TIMERS", |
| "-Wno-unused-parameter", |
| ], |
| static_libs: [ |
| "libbluetooth-types", |
| "libchrome", |
| "libosi", |
| ], |
| } |
| |
| cc_library { |
| name: "libbluetooth_gd_unit_tests", |
| defaults: [ |
| "libbluetooth_gd_defaults", |
| ], |
| include_dirs: [ |
| "packages/modules/Bluetooth/system", |
| ], |
| srcs: [ |
| ":BluetoothOsSources_fake_timer", |
| ], |
| cflags: [ |
| "-DUSE_FAKE_TIMERS", |
| ], |
| static_libs: [ |
| "libbluetooth-types", |
| "libchrome", |
| "libosi", |
| ], |
| } |
| |
| cc_binary { |
| name: "bluetooth_stack_with_facade", |
| defaults: [ |
| "gd_defaults", |
| ], |
| include_dirs: [ |
| "packages/modules/Bluetooth/system", |
| "packages/modules/Bluetooth/system/include", |
| "packages/modules/Bluetooth/system/types", |
| ], |
| host_supported: true, |
| srcs: [ |
| ":BluetoothFacade_hci_hal", |
| ":BluetoothFacade_hci_layer", |
| ":BluetoothFacade_iso_layer", |
| ":BluetoothFacade_l2cap_layer", |
| ":BluetoothFacade_neighbor", |
| ":BluetoothFacade_security_layer", |
| ":BluetoothFacade_shim_layer", |
| "facade/facade_main.cc", |
| "facade/grpc_root_server.cc", |
| "facade/read_only_property_server.cc", |
| "grpc/grpc_module.cc", |
| ], |
| generated_headers: [ |
| "BlueberryFacadeGeneratedStub_h", |
| "BluetoothGeneratedBundlerSchema_h_bfbs", |
| "BluetoothGeneratedDumpsysDataSchema_h", |
| // Needed here to guarantee that generated zip file is created before |
| // bluetooth_cert_tests.zip is packaged |
| "BlueberryFacadeAndCertGeneratedStub_py", |
| ], |
| generated_sources: [ |
| "BlueberryFacadeGeneratedStub_cc", |
| ], |
| static_libs: [ |
| "breakpad_client", |
| "libbluetooth-dumpsys", |
| "libbluetooth-protos", |
| "libbluetooth-types", |
| "libbluetooth_crypto_toolbox", |
| "libbluetooth_gd", |
| "libbluetooth_hci_pdl", |
| "libbluetooth_l2cap_pdl", |
| "libbluetooth_log", |
| "libbluetooth_rust_interop", |
| "libbluetooth_smp_pdl", |
| "libbt_shim_bridge", |
| "libbt_shim_ffi", |
| "libchrome", |
| "libcom.android.sysprop.bluetooth.wrapped", |
| "libflatbuffers-cpp", |
| "libosi", |
| ], |
| shared_libs: [ |
| "libPlatformProperties", |
| "libcrypto", |
| "libgrpc++", |
| "libgrpc_wrap", |
| "libprotobuf-cpp-full", |
| "libunwindstack", |
| "server_configurable_flags", |
| ], |
| target: { |
| android: { |
| shared_libs: [ |
| "android.hardware.bluetooth@1.0", |
| "android.hardware.bluetooth@1.1", |
| "libbinder_ndk", |
| "libcutils", |
| "libhidlbase", |
| "libstatslog_bt", |
| "libutils", |
| ], |
| static_libs: [ |
| "android.system.suspend-V1-ndk", |
| "android.system.suspend.control-V1-ndk", |
| ], |
| }, |
| host: { |
| required: [ |
| "root-canal", |
| ], |
| }, |
| }, |
| sanitize: { |
| address: true, |
| cfi: true, |
| }, |
| } |
| |
| cc_test { |
| name: "bluetooth_test_gd_unit", |
| test_suites: ["general-tests"], |
| defaults: [ |
| "gd_defaults", |
| "mts_defaults", |
| ], |
| include_dirs: [ |
| "packages/modules/Bluetooth/system", |
| "packages/modules/Bluetooth/system/include", |
| "packages/modules/Bluetooth/system/types", |
| ], |
| host_supported: true, |
| // TODO(b/231993739): Reenable isolated:true by deleting the explicit disable below |
| isolated: false, |
| target: { |
| linux: { |
| srcs: [ |
| ":BluetoothOsTestSources_linux_generic", |
| ], |
| }, |
| host: { |
| srcs: [ |
| ":BluetoothHalTestSources_hci_host", |
| ":BluetoothHostTestingLogCapture", |
| ":BluetoothHostTestingLogCaptureTest", |
| ":BluetoothOsTestSources_host", |
| ], |
| }, |
| android: { |
| srcs: [ |
| ":BluetoothAndroidTestingLogCapture", |
| ":BluetoothAndroidTestingLogCaptureTest", |
| ":BluetoothHalTestSources_hci_android_hidl", |
| ":BluetoothOsTestSources_android", |
| ], |
| static_libs: [ |
| "android.hardware.bluetooth@1.0", |
| "android.hardware.bluetooth@1.1", |
| "android.system.suspend-V1-ndk", |
| "android.system.suspend.control-V1-ndk", |
| "libstatslog_bt", |
| ], |
| shared_libs: [ |
| "libbinder_ndk", |
| "libcutils", |
| "libhidlbase", |
| "libstatssocket", |
| "libutils", |
| ], |
| }, |
| }, |
| srcs: [ |
| ":BluetoothCommonTestSources", |
| ":BluetoothCryptoToolboxTestSources", |
| ":BluetoothDumpsysTestSources", |
| ":BluetoothHalTestSources", |
| ":BluetoothHciUnitTestSources", |
| ":BluetoothL2capUnitTestSources", |
| ":BluetoothMetricsTestSources", |
| ":BluetoothOsTestSources", |
| ":BluetoothPacketTestSources", |
| ":BluetoothSecurityUnitTestSources", |
| ":BluetoothShimTestSources", |
| ":BluetoothStorageUnitTestSources", |
| "module_unittest.cc", |
| "stack_manager_unittest.cc", |
| ], |
| generated_headers: [ |
| "BluetoothGeneratedBundlerSchema_h_bfbs", |
| "BluetoothGeneratedDumpsysDataSchema_h", |
| "BluetoothGeneratedDumpsysInternalTestData_h", |
| "BluetoothGeneratedDumpsysTestData_h", |
| ], |
| static_libs: [ |
| "libbluetooth-dumpsys", |
| "libbluetooth-dumpsys-test", |
| "libbluetooth-dumpsys-unittest", |
| "libbluetooth-protos", |
| "libbluetooth-types", |
| "libbluetooth_crypto_toolbox", |
| "libbluetooth_gd_unit_tests", |
| "libbluetooth_hci_pdl", |
| "libbluetooth_l2cap_pdl", |
| "libbluetooth_log", |
| "libbluetooth_rust_interop", |
| "libbluetooth_smp_pdl", |
| "libbt-platform-protos-lite", |
| "libbt_shim_bridge", |
| "libbt_shim_ffi", |
| "libc++fs", |
| "libchrome", |
| "libcom.android.sysprop.bluetooth.wrapped", |
| "libflagtest", |
| "libflatbuffers-cpp", |
| "libgmock", |
| "libosi", |
| ], |
| shared_libs: [ |
| "libPlatformProperties", |
| "libbase", |
| "libcrypto", |
| "server_configurable_flags", |
| ], |
| sanitize: { |
| address: true, |
| }, |
| min_sdk_version: "Tiramisu", |
| } |
| |
| cc_test { |
| name: "bluetooth_test_gdx_unit", |
| test_suites: ["device-tests"], |
| defaults: [ |
| "gd_defaults", |
| "mts_defaults", |
| ], |
| include_dirs: [ |
| "packages/modules/Bluetooth/system", |
| "packages/modules/Bluetooth/system/include", |
| "packages/modules/Bluetooth/system/stack/include", |
| "packages/modules/Bluetooth/system/types", |
| ], |
| host_supported: true, |
| srcs: [ |
| ":BluetoothDiscoveryTestSources", |
| ":TestCommonMockFunctions", |
| "module_gdx_unittest.cc", |
| "module_jniloop_unittest.cc", |
| "module_mainloop_unittest.cc", |
| "module_state_dumper_unittest.cc", |
| ], |
| generated_headers: [ |
| "BluetoothGeneratedBundlerSchema_h_bfbs", |
| "BluetoothGeneratedDumpsysDataSchema_h", |
| "BluetoothGeneratedDumpsysInternalTestData_h", |
| "BluetoothGeneratedDumpsysTestData_h", |
| ], |
| static_libs: [ |
| "libbase", |
| "libbluetooth-gdx", |
| "libbluetooth-types", |
| "libbluetooth_gd", |
| "libbluetooth_log", |
| "libbt-btu-main-thread", |
| "libbt-common", |
| "libbt-jni-thread", |
| "libbt_shim_bridge", |
| "libbt_shim_ffi", |
| "libchrome", |
| "libevent", |
| "libflatbuffers-cpp", |
| "libgmock", |
| "liblog", |
| "libosi", |
| ], |
| shared_libs: [ |
| "libcrypto", |
| ], |
| sanitize: { |
| address: true, |
| }, |
| min_sdk_version: "Tiramisu", |
| } |
| |
| cc_test { |
| name: "bluetooth_packet_parser_test", |
| test_suites: ["general-tests"], |
| defaults: [ |
| "gd_defaults", |
| "mts_defaults", |
| ], |
| include_dirs: ["packages/modules/Bluetooth/system/gd"], |
| host_supported: true, |
| test_options: { |
| unit_test: true, |
| }, |
| srcs: [ |
| ":BluetoothPacketParserTestPacketTestSources", |
| ":BluetoothPacketSources", |
| ], |
| generated_headers: [ |
| "BluetoothPacketParserTestPacketPdlGen_h", |
| ], |
| sanitize: { |
| address: true, |
| cfi: true, |
| }, |
| static_libs: [ |
| "libbluetooth_log", |
| "libbluetooth_rust_interop", |
| "libbt_shim_bridge", |
| "libbt_shim_ffi", |
| ], |
| target: { |
| android: { |
| shared_libs: [ |
| "libcutils", |
| "libhidlbase", |
| "libutils", |
| ], |
| }, |
| host_linux: { |
| shared_libs: [ |
| "libcutils", |
| "libhidlbase", |
| "libutils", |
| ], |
| }, |
| }, |
| min_sdk_version: "30", |
| } |
| |
| cc_defaults { |
| name: "gd_fuzz_defaults", |
| defaults: ["gd_defaults"], |
| srcs: [ |
| ":BluetoothFuzzHelperSources", |
| ":BluetoothHciFuzzHelperSources", |
| ], |
| static_libs: [ |
| "libbluetooth-protos", |
| "libbluetooth-types", |
| "libbluetooth_crypto_toolbox", |
| "libbluetooth_gd_fuzzing", |
| "libbluetooth_log", |
| "libbluetooth_rust_interop", |
| "libbt_shim_bridge", |
| "libbt_shim_ffi", |
| "libchrome", |
| "libcom.android.sysprop.bluetooth.wrapped", |
| "libgmock", |
| "libgtest", |
| "libosi", |
| ], |
| host_supported: true, |
| generated_headers: [ |
| "BluetoothGeneratedDumpsysDataSchema_h", |
| ], |
| shared_libs: [ |
| "libPlatformProperties", |
| "libbase", |
| "libcrypto", |
| "libgrpc++", |
| "libgrpc_wrap", |
| "server_configurable_flags", |
| ], |
| cflags: [ |
| "-DFUZZ_TARGET", |
| "-DUSE_FAKE_TIMERS", |
| ], |
| target: { |
| android: { |
| shared_libs: [ |
| "android.hardware.bluetooth@1.0", |
| "android.hardware.bluetooth@1.1", |
| "android.system.suspend.control-V1-ndk", |
| "libbinder_ndk", |
| "libcutils", |
| "libhidlbase", |
| "libstatslog_bt", |
| "libutils", |
| ], |
| }, |
| }, |
| } |
| |
| cc_fuzz { |
| name: "bluetooth_gd_fuzz_test", |
| defaults: ["gd_fuzz_defaults"], |
| srcs: [ |
| ":BluetoothHciFuzzTestSources", |
| ":BluetoothL2capFuzzTestSources", |
| "fuzz_test.cc", |
| ], |
| fuzz_config: { |
| cc: ["android-bluetooth-security@google.com"], |
| componentid: 27441, |
| }, |
| cflags: ["-Wno-unused-parameter"], |
| } |
| |
| cc_fuzz { |
| name: "bluetooth_gd_hci_layer_fuzz_test", |
| defaults: ["gd_fuzz_defaults"], |
| srcs: [ |
| ":BluetoothHalFuzzSources", |
| "hci/fuzz/hci_layer_fuzz_test.cc", |
| ], |
| cflags: ["-Wno-unused-parameter"], |
| } |
| |
| cc_fuzz { |
| name: "bluetooth_gd_acl_manager_fuzz_test", |
| defaults: ["gd_fuzz_defaults"], |
| srcs: [ |
| "hci/fuzz/acl_manager_fuzz_test.cc", |
| ], |
| fuzz_config: { |
| cc: ["android-bluetooth-security@google.com"], |
| componentid: 27441, |
| }, |
| cflags: ["-Wno-unused-parameter"], |
| } |
| |
| cc_benchmark { |
| name: "bluetooth_benchmark_gd", |
| defaults: [ |
| "gd_defaults", |
| ], |
| host_supported: true, |
| srcs: [ |
| ":BluetoothOsBenchmarkSources", |
| "benchmark.cc", |
| ], |
| static_libs: [ |
| "libbluetooth_gd", |
| "libbt_shim_bridge", |
| "libchrome", |
| ], |
| } |
| |
| rust_library { |
| name: "libbt_packets", |
| defaults: ["gd_rust_defaults"], |
| crate_name: "bt_packets", |
| srcs: [ |
| "rust/packets/lib.rs", |
| |
| ":BluetoothGeneratedPackets_rust", |
| ], |
| edition: "2018", |
| vendor_available: true, |
| host_supported: true, |
| proc_macros: ["libnum_derive"], |
| rustlibs: [ |
| "libbytes", |
| "liblog_rust", |
| "libpdl_runtime", |
| "libthiserror", |
| ], |
| apex_available: [ |
| "com.android.btservices", |
| ], |
| min_sdk_version: "30", |
| } |
| |
| rust_test_host { |
| name: "libbt_packets_test", |
| defaults: [ |
| "gd_rust_defaults", |
| "mts_defaults", |
| ], |
| srcs: [ |
| "rust/packets/lib.rs", |
| |
| ":BluetoothGeneratedPackets_rust", |
| ], |
| test_suites: ["general-tests"], |
| edition: "2018", |
| proc_macros: ["libnum_derive"], |
| rustlibs: [ |
| "libbytes", |
| "liblog_rust", |
| "libpdl_runtime", |
| "libthiserror", |
| ], |
| } |
| |
| // Generates binary schema data to be bundled and source file generated |
| genrule { |
| name: "BluetoothGeneratedDumpsysBinarySchema_bfbs", |
| tools: [ |
| "flatc", |
| ], |
| cmd: "$(location flatc) -I packages/modules/Bluetooth/system/gd -b --schema -o $(genDir) $(in) ", |
| srcs: [ |
| "common/init_flags.fbs", |
| "dumpsys_data.fbs", |
| "hci/hci_acl_manager.fbs", |
| "hci/hci_controller.fbs", |
| "l2cap/classic/l2cap_classic_module.fbs", |
| "module_unittest.fbs", |
| "os/wakelock_manager.fbs", |
| "shim/dumpsys.fbs", |
| ], |
| out: [ |
| "dumpsys.bfbs", |
| "dumpsys_data.bfbs", |
| "hci_acl_manager.bfbs", |
| "hci_controller.bfbs", |
| "init_flags.bfbs", |
| "l2cap_classic_module.bfbs", |
| "wakelock_manager.bfbs", |
| ], |
| } |
| |
| genrule { |
| name: "BluetoothGeneratedDumpsysDataSchema_h", |
| tools: [ |
| "flatc", |
| ], |
| cmd: "$(location flatc) -I packages/modules/Bluetooth/system/gd -o $(genDir) --cpp $(in) ", |
| srcs: [ |
| "common/init_flags.fbs", |
| "dumpsys_data.fbs", |
| "hci/hci_acl_manager.fbs", |
| "hci/hci_controller.fbs", |
| "l2cap/classic/l2cap_classic_module.fbs", |
| "module_unittest.fbs", |
| "os/wakelock_manager.fbs", |
| "shim/dumpsys.fbs", |
| ], |
| out: [ |
| "dumpsys_data_generated.h", |
| "dumpsys_generated.h", |
| "hci_acl_manager_generated.h", |
| "hci_controller_generated.h", |
| "init_flags_generated.h", |
| "l2cap_classic_module_generated.h", |
| "wakelock_manager_generated.h", |
| ], |
| } |
| |
| cc_defaults { |
| name: "bluetooth_py3_native_extension_defaults", |
| include_dirs: [ |
| "external/python/cpython3/Include", |
| ], |
| target: { |
| android: { |
| include_dirs: ["external/python/cpython3/android/bionic/pyconfig"], |
| }, |
| android_arm: { |
| cflags: ["-DSOABI=\"cpython-38android-arm-android-bionic\""], |
| suffix: ".cpython-38android-arm-android-bionic", |
| }, |
| android_arm64: { |
| cflags: ["-DSOABI=\"cpython-38android-arm64-android-bionic\""], |
| suffix: ".cpython-38android-arm64-android-bionic", |
| }, |
| android_x86: { |
| cflags: ["-DSOABI=\"cpython-38android-x86-android-bionic\""], |
| suffix: ".cpython-38android-x86-android-bionic", |
| }, |
| android_x86_64: { |
| cflags: ["-DSOABI=\"cpython-38android-x86_64-android-bionic\""], |
| suffix: ".cpython-38android-x86_64-android-bionic", |
| }, |
| // Regenerate include dirs with android_regen.sh |
| darwin_x86_64: { |
| include_dirs: ["external/python/cpython3/android/darwin_x86_64/pyconfig"], |
| cflags: [ |
| "-DSOABI=\"cpython-38android-x86_64-darwin\"", |
| "-Wno-deprecated-declarations", |
| "-Wno-pointer-arith", |
| ], |
| suffix: ".cpython-38android-x86_64-darwin", |
| }, |
| linux_bionic: { |
| // NB linux_bionic is a 'host' architecture but it uses the bionic libc like 'android' |
| // targets so use the android pyconfig. |
| include_dirs: ["external/python/cpython3/android/bionic/pyconfig"], |
| cflags: ["-DSOABI=\"cpython-38android-x86_64-linux-bionic\""], |
| suffix: ".cpython-38android-x86_64-linux-bionic", |
| }, |
| linux_glibc_x86: { |
| enabled: false, |
| }, |
| linux_glibc_x86_64: { |
| include_dirs: ["external/python/cpython3/android/linux_x86_64/pyconfig"], |
| cflags: ["-DSOABI=\"cpython-38android-x86_64-linux-gnu\""], |
| // Commenting out the Linux suffix so that cpython-38-x86_64-linux-gnu |
| // Python 3.8 can also import the untagged .so library per PEP 3149 |
| // Keep this change until Android py3-cmd can run ACTS, gRPC and can |
| // Export Python native symbols such as PyType_Type |
| // suffix: ".cpython-38android-x86_64-linux-gnu", |
| }, |
| linux_musl_x86: { |
| enabled: false, |
| }, |
| linux_musl_x86_64: { |
| include_dirs: ["external/python/cpython3/android/linux_x86_64/pyconfig"], |
| cflags: ["-DSOABI=\"cpython-38android-x86_64-linux-gnu\""], |
| // Commenting out the Linux suffix so that cpython-38-x86_64-linux-gnu |
| // Python 3.8 can also import the untagged .so library per PEP 3149 |
| // Keep this change until Android py3-cmd can run ACTS, gRPC and can |
| // Export Python native symbols such as PyType_Type |
| // suffix: ".cpython-38android-x86_64-linux-gnu", |
| }, |
| windows: { |
| enabled: false, |
| }, |
| }, |
| allow_undefined_symbols: true, |
| } |
| |
| cc_library_host_shared { |
| name: "bluetooth_packets_python3", |
| defaults: [ |
| "bluetooth_py3_native_extension_defaults", |
| "gd_defaults", |
| ], |
| srcs: [ |
| ":BluetoothPacketSources", |
| "common/strings.cc", |
| "l2cap/fcs.cc", |
| "packet/python3_module.cc", |
| |
| ], |
| generated_sources: [ |
| "BluetoothGeneratedPackets_python3_cc", |
| ], |
| header_libs: [ |
| "pybind11_headers", |
| ], |
| static_libs: [ |
| "libbluetooth_l2cap_pdl", |
| ], |
| cflags: [ |
| "-fexceptions", |
| ], |
| rtti: true, |
| } |