Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e88097d7 authored by Andrei Homescu's avatar Andrei Homescu
Browse files

libbinder_rs: Build libbinder_ndk_sys on Trusty

Adds a rules.mk build file to build the C wrapper
crate on Trusty with bindgen.

Bug: 242243245
Test: build binder_ndk_sys as a dependency of skel_rust
Change-Id: I54af010a49763bda785230261d56485ffd15e98f
parent b5c136e7
Loading
Loading
Loading
Loading
+14 −1
Original line number Diff line number Diff line
@@ -19,7 +19,20 @@
use std::error::Error;
use std::fmt;

#[cfg(not(target_os = "trusty"))]
mod bindings {
    include!(concat!(env!("OUT_DIR"), "/bindings.rs"));
}

// Trusty puts the full path to the auto-generated file in BINDGEN_INC_FILE
// and builds it with warnings-as-errors, so we need to use #[allow(bad_style)]
#[cfg(target_os = "trusty")]
#[allow(bad_style)]
mod bindings {
    include!(env!("BINDGEN_INC_FILE"));
}

pub use bindings::*;

impl Error for android_c_interface_StatusCode {}

+38 −0
Original line number Diff line number Diff line
# Copyright (C) 2023 The Android Open Source Project
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#      http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#

LOCAL_DIR := $(GET_LOCAL_DIR)
LIBBINDER_DIR := $(LOCAL_DIR)/../../..
LIBBINDER_NDK_BINDGEN_FLAG_FILE := \
	$(LIBBINDER_DIR)/rust/libbinder_ndk_bindgen_flags.txt

MODULE := $(LOCAL_DIR)

MODULE_SRCS := $(LIBBINDER_DIR)/rust/sys/lib.rs

MODULE_CRATE_NAME := binder_ndk_sys

MODULE_LIBRARY_DEPS += \
	$(LIBBINDER_DIR)/trusty \
	$(LIBBINDER_DIR)/trusty/ndk \
	trusty/user/base/lib/trusty-sys \

MODULE_BINDGEN_SRC_HEADER := $(LIBBINDER_DIR)/rust/sys/BinderBindings.hpp

# Add the flags from the flag file
MODULE_BINDGEN_FLAGS += $(shell cat $(LIBBINDER_NDK_BINDGEN_FLAG_FILE))
MODULE_SRCDEPS += $(LIBBINDER_NDK_BINDGEN_FLAG_FILE)

include make/library.mk