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