| # 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("qcms_config") { |
| include_dirs = [ "src" ] |
| } |
| |
| disable_qcms = false |
| |
| static_library("qcms") { |
| if (disable_qcms) { |
| sources = [ |
| "src/empty.c", |
| ] |
| } else { |
| sources = [ |
| "src/chain.c", |
| "src/chain.h", |
| "src/iccread.c", |
| "src/matrix.c", |
| "src/matrix.h", |
| "src/qcms.h", |
| "src/qcms_util.c", |
| "src/qcmsint.h", |
| "src/qcmstypes.h", |
| "src/transform.c", |
| "src/transform_util.c", |
| "src/transform_util.h", |
| ] |
| |
| defines = [] |
| |
| if (current_cpu == "x86" || current_cpu == "x64") { |
| defines += [ "SSE2_ENABLE" ] |
| sources += [ "src/transform-sse2.c" ] |
| } |
| |
| if (use_fuzzing_engine) { |
| defines += [ "USE_LIBFUZZER" ] |
| } |
| } |
| |
| configs -= [ "//build/config/compiler:chromium_code" ] |
| configs += [ "//build/config/compiler:no_chromium_code" ] |
| public_configs = [ ":qcms_config" ] |
| |
| if (is_win) { |
| cflags = [ |
| "/wd4018", # Signed/unsigned mismatch in comparison. |
| "/wd4056", # Overflow in floating-point constant arithmetic (INFINITY). |
| "/wd4756", # Overflow in constant arithmetic (INFINITY). |
| ] |
| } |
| } |
| |
| # fuzzers BUILD depends on this target. Needed for package discovery |
| group("fuzzers") { |
| } |
| |
| fuzzer_test("qcms_color_space_fuzzer") { |
| sources = [ |
| "//testing/libfuzzer/fuzzers/color_space_data.h", |
| "qcms_color_space_fuzzer.cc", |
| ] |
| deps = [ |
| ":qcms", |
| "//base", |
| ] |
| dict = "//testing/libfuzzer/fuzzers/dicts/icc.dict" |
| libfuzzer_options = [ "max_len=4194304" ] |
| } |
| |
| if (!disable_qcms) { |
| executable("qcms_tests") { |
| if (current_cpu == "x86" || current_cpu == "x64") { |
| defines = [ "SSE2_ENABLE" ] |
| } |
| sources = [ |
| "src/tests/qcms_test_internal_srgb.c", |
| "src/tests/qcms_test_main.c", |
| "src/tests/qcms_test_munsell.c", |
| "src/tests/qcms_test_ntsc_gamut.c", |
| "src/tests/qcms_test_output_trc.c", |
| "src/tests/qcms_test_tetra_clut_rgba.c", |
| "src/tests/qcms_test_util.c", |
| ] |
| |
| deps = [ |
| "//build/win:default_exe_manifest", |
| "//third_party/qcms", |
| ] |
| |
| configs -= [ "//build/config/compiler:chromium_code" ] |
| configs += [ "//build/config/compiler:no_chromium_code" ] |
| public_configs = [ ":qcms_config" ] |
| } |
| } |