| # Copyright (C) 2018 The Android Open Source Project |
| # |
| # Licensed under the Apache License, Version 2.0 (the "License"); |
| # you may not use this file except in compliance with the License. |
| # You may obtain a copy of the License at |
| # |
| # http://www.apache.org/licenses/LICENSE-2.0 |
| # |
| # Unless required by applicable law or agreed to in writing, software |
| # distributed under the License is distributed on an "AS IS" BASIS, |
| # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| # See the License for the specific language governing permissions and |
| # limitations under the License. |
| |
| import("//common-mk/pkg_config.gni") |
| |
| group("all") { |
| deps = [ |
| ":bsdiff", |
| ":bspatch", |
| ":libbsdiff", |
| ":libbspatch", |
| ] |
| if (use.test) { |
| deps += [ ":bsdiff_test" ] |
| } |
| if (use.fuzzer) { |
| deps += [ ":bspatch_fuzzer" ] |
| } |
| } |
| |
| config("target_defaults") { |
| cflags = [ |
| "-Wextra", |
| "-Wno-unused-parameter", |
| ] |
| cflags_cc = [ "-Wnon-virtual-dtor" ] |
| defines = [ "_FILE_OFFSET_BITS=64" ] |
| include_dirs = [ |
| "include", |
| # We need this include dir because we include all the local code as |
| # "bsdiff/...". |
| "${platform2_root}/../aosp/external", |
| ] |
| libs = [ "bz2" ] |
| } |
| |
| pkg_config("libbspatch_config") { |
| pkg_deps = [ "libbrotlidec" ] |
| } |
| |
| static_library("libbspatch") { |
| configs += [ |
| "//common-mk:nouse_thin_archive", |
| ":target_defaults", |
| ":libbspatch_config" |
| ] |
| configs -= [ "//common-mk:use_thin_archive" ] |
| sources = [ |
| "brotli_decompressor.cc", |
| "bspatch.cc", |
| "buffer_file.cc", |
| "bz2_decompressor.cc", |
| "decompressor_interface.cc", |
| "extents.cc", |
| "extents_file.cc", |
| "file.cc", |
| "logging.cc", |
| "memory_file.cc", |
| "patch_reader.cc", |
| "sink_file.cc", |
| "utils.cc", |
| ] |
| } |
| |
| executable("bspatch") { |
| configs += [ ":target_defaults" ] |
| deps = [ ":libbspatch" ] |
| sources = [ |
| "bspatch_main.cc", |
| ] |
| } |
| |
| pkg_config("libbsdiff_config") { |
| pkg_deps = [ |
| "libbrotlienc", |
| "libdivsufsort", |
| "libdivsufsort64", |
| ] |
| } |
| |
| static_library("libbsdiff") { |
| configs += [ |
| "//common-mk:nouse_thin_archive", |
| ":target_defaults", |
| ":libbsdiff_config", |
| ] |
| configs -= [ "//common-mk:use_thin_archive" ] |
| sources = [ |
| "brotli_compressor.cc", |
| "bsdiff.cc", |
| "bz2_compressor.cc", |
| "compressor_buffer.cc", |
| "diff_encoder.cc", |
| "endsley_patch_writer.cc", |
| "logging.cc", |
| "patch_writer.cc", |
| "patch_writer_factory.cc", |
| "split_patch_writer.cc", |
| "suffix_array_index.cc", |
| ] |
| } |
| |
| executable("bsdiff") { |
| configs += [ ":target_defaults" ] |
| deps = [ ":libbsdiff" ] |
| sources = [ |
| "bsdiff_arguments.cc", |
| "bsdiff_main.cc", |
| ] |
| } |
| |
| if (use.test) { |
| executable("bsdiff_test") { |
| configs += [ |
| "//common-mk:test", |
| ":target_defaults", |
| ] |
| deps = [ |
| "//common-mk/testrunner", |
| ":libbspatch", |
| ":libbsdiff", |
| ] |
| sources = [ |
| "brotli_compressor_unittest.cc", |
| "brotli_decompressor_unittest.cc", |
| "bsdiff_arguments.cc", |
| "bsdiff_arguments_unittest.cc", |
| "bsdiff_unittest.cc", |
| "bspatch_unittest.cc", |
| "bz2_decompressor_unittest.cc", |
| "diff_encoder_unittest.cc", |
| "endsley_patch_writer_unittest.cc", |
| "extents_file_unittest.cc", |
| "extents_unittest.cc", |
| "patch_reader_unittest.cc", |
| "patch_writer_unittest.cc", |
| "split_patch_writer_unittest.cc", |
| "suffix_array_index_unittest.cc", |
| "test_utils.cc", |
| ] |
| } |
| } |
| |
| if (use.fuzzer) { |
| executable("bspatch_fuzzer") { |
| configs += [ |
| "//common-mk/common_fuzzer", |
| ":target_defaults", |
| ] |
| deps = [ ":libbspatch" ] |
| sources = [ |
| "bspatch_fuzzer.cc", |
| ] |
| } |
| } |