aconfig: first iteration of Rust codegen
Add a new `create-rust-lib` command to generate Rust code. The output is a src/lib.rs file; the build system is assumed to set the generated crate's name. For READ_ONLY flags, the generated code returns a hard-coded true or false. For READ_WRITE flags, the generated code reaches out to DeviceConfig via the cc_library server_configurable_flags via the libprofcollect_libflags_rust Rust bindings. The build system is assumed to add this to the generated crate's dependencies. Note: libprofcollect_libflags_rust seems generic enough that it should be moved to an official Rust wrapper for server_configurable_flags. This is tracked in b/284096062. Summary of module the built system is assumed to wrap the auto-generated code in: rust_library { name: "lib<namespace>_rs", crate_name: "<namespace>_rs", edition: "2021", clippy_lints: "none", no_stdlibs: true, lints: "none", srcs: ["src/lib.rs"], rustlibs: [ "libprofcollect_libflags_rust", ], } Also add a set of test input to be used in the unit tests for a more coherent test strategy. A follow-up CL will migrate the code in commands.rs, codegen_java.rs and codegen_cpp.rs. Bug: 279483360 Bug: 283907905 Test: atest aconfig.test Test: manual: create cache from files in testdata, create rust lib, add to module template above, verify the module builds Change-Id: I02606aa3686eda921116e33f7e2df8fd1156a7aa
Loading
Please register or sign in to comment