blob: 921f0dea5c1ec4b3a290a564059f9c5259558599 [file] [log] [blame]
//
// Copyright (C) 2018 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.
//
filegroup {
name: "quipper_data_proto",
srcs: [
"perf_data.proto",
],
}
filegroup {
name: "quipper_stat_proto",
srcs: [
"perf_stat.proto",
],
}
cc_defaults {
name: "libquipper_defaults",
cflags: [
"-Wno-unused",
"-Wno-unused-parameter",
"-Wno-missing-field-initializers",
"-O3",
"-g",
],
srcs: [
"address_mapper.cc",
"binary_data_utils.cc",
"buffer_reader.cc",
"buffer_writer.cc",
"data_reader.cc",
"data_writer.cc",
"dso_android.cc", // Android-modified, rely on simpleperf/LLVM.
"file_reader.cc",
"file_utils.cc",
"huge_page_deducer.cc",
"androidbase/base/logging.cc",
"perf_option_parser.cc",
"perf_data_utils.cc",
"perf_parser.cc",
"perf_protobuf_io.cc",
"perf_reader.cc",
"perf_recorder.cc",
"perf_serializer.cc",
"perf_stat_parser.cc",
"run_command.cc",
"sample_info_reader.cc",
"scoped_temp_path.cc",
"string_utils.cc",
// Protos.
":quipper_data_proto",
":quipper_stat_proto",
],
local_include_dirs: [
"compat/non_cros",
"androidbase",
],
static_libs: [
"libbase",
"libsimpleperf_elf_read",
],
whole_static_libs: [
"libcrypto", // For MD5.
],
export_include_dirs: [
".",
"androidbase",
],
proto: {
canonical_path_from_root: true,
export_proto_headers: true,
},
target: {
darwin: {
enabled: false,
},
},
}
cc_library_static {
name: "libquipper",
defaults: [ "libquipper_defaults" ],
host_supported: true,
proto: {
type: "lite",
canonical_path_from_root: false,
},
static_libs: [
"libprotobuf-cpp-lite",
],
}
cc_library_static {
name: "libquipper-full",
defaults: [ "libquipper_defaults" ],
host_supported: true,
srcs: [
"conversion_utils.cc",
],
proto: {
type: "full",
},
shared_libs: [
"libprotobuf-cpp-full",
],
}
cc_defaults {
name: "quipper_test_defaults",
host_supported: true,
srcs: [
// Independent test infra.
"perf_test_files.cc",
"test_perf_data.cc",
"test_runner.cc",
],
local_include_dirs: [
"compat/non_cros",
],
cflags: [
"-Wno-ignored-qualifiers",
"-Wno-missing-field-initializers",
"-Wno-sign-compare",
"-Wno-unused",
"-Wno-unused-parameter",
],
static_libs: [
"libsimpleperf_elf_read",
],
target: {
darwin: {
enabled: false,
},
windows: {
enabled: false,
}
},
}
cc_defaults {
name: "quipper_android_test_defaults",
defaults: ["quipper_test_defaults"],
srcs: [
// Independent tests.
"address_mapper_test.cc",
"binary_data_utils_test.cc",
"buffer_reader_test.cc",
"buffer_writer_test.cc",
"file_reader_test.cc",
"perf_data_utils_test.cc",
"perf_option_parser_test.cc",
"perf_stat_parser_test.cc",
"run_command_test.cc",
"sample_info_reader_test.cc",
"scoped_temp_path_test.cc",
],
}
cc_test {
name: "quipper_unit_tests",
defaults: [ "quipper_android_test_defaults" ],
host_supported: true,
static_libs: [
"libbase",
"liblog",
"libprotobuf-cpp-lite",
"libquipper",
],
}
cc_test {
name: "quipper-full_unit_tests",
defaults: [ "quipper_android_test_defaults" ],
host_supported: true,
srcs: [
"test_utils.cc",
"conversion_utils_test.cc",
"perf_reader_test.cc",
"perf_serializer_test.cc",
],
static_libs: [
"libquipper-full",
"libutils",
],
shared_libs: [
"libbase",
"libprotobuf-cpp-full",
],
target: {
// Required for LLVM in libsimpleperf_elf_read.
linux_glibc: {
host_ldlibs: [
"-lncurses",
],
},
},
}
cc_test {
name: "quipper_libelf_test",
defaults: [ "quipper_test_defaults" ],
device_supported: false,
enabled: false,
srcs: [
"dso_test_utils.cc",
"test_utils.cc",
"dso_test.cc",
"perf_parser_test.cc",
],
static_libs: [
"libcap", // For cap_get_proc etc.
"libelf", // For gelf.h, elf_version, ...
"libquipper-full",
"libutils",
"libz", // For libelf.
],
shared_libs: [
"libbase",
"libprotobuf-cpp-full",
],
target: {
// Required for LLVM in libsimpleperf_elf_read.
linux_glibc: {
host_ldlibs: [
"-lncurses",
],
},
},
}