# Copyright 2014 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("//testing/libfuzzer/fuzzer_test.gni") config("hunspell_config") { defines = [ "HUNSPELL_STATIC", "HUNSPELL_CHROME_CLIENT", "USE_HUNSPELL", ] } config("hunspell_warnings") { if (is_clang) { cflags = [ "-Wno-unused-private-field" ] } } static_library("hunspell") { sources = [ "google/bdict.cc", "google/bdict.h", "google/bdict_reader.cc", "google/bdict_reader.h", "google/bdict_writer.cc", "google/bdict_writer.h", "src/hunspell/affentry.cxx", "src/hunspell/affentry.hxx", "src/hunspell/affixmgr.cxx", "src/hunspell/affixmgr.hxx", "src/hunspell/atypes.hxx", "src/hunspell/baseaffix.hxx", "src/hunspell/csutil.cxx", "src/hunspell/csutil.hxx", "src/hunspell/filemgr.cxx", "src/hunspell/filemgr.hxx", "src/hunspell/hashmgr.cxx", "src/hunspell/hashmgr.hxx", "src/hunspell/htypes.hxx", "src/hunspell/hunspell.cxx", "src/hunspell/hunspell.h", "src/hunspell/hunspell.hxx", "src/hunspell/hunzip.cxx", "src/hunspell/hunzip.hxx", "src/hunspell/langnum.hxx", "src/hunspell/phonet.cxx", "src/hunspell/phonet.hxx", "src/hunspell/replist.cxx", "src/hunspell/replist.hxx", "src/hunspell/suggestmgr.cxx", "src/hunspell/suggestmgr.hxx", "src/hunspell/w_char.hxx", "src/parsers/textparser.cxx", "src/parsers/textparser.hxx", ] configs -= [ "//build/config/compiler:chromium_code" ] configs += [ "//build/config/compiler:no_chromium_code", # Must be after no_chromium_code for warning flags to be ordered correctly. ":hunspell_warnings", ] public_configs = [ ":hunspell_config" ] defines = [ "OPENOFFICEORG" ] deps = [ "//base", "//third_party/icu", ] cflags = [] if (is_win) { cflags += [ # TODO(jschuh): http://crbug.com/167187 size_t -> int "/wd4267", ] } if (is_posix && !is_mac && !is_clang) { cflags += [ "-Wno-unused-value", "-Wno-unused-variable", "-Wno-write-strings", ] } if (is_posix && !is_mac && !is_ios && !is_clang) { cflags += [ # affentry.hxx has NULL as default parameter for a FLAG in two # places. "-Wno-conversion-null", ] } if (is_clang) { cflags += [ # affentry.cxx has one `while ((p = nextchar(p)));` parsing loop. "-Wno-empty-body", # affentry.hxx has NULL as default parameter for a FLAG in two # places. "-Wno-null-conversion", ] } } fuzzer_test("hunspell_fuzzer") { sources = [ "fuzz/hunspell_fuzzer.cc", "fuzz/hunspell_fuzzer_hunspell_dictionary.h", ] deps = [ ":hunspell", "//base:base", ] # This is a dictionary for the fuzzer, not a spellcheck dictionary. dict = "fuzz/hunspell.dict" }