123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 |
- # Copyright (c) 2013 The Chromium Authors. All rights reserved.
- # Use of this source code is governed by a BSD-style license that can be
- # found in the LICENSE file.
- import("//build/config/chromecast_build.gni")
- import("//testing/libfuzzer/fuzzer_test.gni")
- # On Linux, we implicitly already depend on expat via fontconfig;
- # let's not pull it in twice.
- # Chromecast doesn't ship expat as a system library.
- # Libfuzzer and AFL need to build library from sources.
- if (((is_linux && !is_castos) || is_chromeos) && !use_fuzzing_engine) {
- config("expat_config") {
- libs = [ "expat" ]
- }
- group("expat") {
- public_configs = [ ":expat_config" ]
- }
- } else {
- config("expat_public_config") {
- include_dirs = [
- "src/expat/lib",
- "include/expat_config",
- ]
- defines = [ "XML_STATIC" ]
- }
- config("expat_internal_config") {
- cflags = [
- # xmlparse.c has some |if (0 && ...)| statements.
- "-Wno-unreachable-code",
- # Various files have fallthrough annotated with comments instead of
- # attributes, and switching to attributes is difficult.
- "-Wno-implicit-fallthrough",
- ]
- }
- static_library("expat") {
- sources = [
- "src/expat/lib/expat.h",
- "src/expat/lib/xmlparse.c",
- "src/expat/lib/xmlrole.c",
- "src/expat/lib/xmltok.c",
- ]
- public_configs = [ ":expat_public_config" ]
- configs += [ ":expat_internal_config" ]
- defines = [ "_LIB" ]
- if (is_win) {
- # expat expects to define WIN32_LEAN_AND_MEAN itself
- configs -= [ "//build/config/win:lean_and_mean" ]
- defines += [ "COMPILED_FROM_DSP" ]
- } else {
- defines += [ "HAVE_EXPAT_CONFIG_H" ]
- }
- }
- }
- fuzzer_test("expat_xml_parse_fuzzer") {
- sources = [ "fuzz/expat_xml_parse_fuzzer.cc" ]
- deps = [ ":expat" ]
- dict = "//third_party/libxml/fuzz/xml.dict"
- seed_corpus = "//third_party/libxml/fuzz/seed_corpus"
- }
|