blob: 48b023bb4e903832cabd8ce33e2fbd22bc65f9fe [file] [log] [blame]
//
// 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",
],
whole_static_libs: [
"libc++fs",
],
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_api_gen.cpp",
"test_api_gen_vendor.cpp",
"test_collation.cpp",
"test.proto",
"test_feature_atoms.proto",
"utils.cpp",
],
static_libs: [
"libgmock_host",
"libtestvendoratoms",
],
shared_libs: [
"libstats_proto_host",
"libprotobuf-cpp-full",
"libstatslog",
],
whole_static_libs: [
"libc++fs",
],
proto: {
type: "full",
include_dirs: [
"external/protobuf/src",
],
},
data: [
":libprotobuf-internal-protos",
":libstats_internal_protos",
"test_external.proto",
"test_vendor_atoms.proto",
],
}
genrule {
name: "test_vendor_atoms.h",
tools: ["stats-log-api-gen"],
cmd: "$(location stats-log-api-gen) --header $(genDir)/test_vendor_atoms.h --namespace android,VendorAtoms --vendor-proto frameworks/proto_logging/stats/stats_log_api_gen/test_vendor_atoms.proto",
out: [
"test_vendor_atoms.h",
],
srcs: [
"test_vendor_atoms.proto",
],
}
genrule {
name: "test_vendor_atoms_with_module.h",
tools: ["stats-log-api-gen"],
cmd: "$(location stats-log-api-gen) --header $(genDir)/test_vendor_atoms_with_module.h --module test --namespace android,VendorAtomsModule --vendor-proto frameworks/proto_logging/stats/stats_log_api_gen/test_vendor_atoms.proto",
out: [
"test_vendor_atoms_with_module.h",
],
srcs: [
"test_vendor_atoms.proto",
],
}
cc_library_static {
name: "libtestvendoratoms",
host_supported: true,
generated_headers: [
"test_vendor_atoms.h",
"test_vendor_atoms_with_module.h",
],
export_generated_headers: [
"test_vendor_atoms.h",
"test_vendor_atoms_with_module.h",
],
}
// ==========================================================
// 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",
],
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 --rustHeaderCrate statslog_rust_header",
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",
],
apex_available: [
"com.android.resolv",
"com.android.virt",
],
min_sdk_version: "29",
}
genrule {
name: "statslog.rs",
tools: ["stats-log-api-gen"],
cmd: "$(location stats-log-api-gen) --rust $(genDir)/statslog.rs --rustHeaderCrate statslog_rust_header",
out: [
"statslog.rs",
],
}
rust_library {
name: "libstatslog_rust",
crate_name: "statslog_rust",
srcs: [
"rust_wrapper.rs",
":statslog.rs",
],
rustlibs: [
"libstatslog_rust_header",
"libstatspull_bindgen",
],
apex_available: [
"com.android.resolv",
"com.android.virt",
],
min_sdk_version: "29",
}