1message(STATUS "Enabling bluetooth LMP module.") 2 3pdl_gen( 4 NAME hci_packets_rs 5 INPUT ${ROOTCANAL_ROOT}/packets/hci_packets.pdl 6 OUTPUT hci_packets.rs 7 LANG rust_legacy) 8 9pdl_gen( 10 NAME lmp_packets_rs 11 INPUT ${ROOTCANAL_ROOT}/rust/lmp_packets.pdl 12 OUTPUT lmp_packets.rs 13 LANG rust_legacy) 14 15pdl_gen( 16 NAME llcp_packets_rs 17 INPUT ${ROOTCANAL_ROOT}/rust/llcp_packets.pdl 18 OUTPUT llcp_packets.rs 19 LANG rust_legacy) 20 21# This will automatically register all the tests as well. 22corrosion_import_crate(MANIFEST_PATH ${ROOTCANAL_ROOT}/rust/Cargo.toml FLAGS 23 --offline --verbose --verbose) 24corrosion_set_env_vars(rootcanal-rs 25 LMP_PACKETS_PREBUILT=${lmp_packets_rs} 26 LLCP_PACKETS_PREBUILT=${llcp_packets_rs} 27 HCI_PACKETS_PREBUILT=${hci_packets_rs} 28 CARGO_HOME=${Rust_CARGO_HOME}) 29 30android_license(TARGET rootcanal-rs LIBNAME None SPDX None LICENSE None LOCAL None) 31 32add_custom_target(lmp_rust_packets DEPENDS ${lmp_packets_rs} 33 ${llcp_packets_rs} 34 ${hci_packets_rs}) 35 36# Make sure we have the rust packets generated before we build them. 37add_dependencies(cargo-build_rootcanal-rs lmp_rust_packets) 38 39# Enable lmp in rootcanal. 40target_link_libraries(libbt-rootcanal PUBLIC rootcanal-rs) 41target_include_directories(libbt-rootcanal 42 PUBLIC ${ROOTCANAL_ROOT}/rust/include) 43