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