// // Copyright (C) 2017 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. // // ========================================================== // Build the host executable: stats-log-api-gen // ========================================================== package { default_applicable_licenses: ["Android-Apache-2.0"], } cc_binary_host { name: "stats-log-api-gen", srcs: [ "Collation.cpp", "java_writer.cpp", "java_writer_q.cpp", "main.cpp", "native_writer.cpp", "rust_writer.cpp", "utils.cpp", ], cflags: [ "-Wall", "-Werror", ], shared_libs: [ "libstats_proto_host", "libprotobuf-cpp-full", "libbase", ], proto: { type: "full", }, } // ========================================================== // Build the host test executable: stats-log-api-gen // ========================================================== cc_test_host { name: "stats-log-api-gen-test", cflags: [ "-Wall", "-Wextra", "-Werror", "-g", "-DUNIT_TEST", ], srcs: [ "Collation.cpp", "test_collation.cpp", "test.proto", ], static_libs: [ "libgmock_host", ], shared_libs: [ "libstats_proto_host", "libprotobuf-cpp-full", ], proto: { type: "full", include_dirs: [ "external/protobuf/src", ], }, } // ========================================================== // Native library // ========================================================== genrule { name: "statslog.h", tools: ["stats-log-api-gen"], cmd: "$(location stats-log-api-gen) --header $(genDir)/statslog.h", out: [ "statslog.h", ], } genrule { name: "statslog.cpp", tools: ["stats-log-api-gen"], cmd: "$(location stats-log-api-gen) --cpp $(genDir)/statslog.cpp", out: [ "statslog.cpp", ], } cc_library { name: "libstatslog", host_supported: true, generated_sources: [ "statslog.cpp", ], generated_headers: [ "statslog.h" ], cflags: [ "-Wall", "-Werror", ], export_generated_headers: [ "statslog.h" ], shared_libs: [ "liblog", "libcutils", ], target: { android: { shared_libs: [ "libstatssocket", "libstatspull", ], export_shared_lib_headers: [ "libstatssocket", "libstatspull", ], }, host: { static_libs: [ "libstatssocket", "libstatspull", "statsd-aidl-ndk_platform", ], shared_libs: ["libbinder_ndk"], export_static_lib_headers: [ "libstatssocket", "libstatspull", ], }, darwin: { enabled: false, }, }, } // ========================================================== // Rust library // ========================================================== genrule { name: "statslog_header.rs", tools: ["stats-log-api-gen"], cmd: "$(location stats-log-api-gen) --rustHeader $(genDir)/statslog_header.rs", out: [ "statslog_header.rs", ], } rust_library { name: "libstatslog_rust_header", crate_name: "statslog_rust_header", srcs: [ "rust_header_wrapper.rs", ":statslog_header.rs", ], rustlibs: [ "libstatspull_bindgen", "libthiserror", ], } genrule { name: "statslog.rs", tools: ["stats-log-api-gen"], cmd: "$(location stats-log-api-gen) --rust $(genDir)/statslog.rs", out: [ "statslog.rs", ], } rust_library { name: "libstatslog_rust", crate_name: "statslog_rust", srcs: [ "rust_wrapper.rs", ":statslog.rs", ], rustlibs: [ "libstatslog_rust_header", "libstatspull_bindgen", ], }