Commit ccbdaa5e authored by Jonathan Metzman's avatar Jonathan Metzman Committed by Commit Bot

Reland "[skia][libFuzzer] Allow building targets from OSS-Fuzz on Windows"

This is a reland of b8e27a0d

Original change's description:
> [skia][libFuzzer] Allow building targets from OSS-Fuzz on Windows
> 
> Chrome ClusterFuzz has support for Windows while OSS-Fuzz does not.
> Enable low hanging fruit that can easily be built in a Chromium build.
> 
> Bug: 903632
> Change-Id: I9b6c9bf883271d33135a4fea31a05be3d13648df
> Reviewed-on: https://chromium-review.googlesource.com/c/1328225
> Reviewed-by: Mike Klein <mtklein@chromium.org>
> Commit-Queue: Jonathan Metzman <metzman@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#606938}

Bug: 903632
Change-Id: I35d49d83e589e04cf11215f63bbe2c2f13fab01c
Reviewed-on: https://chromium-review.googlesource.com/c/1330326Reviewed-by: default avatarJonathan Metzman <metzman@chromium.org>
Reviewed-by: default avatarMike Klein <mtklein@chromium.org>
Commit-Queue: Jonathan Metzman <metzman@chromium.org>
Cr-Commit-Position: refs/heads/master@{#607290}
parent 4993ce4f
......@@ -9,6 +9,7 @@ import("//build/config/sanitizers/sanitizers.gni")
import("//gpu/vulkan/features.gni")
import("//printing/buildflags/buildflags.gni")
import("//testing/test.gni")
import("//testing/libfuzzer/fuzzer_test.gni")
import("//third_party/skia/gn/shared_sources.gni")
import("//third_party/skia/third_party/skcms/skcms.gni")
......@@ -862,3 +863,156 @@ if (!is_ios) {
]
}
}
# Build Skia fuzzers from OSS-Fuzz on Windows since Windows is not supported by
# OSS-Fuzz.
if (is_win && use_libfuzzer) {
static_library("skia_fuzzer_lib") {
sources = [
"//third_party/skia/fuzz/Fuzz.cpp",
"//third_party/skia/fuzz/FuzzCommon.cpp",
]
configs += [ ":skia_library_config" ]
# Use public_deps so each fuzzer_test doesn't need to explicitly depend on
# ":skia".
public_deps = [
":skia",
]
}
static_library("skia_encoder_fuzzer_lib") {
sources = [
"//third_party/skia/fuzz/FuzzEncoders.cpp",
]
configs += [ ":skia_library_config" ]
deps = [
":skia",
]
}
# TODO(metzman): Enable the other fuzzers that cannot yet build in Chromium.
fuzzer_test("skia_region_deserialize_fuzzer") {
sources = [
"//third_party/skia/fuzz/oss_fuzz/FuzzRegionDeserialize.cpp",
]
additional_configs = [ ":skia_library_config" ]
defines = [ "IS_FUZZING_WITH_LIBFUZZER" ]
deps = [
":skia_fuzzer_lib",
]
}
fuzzer_test("skia_image_filter_deserialize_fuzzer") {
sources = [
"//third_party/skia/fuzz/oss_fuzz/FuzzImageFilterDeserialize.cpp",
]
additional_configs = [ ":skia_library_config" ]
defines = [ "IS_FUZZING_WITH_LIBFUZZER" ]
deps = [
":skia_fuzzer_lib",
]
}
fuzzer_test("skia_region_set_path_fuzzer") {
sources = [
"//third_party/skia/fuzz/oss_fuzz/FuzzRegionSetPath.cpp",
]
additional_configs = [ ":skia_library_config" ]
defines = [ "IS_FUZZING_WITH_LIBFUZZER" ]
deps = [
":skia_fuzzer_lib",
]
}
fuzzer_test("skia_textblob_deserialize_fuzzer") {
sources = [
"//third_party/skia/fuzz/oss_fuzz/FuzzTextBlobDeserialize.cpp",
]
additional_configs = [ ":skia_library_config" ]
defines = [ "IS_FUZZING_WITH_LIBFUZZER" ]
deps = [
":skia_fuzzer_lib",
]
}
fuzzer_test("skia_path_deserialize_fuzzer") {
sources = [
"//third_party/skia/fuzz/oss_fuzz/FuzzPathDeserialize.cpp",
]
additional_configs = [ ":skia_library_config" ]
defines = [ "IS_FUZZING_WITH_LIBFUZZER" ]
deps = [
":skia_fuzzer_lib",
]
}
fuzzer_test("skia_image_decode_fuzzer") {
sources = [
"//third_party/skia/fuzz/oss_fuzz/FuzzImage.cpp",
]
additional_configs = [ ":skia_library_config" ]
defines = [ "IS_FUZZING_WITH_LIBFUZZER" ]
deps = [
":skia_fuzzer_lib",
]
}
fuzzer_test("skia_png_encoder_fuzzer") {
sources = [
"//third_party/skia/fuzz/oss_fuzz/FuzzPNGEncoder.cpp",
]
additional_configs = [ ":skia_library_config" ]
defines = [ "IS_FUZZING_WITH_LIBFUZZER" ]
deps = [
":skia_encoder_fuzzer_lib",
":skia_fuzzer_lib",
]
}
fuzzer_test("skia_jpeg_encoder_fuzzer") {
sources = [
"//third_party/skia/fuzz/oss_fuzz/FuzzJPEGEncoder.cpp",
]
additional_configs = [ ":skia_library_config" ]
defines = [ "IS_FUZZING_WITH_LIBFUZZER" ]
deps = [
":skia_encoder_fuzzer_lib",
":skia_fuzzer_lib",
]
}
fuzzer_test("skia_webp_encoder_fuzzer") {
sources = [
"//third_party/skia/fuzz/oss_fuzz/FuzzWEBPEncoder.cpp",
]
additional_configs = [ ":skia_library_config" ]
defines = [ "IS_FUZZING_WITH_LIBFUZZER" ]
deps = [
":skia_encoder_fuzzer_lib",
":skia_fuzzer_lib",
]
}
fuzzer_test("skia_skjson_fuzzer") {
sources = [
"//third_party/skia/fuzz/oss_fuzz/FuzzJSON.cpp",
]
additional_configs = [ ":skia_library_config" ]
defines = [ "IS_FUZZING_WITH_LIBFUZZER" ]
deps = [
":skia_fuzzer_lib",
]
}
fuzzer_test("skia_image_decode_incremental_fuzzer") {
sources = [
"//third_party/skia/fuzz/oss_fuzz/FuzzIncrementalImage.cpp",
]
additional_configs = [ ":skia_library_config" ]
defines = [ "IS_FUZZING_WITH_LIBFUZZER" ]
deps = [
":skia_fuzzer_lib",
]
}
}
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment