# Copyright 2014 The Chromium Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
import("//chrome/common/features.gni")
import("//components/safe_browsing/buildflags.gni")
import("//third_party/protobuf/proto_library.gni")
assert(!is_fuchsia, "Fuchsia shouldn't use anything in //chrome")
proto_library("proto") {
sources = [ "crx_info.proto" ]
}
if (safe_browsing_mode == 1) {
source_set("archive_analyzer_results") {
sources = [
"archive_analyzer_results.cc",
"archive_analyzer_results.h",
]
configs += [ "//build/config/compiler:wexit_time_destructors" ]
deps = [
":binary_feature_extractor",
":download_type_util",
"//base",
"//base:i18n",
"//components/safe_browsing/content/common:file_type_policies",
"//crypto",
]
if (is_mac) {
deps += [ ":disk_image_type_sniffer_mac" ]
}
public_deps = [
"//components/safe_browsing/content/common/proto:download_file_types_proto",
"//components/safe_browsing/core/common/proto:csd_proto",
]
}
source_set("download_type_util") {
sources = [
"download_type_util.cc",
"download_type_util.h",
]
configs += [ "//build/config/compiler:wexit_time_destructors" ]
deps = [
"//base",
"//components/safe_browsing/content/common:file_type_policies",
"//components/safe_browsing/core/common",
]
public_deps = [ "//components/safe_browsing/core/common/proto:csd_proto" ]
}
if (is_mac) {
source_set("disk_image_type_sniffer_mac") {
sources = [
"disk_image_type_sniffer_mac.cc",
"disk_image_type_sniffer_mac.h",
]
configs += [ "//build/config/compiler:wexit_time_destructors" ]
deps = [ "//base" ]
}
}
source_set("binary_feature_extractor") {
sources = [
"binary_feature_extractor.cc",
"binary_feature_extractor.h",
]
configs += [ "//build/config/compiler:wexit_time_destructors" ]
if (is_mac) {
sources += [
"binary_feature_extractor_mac.cc",
"mach_o_image_reader_mac.cc",
"mach_o_image_reader_mac.h",
]
} else if (is_win) {
sources += [ "binary_feature_extractor_win.cc" ]
}
if (is_posix) {
sources += [ "binary_feature_extractor_posix.cc" ]
}
public_deps = [
"//base",
"//components/safe_browsing/core/common/proto:csd_proto",
"//crypto",
]
}
source_set("mock_binary_feature_extractor") {
testonly = true
sources = [
"mock_binary_feature_extractor.cc",
"mock_binary_feature_extractor.h",
]
deps = [
":binary_feature_extractor",
"//testing/gmock",
]
}
}
source_set("safe_browsing") {
deps = []
if (safe_browsing_mode != 0) {
deps += [ "//components/safe_browsing/content/common:file_type_policies" ]
}
if (safe_browsing_mode == 1) {
sources = [
"ipc_protobuf_message_macros.h",
"ipc_protobuf_message_null_macros.h",
"protobuf_message_log_macros.h",
"protobuf_message_read_macros.h",
"protobuf_message_write_macros.h",
]
configs += [ "//build/config/compiler:wexit_time_destructors" ]
deps += [
":archive_analyzer_results",
":binary_feature_extractor",
":download_type_util",
"//base",
"//base:i18n",
"//components/safe_browsing/content/common:file_type_policies",
"//components/safe_browsing/core/common",
"//third_party/lzma_sdk/google:seven_zip_reader",
]
if (safe_browsing_use_unrar) {
deps += [ "//third_party/unrar" ]
}
public_deps = [
":proto",
"//base:i18n",
"//chrome/common:mojo_bindings",
"//components/safe_browsing/core/common/proto:csd_proto",
"//crypto",
"//ipc",
"//third_party/zlib/google:zip",
]
}
}