# 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", ] } }