Merge "Revert "aconfig: remove libcxx dependency for now"" into main
diff --git a/tools/aconfig/aconfig_storage_file/Android.bp b/tools/aconfig/aconfig_storage_file/Android.bp
index 03402b5..8922ba4 100644
--- a/tools/aconfig/aconfig_storage_file/Android.bp
+++ b/tools/aconfig/aconfig_storage_file/Android.bp
@@ -14,6 +14,7 @@
"libprotobuf",
"libtempfile",
"libmemmap2",
+ "libcxx",
"libthiserror",
],
}
@@ -78,3 +79,38 @@
],
host_supported: true,
}
+
+genrule {
+ name: "libcxx_aconfig_storage_bridge_code",
+ tools: ["cxxbridge"],
+ cmd: "$(location cxxbridge) $(in) > $(out)",
+ srcs: ["src/lib.rs"],
+ out: ["aconfig_storage/lib.rs.cc"],
+}
+
+genrule {
+ name: "libcxx_aconfig_storage_bridge_header",
+ tools: ["cxxbridge"],
+ cmd: "$(location cxxbridge) $(in) --header > $(out)",
+ srcs: ["src/lib.rs"],
+ out: ["aconfig_storage/lib.rs.h"],
+}
+
+rust_ffi_static {
+ name: "libaconfig_storage_cxx_bridge",
+ crate_name: "aconfig_storage_cxx_bridge",
+ host_supported: true,
+ defaults: ["aconfig_storage_file.defaults"],
+}
+
+cc_library_static {
+ name: "libaconfig_storage_cc",
+ srcs: ["aconfig_storage.cpp"],
+ generated_headers: [
+ "cxx-bridge-header",
+ "libcxx_aconfig_storage_bridge_header"
+ ],
+ generated_sources: ["libcxx_aconfig_storage_bridge_code"],
+ whole_static_libs: ["libaconfig_storage_cxx_bridge"],
+ export_include_dirs: ["include"],
+}
diff --git a/tools/aconfig/aconfig_storage_file/src/lib.rs b/tools/aconfig/aconfig_storage_file/src/lib.rs
index 130a0e0..84e0e90 100644
--- a/tools/aconfig/aconfig_storage_file/src/lib.rs
+++ b/tools/aconfig/aconfig_storage_file/src/lib.rs
@@ -256,8 +256,6 @@
get_boolean_flag_value_impl(STORAGE_LOCATION_FILE, container, offset)
}
-
-#[cfg(feature = "cargo")]
#[cxx::bridge]
mod ffi {
// Package table query return for cc interlop
@@ -319,7 +317,6 @@
}
/// Get package start offset impl cc interlop
-#[cfg(feature = "cargo")]
pub fn get_package_offset_cxx_impl(
pb_file: &str,
container: &str,
@@ -329,7 +326,6 @@
}
/// Get flag start offset impl cc interlop
-#[cfg(feature = "cargo")]
pub fn get_flag_offset_cxx_impl(
pb_file: &str,
container: &str,
@@ -340,7 +336,6 @@
}
/// Get boolean flag value impl cc interlop
-#[cfg(feature = "cargo")]
pub fn get_boolean_flag_value_cxx_impl(
pb_file: &str,
container: &str,
@@ -350,13 +345,11 @@
}
/// Get package start offset cc interlop
-#[cfg(feature = "cargo")]
pub fn get_package_offset_cxx(container: &str, package: &str) -> ffi::PackageOffsetQueryCXX {
ffi::PackageOffsetQueryCXX::new(get_package_offset(container, package))
}
/// Get flag start offset cc interlop
-#[cfg(feature = "cargo")]
pub fn get_flag_offset_cxx(
container: &str,
package_id: u32,
@@ -366,12 +359,10 @@
}
/// Get boolean flag value cc interlop
-#[cfg(feature = "cargo")]
pub fn get_boolean_flag_value_cxx(container: &str, offset: u32) -> ffi::BooleanFlagValueQueryCXX {
ffi::BooleanFlagValueQueryCXX::new(get_boolean_flag_value(container, offset))
}
-#[cfg(feature = "cargo")]
impl ffi::PackageOffsetQueryCXX {
pub(crate) fn new(offset_result: Result<Option<PackageOffset>, AconfigStorageError>) -> Self {
match offset_result {
@@ -402,7 +393,6 @@
}
}
-#[cfg(feature = "cargo")]
impl ffi::FlagOffsetQueryCXX {
pub(crate) fn new(offset_result: Result<Option<FlagOffset>, AconfigStorageError>) -> Self {
match offset_result {
@@ -430,7 +420,6 @@
}
}
-#[cfg(feature = "cargo")]
impl ffi::BooleanFlagValueQueryCXX {
pub(crate) fn new(value_result: Result<bool, AconfigStorageError>) -> Self {
match value_result {