RootCanal: Generate the rust backend for link_layer_packets.pdl
Used by netsimd to generate the beacon advertising
events for beacon devices.
Bug: 289385842
Test: m netsimd
Change-Id: I990aca3b0f55c7bad05abdfd1a92fae3e5ee60e5
diff --git a/tools/rootcanal/Android.bp b/tools/rootcanal/Android.bp
index 67dd3af..d1dade6 100644
--- a/tools/rootcanal/Android.bp
+++ b/tools/rootcanal/Android.bp
@@ -449,6 +449,13 @@
}
genrule {
+ name: "rootcanal_link_layer_packets_rust_gen",
+ defaults: ["pdl_rust_generator_defaults"],
+ srcs: ["packets/link_layer_packets.pdl"],
+ out: ["link_layer_packets.rs"],
+}
+
+genrule {
name: "rootcanal_bredr_bb_packets_cxx_gen",
tools: [
":pdl_cxx_generator",
diff --git a/tools/rootcanal/CMakeLists.txt b/tools/rootcanal/CMakeLists.txt
index 53aec54..f263a48 100644
--- a/tools/rootcanal/CMakeLists.txt
+++ b/tools/rootcanal/CMakeLists.txt
@@ -51,7 +51,7 @@
get_filename_component(pdl_INPUT_ABSOLUTE ${pdl_INPUT} ABSOLUTE)
get_filename_component(pdl_OUTPUT_ABSOLUTE ${pdl_OUTPUT} ABSOLUTE)
get_filename_component(pdl_OUTPUT_DIR ${pdl_OUTPUT_ABSOLUTE} DIRECTORY)
- set(${pdl_NAME} "${pdl_OUTPUT_ABSOLUTE}" PARENT_SCOPE)
+ set(${pdl_NAME} "${pdl_OUTPUT_ABSOLUTE}" CACHE STRING "PDL output filepath for ${pdl_NAME}" FORCE)
file(MAKE_DIRECTORY ${pdl_OUTPUT_DIR})
@@ -105,6 +105,8 @@
VERBATIM
DEPENDS pdlc ${pdl_OUTPUT_ABSOLUTE}.json)
endif()
+
+ add_custom_target("pdl_gen-${pdl_NAME}" DEPENDS ${pdl_OUTPUT_ABSOLUTE})
endfunction()
pdl_gen(
@@ -124,6 +126,12 @@
INCLUDE "hci/address.h"
USING "bluetooth::hci")
+pdl_gen(
+ NAME RootCanalGeneratedPackets_rs
+ INPUT ${ROOTCANAL_ROOT}/packets/link_layer_packets.pdl
+ OUTPUT link_layer_packets.rs
+ LANG rust)
+
android_add_library(
TARGET libscriptedbeaconpayload-protos-lite LICENSE Apache-2.0
SOURCE_DIR ${ROOTCANAL_ROOT} SRC ${libscriptedbeaconpayload_protos_lite_src})