// // Copyright (C) 2020 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. // aidl_interface { name: "profcollectd_aidl_interface", unstable: true, srcs: [":profcollectd_aidl"], backend: { rust: { enabled: true, }, }, } rust_bindgen { name: "libprofcollectd_bindgen", crate_name: "profcollectd_bindgen", source_stem: "libprofcollectd_bindgen", wrapper_src: "include/libprofcollectd.hpp", } rust_library { name: "libprofcollectd_rust", stem: "liblibprofcollectd", crate_name: "libprofcollectd", srcs: ["lib.rs"], rustlibs: [ "profcollectd_aidl_interface-rust", "libbinder_rs", "libprofcollectd_bindgen", ], shared_libs: [ "libprofcollectd", ], } cc_defaults { name: "libprofcollectd_defaults", // We are only doing this for C++20. Can be removed after it becomes default. cpp_std: "experimental", tidy: true, tidy_checks: [ "-google-runtime-int", "-google-explicit-constructor", "-bugprone-unhandled-self-assignment", "-bugprone-macro-parentheses", ], } cc_library { name: "libprofcollectd", defaults: ["libprofcollectd_defaults"], shared_libs: [ "libbase", "libbinder", "libjsoncpp", "liblog", "libsimpleperf_profcollect", "libutils", "libziparchive", "profcollectd_aidl_interface-cpp", "server_configurable_flags", ], static_libs: [ "libc++fs", ], srcs: [ "binder_service.cpp", "compress.cpp", "config_utils.cpp", "scheduler.cpp", "simpleperf_etm_provider.cpp", ], export_include_dirs: ["include"], }