blob: 691f32d68b24d0a57c0d88d366f527f889b14036 [file] [log] [blame]
# Copyright 2017 The Fuchsia Authors. All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are
# met:
#
# * Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
# * Redistributions in binary form must reproduce the above
# copyright notice, this list of conditions and the following disclaimer
# in the documentation and/or other materials provided with the
# distribution.
# * Neither the name of Google Inc. nor the names of its
# contributors may be used to endorse or promote products derived from
# this software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
config("archive_private_config") {
visibility = [ ":*" ]
defines = [ "HAVE_CONFIG_H" ]
include_dirs = [ target_gen_dir ]
}
config("archive_config") {
include_dirs = [ "libarchive" ]
}
copy("copy_archive_config") {
visibility = [ ":*" ]
if (is_fuchsia) {
sources = [
"config.h.fuchsia",
]
} else {
sources = [
"config.h",
]
}
outputs = [
"$target_gen_dir/config.h",
]
}
group("archive_settings") {
visibility = [ ":*" ]
public_configs = [ ":archive_private_config" ]
deps = [
":copy_archive_config",
]
}
target(default_library_type, "archive") {
public_configs = [ ":archive_config" ]
public = [
"libarchive/archive.h",
"libarchive/archive_entry.h",
]
sources = [
"libarchive/archive_acl.c",
"libarchive/archive_acl_private.h",
"libarchive/archive_check_magic.c",
"libarchive/archive_cmdline.c",
"libarchive/archive_cmdline_private.h",
"libarchive/archive_crc32.h",
"libarchive/archive_cryptor.c",
"libarchive/archive_cryptor_private.h",
"libarchive/archive_digest.c",
"libarchive/archive_digest_private.h",
"libarchive/archive_endian.h",
"libarchive/archive_entry.c",
"libarchive/archive_entry.h",
"libarchive/archive_entry_copy_stat.c",
"libarchive/archive_entry_link_resolver.c",
"libarchive/archive_entry_locale.h",
"libarchive/archive_entry_private.h",
"libarchive/archive_entry_sparse.c",
"libarchive/archive_entry_stat.c",
"libarchive/archive_entry_strmode.c",
"libarchive/archive_entry_xattr.c",
"libarchive/archive_getdate.c",
"libarchive/archive_getdate.h",
"libarchive/archive_hmac.c",
"libarchive/archive_hmac_private.h",
"libarchive/archive_match.c",
"libarchive/archive_openssl_evp_private.h",
"libarchive/archive_openssl_hmac_private.h",
"libarchive/archive_options.c",
"libarchive/archive_options_private.h",
"libarchive/archive_pack_dev.c",
"libarchive/archive_pack_dev.h",
"libarchive/archive_pathmatch.c",
"libarchive/archive_pathmatch.h",
"libarchive/archive_platform.h",
"libarchive/archive_platform_acl.h",
"libarchive/archive_platform_xattr.h",
"libarchive/archive_ppmd7.c",
"libarchive/archive_ppmd7_private.h",
"libarchive/archive_ppmd_private.h",
"libarchive/archive_private.h",
"libarchive/archive_random.c",
"libarchive/archive_random_private.h",
"libarchive/archive_rb.c",
"libarchive/archive_rb.h",
"libarchive/archive_read.c",
"libarchive/archive_read_add_passphrase.c",
"libarchive/archive_read_append_filter.c",
"libarchive/archive_read_data_into_fd.c",
"libarchive/archive_read_disk_entry_from_file.c",
"libarchive/archive_read_disk_posix.c",
"libarchive/archive_read_disk_private.h",
"libarchive/archive_read_disk_set_standard_lookup.c",
"libarchive/archive_read_extract.c",
"libarchive/archive_read_extract2.c",
"libarchive/archive_read_open_fd.c",
"libarchive/archive_read_open_file.c",
"libarchive/archive_read_open_filename.c",
"libarchive/archive_read_open_memory.c",
"libarchive/archive_read_private.h",
"libarchive/archive_read_set_format.c",
"libarchive/archive_read_set_options.c",
"libarchive/archive_read_support_filter_all.c",
"libarchive/archive_read_support_filter_bzip2.c",
"libarchive/archive_read_support_filter_compress.c",
"libarchive/archive_read_support_filter_grzip.c",
"libarchive/archive_read_support_filter_gzip.c",
"libarchive/archive_read_support_filter_lrzip.c",
"libarchive/archive_read_support_filter_lz4.c",
"libarchive/archive_read_support_filter_lzop.c",
"libarchive/archive_read_support_filter_none.c",
"libarchive/archive_read_support_filter_program.c",
"libarchive/archive_read_support_filter_rpm.c",
"libarchive/archive_read_support_filter_uu.c",
"libarchive/archive_read_support_filter_xz.c",
"libarchive/archive_read_support_format_7zip.c",
"libarchive/archive_read_support_format_all.c",
"libarchive/archive_read_support_format_ar.c",
"libarchive/archive_read_support_format_by_code.c",
"libarchive/archive_read_support_format_cab.c",
"libarchive/archive_read_support_format_cpio.c",
"libarchive/archive_read_support_format_empty.c",
"libarchive/archive_read_support_format_iso9660.c",
"libarchive/archive_read_support_format_lha.c",
"libarchive/archive_read_support_format_mtree.c",
"libarchive/archive_read_support_format_rar.c",
"libarchive/archive_read_support_format_raw.c",
"libarchive/archive_read_support_format_tar.c",
"libarchive/archive_read_support_format_warc.c",
"libarchive/archive_read_support_format_xar.c",
"libarchive/archive_read_support_format_zip.c",
"libarchive/archive_string.c",
"libarchive/archive_string.h",
"libarchive/archive_string_composition.h",
"libarchive/archive_string_sprintf.c",
"libarchive/archive_util.c",
"libarchive/archive_version_details.c",
"libarchive/archive_virtual.c",
"libarchive/archive_write.c",
"libarchive/archive_write_add_filter.c",
"libarchive/archive_write_add_filter_b64encode.c",
"libarchive/archive_write_add_filter_by_name.c",
"libarchive/archive_write_add_filter_bzip2.c",
"libarchive/archive_write_add_filter_compress.c",
"libarchive/archive_write_add_filter_grzip.c",
"libarchive/archive_write_add_filter_gzip.c",
"libarchive/archive_write_add_filter_lrzip.c",
"libarchive/archive_write_add_filter_lz4.c",
"libarchive/archive_write_add_filter_lzop.c",
"libarchive/archive_write_add_filter_none.c",
"libarchive/archive_write_add_filter_program.c",
"libarchive/archive_write_add_filter_uuencode.c",
"libarchive/archive_write_add_filter_xz.c",
"libarchive/archive_write_disk_posix.c",
"libarchive/archive_write_disk_private.h",
"libarchive/archive_write_disk_set_standard_lookup.c",
"libarchive/archive_write_open_fd.c",
"libarchive/archive_write_open_file.c",
"libarchive/archive_write_open_filename.c",
"libarchive/archive_write_open_memory.c",
"libarchive/archive_write_private.h",
"libarchive/archive_write_set_format.c",
"libarchive/archive_write_set_format_7zip.c",
"libarchive/archive_write_set_format_ar.c",
"libarchive/archive_write_set_format_by_name.c",
"libarchive/archive_write_set_format_cpio.c",
"libarchive/archive_write_set_format_cpio_newc.c",
"libarchive/archive_write_set_format_filter_by_ext.c",
"libarchive/archive_write_set_format_gnutar.c",
"libarchive/archive_write_set_format_iso9660.c",
"libarchive/archive_write_set_format_mtree.c",
"libarchive/archive_write_set_format_pax.c",
"libarchive/archive_write_set_format_raw.c",
"libarchive/archive_write_set_format_shar.c",
"libarchive/archive_write_set_format_ustar.c",
"libarchive/archive_write_set_format_v7tar.c",
"libarchive/archive_write_set_format_warc.c",
"libarchive/archive_write_set_format_xar.c",
"libarchive/archive_write_set_format_zip.c",
"libarchive/archive_write_set_options.c",
"libarchive/archive_write_set_passphrase.c",
"libarchive/archive_xxhash.h",
"libarchive/filter_fork.h",
"libarchive/filter_fork_posix.c",
"libarchive/xxhash.c",
]
if (is_win) {
sources += [
"archive/archive_entry_copy_bhfi.c",
"archive/archive_read_disk_windows.c",
"archive/archive_windows.c",
"archive/archive_windows.h",
"archive/archive_write_disk_windows.c",
"archive/filter_fork_windows.c",
]
}
if (is_mac) {
sources += [ "archive/archive_disk_acl_darwin.c" ]
}
configs -= [ "//build/config:symbol_visibility_hidden" ]
deps = [
":archive_settings",
"//third_party/boringssl:crypto",
"//third_party/bzip2:bz2",
"//third_party/libxml2",
"//third_party/xz:lzma",
"//third_party/zlib",
]
}
executable("tar") {
include_dirs = [ "libarchive_fe" ]
sources = [
"libarchive_fe/err.c",
"libarchive_fe/err.h",
"libarchive_fe/lafe_platform.h",
"libarchive_fe/line_reader.c",
"libarchive_fe/line_reader.h",
"libarchive_fe/passphrase.c",
"libarchive_fe/passphrase.h",
"tar/bsdtar.c",
"tar/bsdtar.h",
"tar/bsdtar_platform.h",
"tar/cmdline.c",
"tar/creation_set.c",
"tar/read.c",
"tar/subst.c",
"tar/util.c",
"tar/write.c",
]
if (is_win) {
sources += [
"tar/bsdtar_windows.c",
"tar/bsdtar_windows.h",
]
}
deps = [
":archive",
":archive_settings",
]
}
executable("cpio") {
include_dirs = [ "libarchive_fe" ]
sources = [
"cpio/cmdline.c",
"cpio/cpio.c",
"cpio/cpio.h",
"cpio/cpio_platform.h",
"libarchive_fe/err.c",
"libarchive_fe/err.h",
"libarchive_fe/lafe_platform.h",
"libarchive_fe/line_reader.c",
"libarchive_fe/line_reader.h",
"libarchive_fe/passphrase.c",
"libarchive_fe/passphrase.h",
]
if (is_win) {
sources += [
"cpio/cpio_windows.c",
"cpio/cpio_windows.h",
]
}
deps = [
":archive",
":archive_settings",
]
}