| # Copyright 2017 The Chromium Authors |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| import("//build/buildflag_header.gni") |
| import("//build/config/chromeos/ui_mode.gni") |
| import("//build/config/features.gni") |
| import("//build/config/sanitizers/sanitizers.gni") |
| import("//chrome/services/file_util/public/features.gni") |
| import("//components/safe_browsing/buildflags.gni") |
| import("//testing/test.gni") |
| |
| source_set("file_util") { |
| sources = [ |
| "file_util_service.cc", |
| "file_util_service.h", |
| ] |
| |
| configs += [ "//build/config/compiler:wexit_time_destructors" ] |
| |
| deps = [ |
| ":buildflags", |
| "//base", |
| "//build:chromeos_buildflags", |
| "//components/safe_browsing:buildflags", |
| "//extensions/buildflags:buildflags", |
| "//mojo/public/cpp/bindings", |
| "//third_party/zlib", |
| ] |
| |
| public_deps = [ |
| "//chrome/services/file_util/public/mojom", |
| "//components/safe_browsing/core/common:common", |
| "//mojo/public/cpp/bindings", |
| "//mojo/public/mojom/base", |
| ] |
| |
| if (is_chromeos_ash) { |
| sources += [ |
| "zip_file_creator.cc", |
| "zip_file_creator.h", |
| ] |
| |
| deps += [ "//components/services/filesystem/public/mojom" ] |
| } |
| |
| if (is_mac) { |
| deps += [ "//chrome/utility/safe_browsing" ] |
| } |
| |
| if (safe_browsing_mode == 1) { |
| sources += [ |
| "safe_archive_analyzer.cc", |
| "safe_archive_analyzer.h", |
| ] |
| |
| if (is_linux || is_win) { |
| sources += [ |
| "document_analysis_service.cc", |
| "document_analysis_service.h", |
| "safe_document_analyzer.cc", |
| "safe_document_analyzer.h", |
| ] |
| } |
| |
| deps += [ |
| "//chrome/common/safe_browsing", |
| "//chrome/common/safe_browsing:archive_analyzer_results", |
| "//chrome/utility/safe_browsing", |
| ] |
| |
| if (is_linux || is_win) { |
| deps += [ |
| "//chrome/common/safe_browsing:document_analyzer_results", |
| "//chrome/utility/safe_browsing:document_analyzer", |
| ] |
| } |
| } |
| |
| if (enable_extractors) { |
| sources += [ |
| "single_file_tar_file_extractor.cc", |
| "single_file_tar_file_extractor.h", |
| "single_file_tar_reader.cc", |
| "single_file_tar_reader.h", |
| "single_file_tar_xz_file_extractor.cc", |
| "single_file_tar_xz_file_extractor.h", |
| ] |
| deps += [ |
| "//third_party/lzma_sdk:lzma_sdk", |
| "//third_party/lzma_sdk:lzma_sdk_xz", |
| ] |
| } |
| } |
| |
| source_set("unit_tests") { |
| testonly = true |
| |
| if (enable_extractors) { |
| sources = [ |
| "single_file_tar_file_extractor_unittest.cc", |
| "single_file_tar_reader_unittest.cc", |
| "single_file_tar_xz_file_extractor_unittest.cc", |
| ] |
| |
| deps = [ |
| ":file_util", |
| "//base/test:test_support", |
| "//chrome/common:constants", |
| "//testing/gmock", |
| "//testing/gtest", |
| ] |
| } |
| } |
| |
| source_set("test_support") { |
| testonly = true |
| sources = [ |
| "fake_file_util_service.cc", |
| "fake_file_util_service.h", |
| ] |
| |
| if (is_linux || is_win) { |
| sources += [ |
| "fake_document_analysis_service.cc", |
| "fake_document_analysis_service.h", |
| ] |
| } |
| |
| deps = [ |
| ":buildflags", |
| "//base", |
| "//build:chromeos_buildflags", |
| "//chrome/services/file_util/public/mojom:mojom", |
| "//components/safe_browsing:buildflags", |
| "//extensions/buildflags:buildflags", |
| "//mojo/public/cpp/bindings", |
| "//testing/gmock", |
| "//third_party/abseil-cpp:absl", |
| ] |
| } |
| |
| buildflag_header("buildflags") { |
| header = "buildflags.h" |
| flags = [ |
| "ENABLE_EXTRACTORS=$enable_extractors", |
| "ENABLE_MALDOCA=$enable_maldoca", |
| ] |
| } |
| |
| if (enable_extractors) { |
| test("single_file_tar_reader_fuzzer") { |
| sources = [ "single_file_tar_reader_fuzzer.cc" ] |
| |
| fuzztests = [ "SingleFileTarReaderTest.ExtractChunkNeverCrashes" ] |
| |
| deps = [ |
| ":file_util", |
| "//third_party/fuzztest:fuzztest_gtest_main", |
| ] |
| |
| if (safe_browsing_mode == 1) { |
| deps += [ "//chrome/common:common" ] |
| } |
| |
| if (is_mac) { |
| frameworks = [ "AppKit.framework" ] |
| } |
| } |
| } |