| # 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("lzma_private_config") { |
| visibility = [ ":*" ] |
| defines = [ "HAVE_CONFIG_H" ] |
| include_dirs = [ target_gen_dir ] |
| } |
| |
| config("lzma_config") { |
| include_dirs = [ "src/liblzma/api" ] |
| } |
| |
| config("lzma_warnings") { |
| visibility = [ ":*" ] |
| cflags = [ "-Wno-sign-compare" ] |
| } |
| |
| copy("copy_lzma_config") { |
| visibility = [ ":*" ] |
| if (is_fuchsia) { |
| sources = [ |
| "config.h.fuchsia", |
| ] |
| } else { |
| sources = [ |
| "config.h", |
| ] |
| } |
| outputs = [ |
| "$target_gen_dir/config.h", |
| ] |
| } |
| |
| group("lzma_settings") { |
| visibility = [ ":*" ] |
| public_configs = [ ":lzma_private_config" ] |
| deps = [ |
| ":copy_lzma_config", |
| ] |
| } |
| |
| target(default_library_type, "lzma") { |
| public_configs = [ ":lzma_config" ] |
| include_dirs = [ |
| "src/common", |
| "src/liblzma/check", |
| "src/liblzma/common", |
| "src/liblzma/delta", |
| "src/liblzma/lz", |
| "src/liblzma/lzma", |
| "src/liblzma/rangecoder", |
| "src/liblzma/simple", |
| ] |
| sources = [ |
| "src/common/tuklib_cpucores.c", |
| "src/common/tuklib_cpucores.h", |
| "src/common/tuklib_physmem.c", |
| "src/common/tuklib_physmem.h", |
| "src/liblzma/check/check.c", |
| "src/liblzma/check/check.h", |
| "src/liblzma/check/crc32_table.c", |
| "src/liblzma/check/crc32_table_be.h", |
| "src/liblzma/check/crc32_table_le.h", |
| "src/liblzma/check/crc64_table.c", |
| "src/liblzma/check/crc64_table_be.h", |
| "src/liblzma/check/crc64_table_le.h", |
| "src/liblzma/check/crc_macros.h", |
| "src/liblzma/check/sha256.c", |
| "src/liblzma/common/alone_decoder.c", |
| "src/liblzma/common/alone_encoder.c", |
| "src/liblzma/common/auto_decoder.c", |
| "src/liblzma/common/block_buffer_decoder.c", |
| "src/liblzma/common/block_buffer_encoder.c", |
| "src/liblzma/common/block_decoder.c", |
| "src/liblzma/common/block_encoder.c", |
| "src/liblzma/common/block_header_decoder.c", |
| "src/liblzma/common/block_header_encoder.c", |
| "src/liblzma/common/block_util.c", |
| "src/liblzma/common/common.c", |
| "src/liblzma/common/common.h", |
| "src/liblzma/common/easy_buffer_encoder.c", |
| "src/liblzma/common/easy_decoder_memusage.c", |
| "src/liblzma/common/easy_encoder.c", |
| "src/liblzma/common/easy_encoder_memusage.c", |
| "src/liblzma/common/easy_preset.c", |
| "src/liblzma/common/filter_buffer_decoder.c", |
| "src/liblzma/common/filter_buffer_encoder.c", |
| "src/liblzma/common/filter_common.c", |
| "src/liblzma/common/filter_decoder.c", |
| "src/liblzma/common/filter_encoder.c", |
| "src/liblzma/common/filter_flags_decoder.c", |
| "src/liblzma/common/filter_flags_encoder.c", |
| "src/liblzma/common/hardware_cputhreads.c", |
| "src/liblzma/common/hardware_physmem.c", |
| "src/liblzma/common/index.c", |
| "src/liblzma/common/index_decoder.c", |
| "src/liblzma/common/index_encoder.c", |
| "src/liblzma/common/index_hash.c", |
| "src/liblzma/common/outqueue.c", |
| "src/liblzma/common/stream_buffer_decoder.c", |
| "src/liblzma/common/stream_buffer_encoder.c", |
| "src/liblzma/common/stream_decoder.c", |
| "src/liblzma/common/stream_encoder.c", |
| "src/liblzma/common/stream_encoder_mt.c", |
| "src/liblzma/common/stream_flags_common.c", |
| "src/liblzma/common/stream_flags_decoder.c", |
| "src/liblzma/common/stream_flags_encoder.c", |
| "src/liblzma/common/vli_decoder.c", |
| "src/liblzma/common/vli_encoder.c", |
| "src/liblzma/common/vli_size.c", |
| "src/liblzma/delta/delta_common.c", |
| "src/liblzma/delta/delta_common.h", |
| "src/liblzma/delta/delta_decoder.c", |
| "src/liblzma/delta/delta_decoder.h", |
| "src/liblzma/delta/delta_encoder.c", |
| "src/liblzma/delta/delta_encoder.h", |
| "src/liblzma/delta/delta_private.h", |
| "src/liblzma/lz/lz_decoder.c", |
| "src/liblzma/lz/lz_decoder.h", |
| "src/liblzma/lz/lz_encoder.c", |
| "src/liblzma/lz/lz_encoder.h", |
| "src/liblzma/lz/lz_encoder_hash.h", |
| "src/liblzma/lz/lz_encoder_hash_table.h", |
| "src/liblzma/lz/lz_encoder_mf.c", |
| "src/liblzma/lzma/fastpos.h", |
| "src/liblzma/lzma/fastpos_table.c", |
| "src/liblzma/lzma/lzma2_decoder.c", |
| "src/liblzma/lzma/lzma2_decoder.h", |
| "src/liblzma/lzma/lzma2_encoder.c", |
| "src/liblzma/lzma/lzma2_encoder.h", |
| "src/liblzma/lzma/lzma_decoder.c", |
| "src/liblzma/lzma/lzma_decoder.h", |
| "src/liblzma/lzma/lzma_encoder.c", |
| "src/liblzma/lzma/lzma_encoder.h", |
| "src/liblzma/lzma/lzma_encoder_optimum_fast.c", |
| "src/liblzma/lzma/lzma_encoder_optimum_normal.c", |
| "src/liblzma/lzma/lzma_encoder_presets.c", |
| "src/liblzma/lzma/lzma_encoder_private.h", |
| "src/liblzma/rangecoder/price.h", |
| "src/liblzma/rangecoder/price_common.h", |
| "src/liblzma/rangecoder/price_decoder.h", |
| "src/liblzma/rangecoder/price_encoder.h", |
| "src/liblzma/rangecoder/price_table.c", |
| "src/liblzma/simple/simple_coder.c", |
| "src/liblzma/simple/simple_coder.h", |
| "src/liblzma/simple/simple_decoder.c", |
| "src/liblzma/simple/simple_decoder.h", |
| "src/liblzma/simple/simple_encoder.c", |
| "src/liblzma/simple/simple_encoder.h", |
| "src/liblzma/simple/simple_private.h", |
| ] |
| if (current_cpu == "arm") { |
| sources += [ "src/liblzma/simple/arm.c" ] |
| } else if (current_cpu == "x86") { |
| sources += [ "src/liblzma/simple/x86.c" ] |
| } |
| if (current_cpu == "x86") { |
| sources += [ |
| "src/liblzma/check/crc32_x86.S", |
| "src/liblzma/check/crc64_x86.S", |
| ] |
| } else { |
| sources += [ |
| "src/liblzma/check/crc32_fast.c", |
| "src/liblzma/check/crc64_fast.c", |
| ] |
| } |
| configs += [ ":lzma_warnings" ] |
| configs -= [ "//build/config:symbol_visibility_hidden" ] |
| deps = [ |
| ":lzma_settings", |
| ] |
| } |
| |
| executable("lzmainfo") { |
| include_dirs = [ "src/common" ] |
| sources = [ |
| "src/common/tuklib_exit.c", |
| "src/common/tuklib_progname.c", |
| "src/lzmainfo/lzmainfo.c", |
| ] |
| if (is_win) { |
| sources += [ "src/lzmainfo/lzmainfo_w32res.rc" ] |
| } |
| deps = [ |
| ":lzma", |
| ] |
| } |
| |
| executable("xz") { |
| if (is_linux) { |
| defines = [ "_GNU_SOURCE" ] |
| } |
| include_dirs = [ "src/common" ] |
| sources = [ |
| "src/common/tuklib_exit.c", |
| "src/common/tuklib_mbstr_fw.c", |
| "src/common/tuklib_mbstr_width.c", |
| "src/common/tuklib_open_stdxxx.c", |
| "src/common/tuklib_progname.c", |
| "src/xz/args.c", |
| "src/xz/args.h", |
| "src/xz/coder.c", |
| "src/xz/coder.h", |
| "src/xz/file_io.c", |
| "src/xz/file_io.h", |
| "src/xz/hardware.c", |
| "src/xz/hardware.h", |
| "src/xz/list.c", |
| "src/xz/list.h", |
| "src/xz/main.c", |
| "src/xz/main.h", |
| "src/xz/message.c", |
| "src/xz/message.h", |
| "src/xz/mytime.c", |
| "src/xz/mytime.h", |
| "src/xz/options.c", |
| "src/xz/options.h", |
| "src/xz/private.h", |
| "src/xz/signals.c", |
| "src/xz/signals.h", |
| "src/xz/suffix.c", |
| "src/xz/suffix.h", |
| "src/xz/util.c", |
| "src/xz/util.h", |
| ] |
| if (is_win) { |
| sources += [ "src/xz/xz_w32res.rc" ] |
| } |
| deps = [ |
| ":lzma", |
| ":lzma_settings", |
| ] |
| } |
| |
| executable("xzdec") { |
| if (is_linux) { |
| defines = [ "_GNU_SOURCE" ] |
| } |
| include_dirs = [ "src/common" ] |
| sources = [ |
| "src/common/tuklib_exit.c", |
| "src/common/tuklib_progname.c", |
| "src/xzdec/xzdec.c", |
| ] |
| if (is_win) { |
| sources += [ "src/xzdec/xzdec_w32res.rc" ] |
| } |
| deps = [ |
| ":lzma", |
| ":lzma_settings", |
| ] |
| } |