blob: d15ef5d772d9fadaa330994167f54157dd0f1678 [file] [log] [blame]
# Copyright 2018 The Chromium OS 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("//common-mk/generate-dbus-adaptors.gni")
import("//common-mk/pkg_config.gni")
group("all") {
deps = [ ":smbproviderd" ]
if (use.test) {
deps += [ ":smbprovider_test" ]
}
if (use.fuzzer) {
deps += [ ":netbios_packet_fuzzer" ]
}
}
pkg_config("target_defaults") {
# NOSORT
pkg_deps = [
"libbrillo",
"libchrome",
"libpasswordprovider",
"smbclient",
# system_api depends on protobuf (or protobuf-lite). It must
# appear before protobuf or the linker flags won"t be in the right
# order.
"system_api",
]
if (use.fuzzer) {
pkg_deps += [ "protobuf" ]
} else {
pkg_deps += [ "protobuf-lite" ]
}
}
generate_dbus_adaptors("smbproviderd_adaptors") {
dbus_adaptors_out_dir = "include/dbus_adaptors"
dbus_service_config = "dbus_bindings/dbus-service-config.json"
sources = [ "dbus_bindings/org.chromium.SmbProvider.xml" ]
}
static_library("libsmbprovider") {
sources = [
"authpolicy_kerberos_artifact_client.cc",
"authpolicy_kerberos_artifact_client.h",
"constants.cc",
"constants.h",
"copy_progress_interface.h",
"file_copy_progress.cc",
"file_copy_progress.h",
"id_map.h",
"iterator/caching_iterator.h",
"iterator/depth_first_iterator.cc",
"iterator/depth_first_iterator.h",
"iterator/directory_iterator.cc",
"iterator/directory_iterator.h",
"iterator/post_depth_first_iterator.cc",
"iterator/post_depth_first_iterator.h",
"iterator/pre_depth_first_iterator.cc",
"iterator/pre_depth_first_iterator.h",
"iterator/share_iterator.h",
"kerberos_artifact_client_interface.h",
"kerberos_artifact_synchronizer.cc",
"kerberos_artifact_synchronizer.h",
"kerberos_kerberos_artifact_client.cc",
"kerberos_kerberos_artifact_client.h",
"metadata_cache.cc",
"metadata_cache.h",
"mount_manager.cc",
"mount_manager.h",
"mount_tracker.cc",
"mount_tracker.h",
"netbios_packet_parser.cc",
"netbios_packet_parser.h",
"proto.cc",
"proto.h",
"read_dir_progress.cc",
"read_dir_progress.h",
"recursive_copy_progress.cc",
"recursive_copy_progress.h",
"samba_interface.h",
"samba_interface_impl.cc",
"samba_interface_impl.h",
"smbprovider.cc",
"smbprovider.h",
"smbprovider_helper.cc",
"smbprovider_helper.h",
"temp_file_manager.cc",
"temp_file_manager.h",
]
configs += [ ":target_defaults" ]
deps = [ ":smbproviderd_adaptors" ]
}
executable("smbproviderd") {
sources = [ "smbprovider_main.cc" ]
configs += [ ":target_defaults" ]
libs = [ "installattributes" ]
deps = [ ":libsmbprovider" ]
}
# Unit tests.
if (use.test) {
pkg_config("smbprovider_test_config") {
pkg_deps = [ "libchrome-test" ]
}
executable("smbprovider_test") {
sources = [
"fake_kerberos_artifact_client.cc",
"fake_kerberos_artifact_client.h",
"fake_samba_interface.cc",
"fake_samba_interface.h",
"fake_samba_proxy.cc",
"fake_samba_proxy.h",
"fake_samba_test.cc",
"file_copy_progress_test.cc",
"id_map_test.cc",
"iterator/caching_iterator_test.cc",
"iterator/depth_first_iterator_test.cc",
"iterator/directory_iterator_test.cc",
"iterator/post_depth_first_iterator_test.cc",
"iterator/pre_depth_first_iterator_test.cc",
"iterator/share_iterator_test.cc",
"kerberos_artifact_synchronizer_test.cc",
"metadata_cache_test.cc",
"mount_manager_test.cc",
"mount_tracker_test.cc",
"netbios_packet_parser_test.cc",
"proto_test.cc",
"read_dir_progress_test.cc",
"recursive_copy_progress_test.cc",
"smbprovider_helper_test.cc",
"smbprovider_test.cc",
"smbprovider_test_helper.cc",
"smbprovider_test_helper.h",
"temp_file_manager_test.cc",
]
configs += [
"//common-mk:test",
":target_defaults",
]
deps = [
":libsmbprovider",
"//common-mk/testrunner:testrunner",
]
}
}
# Fuzzer target.
if (use.fuzzer) {
executable("netbios_packet_fuzzer") {
sources = [ "netbios_packet_fuzzer.cc" ]
configs += [
"//common-mk/common_fuzzer:common_fuzzer",
":target_defaults",
]
deps = [ ":libsmbprovider" ]
}
}