blob: bfa208062a237042e2cf68fc0a9b500fc13755da [file] [log] [blame] [edit]
package {
default_applicable_licenses: ["external_libyuv_license"],
}
// Added automatically by a large-scale-change
// See: http://go/android-license-faq
license {
name: "external_libyuv_license",
visibility: [":__subpackages__"],
license_kinds: [
"SPDX-license-identifier-BSD",
],
license_text: [
"LICENSE",
"PATENTS",
],
}
subdirs = ["files"]
cc_defaults {
name: "libyuv_defaults",
srcs: [
"source/compare.cc",
"source/compare_common.cc",
"source/compare_gcc.cc",
"source/compare_msa.cc",
"source/compare_neon.cc",
"source/compare_neon64.cc",
"source/convert.cc",
"source/convert_argb.cc",
"source/convert_from.cc",
"source/convert_from_argb.cc",
"source/convert_jpeg.cc",
"source/convert_to_argb.cc",
"source/convert_to_i420.cc",
"source/cpu_id.cc",
"source/mjpeg_decoder.cc",
"source/mjpeg_validate.cc",
"source/planar_functions.cc",
"source/rotate.cc",
"source/rotate_any.cc",
"source/rotate_argb.cc",
"source/rotate_common.cc",
"source/rotate_gcc.cc",
"source/rotate_msa.cc",
"source/rotate_neon.cc",
"source/rotate_neon64.cc",
"source/row_any.cc",
"source/row_common.cc",
"source/row_gcc.cc",
"source/row_msa.cc",
"source/row_neon.cc",
"source/row_neon64.cc",
"source/row_rvv.cc",
"source/scale.cc",
"source/scale_any.cc",
"source/scale_argb.cc",
"source/scale_common.cc",
"source/scale_gcc.cc",
"source/scale_msa.cc",
"source/scale_neon.cc",
"source/scale_neon64.cc",
"source/scale_rgb.cc",
"source/scale_rvv.cc",
"source/scale_uv.cc",
"source/video_common.cc",
],
cflags: [
"-Wall",
"-Werror",
"-Wno-unused-parameter",
"-fexceptions",
"-DHAVE_JPEG",
"-DLIBYUV_UNLIMITED_DATA",
// TODO: enable these...
"-DLIBYUV_DISABLE_SME",
"-DLIBYUV_DISABLE_SVE",
],
export_include_dirs: ["include"],
shared_libs: ["libjpeg"],
arch: {
arm: {
cflags: ["-mfpu=neon"],
},
arm64: {
cflags: [
"-Xclang -target-feature",
// This comment prevents bpfmt from sorting the flags incorrectly.
"-Xclang +dotprod",
// This comment prevents bpfmt from sorting the flags incorrectly.
"-Xclang -target-feature",
// This comment prevents bpfmt from sorting the flags incorrectly.
"-Xclang +i8mm",
],
},
},
}
cc_library {
name: "libyuv",
defaults: ["libyuv_defaults"],
vendor_available: true,
product_available: true,
host_supported: true,
apex_available: [
"//apex_available:platform",
"com.android.media.swcodec",
"com.android.virt",
],
min_sdk_version: "29",
// b/336916369: This library gets linked into a rust rlib. Disable LTO
// until cross-language lto is supported.
lto: {
never: true,
},
}
// compatibilty static library until all uses of libyuv_static are replaced
// with libyuv (b/37646797)
cc_library_static {
name: "libyuv_static",
vendor_available: true,
whole_static_libs: ["libyuv"],
apex_available: [
"//apex_available:platform",
"com.android.media.swcodec",
],
min_sdk_version: "29",
}
// A static library to support examples/test code with CFI assembly support.
// It's kept separate from the main 'libyuv' target to not impose and propagate the requirements
// to all of its dependents, some of which are difficult to resolve and may not be compatible.
cc_library_static {
name: "libyuv_cfi",
defaults: ["libyuv_defaults"],
vendor_available: true,
sanitize: {
cfi: true,
config: {
cfi_assembly_support: true,
},
},
visibility: ["//external/libvpx"],
}
cc_test {
name: "libyuv_unittest",
static_libs: ["libyuv"],
shared_libs: ["libjpeg"],
cflags: ["-Wall", "-Werror"],
srcs: [
"unit_test/basictypes_test.cc",
"unit_test/color_test.cc",
"unit_test/compare_test.cc",
"unit_test/convert_test.cc",
"unit_test/cpu_test.cc",
"unit_test/cpu_thread_test.cc",
"unit_test/math_test.cc",
"unit_test/planar_test.cc",
"unit_test/rotate_argb_test.cc",
"unit_test/rotate_test.cc",
"unit_test/scale_argb_test.cc",
"unit_test/scale_plane_test.cc",
"unit_test/scale_rgb_test.cc",
"unit_test/scale_test.cc",
"unit_test/scale_uv_test.cc",
"unit_test/unit_test.cc",
"unit_test/video_common_test.cc",
],
}
cc_test {
name: "compare",
gtest: false,
srcs: [
"util/compare.cc",
],
static_libs: ["libyuv"],
}
cc_test {
name: "cpuid",
gtest: false,
srcs: [
"util/cpuid.c",
],
static_libs: ["libyuv"],
}
cc_test {
name: "i444tonv12_eg",
gtest: false,
srcs: [
"util/i444tonv12_eg.cc",
],
static_libs: ["libyuv"],
}
cc_test {
name: "psnr",
gtest: false,
srcs: [
"util/psnr_main.cc",
"util/psnr.cc",
"util/ssim.cc",
],
static_libs: ["libyuv"],
}
cc_test {
name: "yuvconstants",
gtest: false,
srcs: [
"util/yuvconstants.c",
],
static_libs: ["libyuv"],
}
cc_test {
name: "yuvconvert",
gtest: false,
srcs: [
"util/yuvconvert.cc",
],
static_libs: ["libyuv"],
shared_libs: ["libjpeg"],
}