1*a3a45f30SXin Li# Copyright (C) 2018 The Android Open Source Project 2*a3a45f30SXin Li# 3*a3a45f30SXin Li# Licensed under the Apache License, Version 2.0 (the "License"); 4*a3a45f30SXin Li# you may not use this file except in compliance with the License. 5*a3a45f30SXin Li# You may obtain a copy of the License at 6*a3a45f30SXin Li# 7*a3a45f30SXin Li# http://www.apache.org/licenses/LICENSE-2.0 8*a3a45f30SXin Li# 9*a3a45f30SXin Li# Unless required by applicable law or agreed to in writing, software 10*a3a45f30SXin Li# distributed under the License is distributed on an "AS IS" BASIS, 11*a3a45f30SXin Li# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12*a3a45f30SXin Li# See the License for the specific language governing permissions and 13*a3a45f30SXin Li# limitations under the License. 14*a3a45f30SXin Li 15*a3a45f30SXin Liimport("//common-mk/pkg_config.gni") 16*a3a45f30SXin Li 17*a3a45f30SXin Ligroup("all") { 18*a3a45f30SXin Li deps = [ 19*a3a45f30SXin Li ":bsdiff", 20*a3a45f30SXin Li ":bspatch", 21*a3a45f30SXin Li ":libbsdiff", 22*a3a45f30SXin Li ":libbspatch", 23*a3a45f30SXin Li ] 24*a3a45f30SXin Li if (use.test) { 25*a3a45f30SXin Li deps += [ ":bsdiff_test" ] 26*a3a45f30SXin Li } 27*a3a45f30SXin Li if (use.fuzzer) { 28*a3a45f30SXin Li deps += [ ":bspatch_fuzzer" ] 29*a3a45f30SXin Li } 30*a3a45f30SXin Li} 31*a3a45f30SXin Li 32*a3a45f30SXin Liconfig("target_defaults") { 33*a3a45f30SXin Li cflags = [ 34*a3a45f30SXin Li "-Wextra", 35*a3a45f30SXin Li "-Wno-unused-parameter", 36*a3a45f30SXin Li ] 37*a3a45f30SXin Li cflags_cc = [ "-Wnon-virtual-dtor" ] 38*a3a45f30SXin Li defines = [ "_FILE_OFFSET_BITS=64" ] 39*a3a45f30SXin Li include_dirs = [ 40*a3a45f30SXin Li "include", 41*a3a45f30SXin Li # We need this include dir because we include all the local code as 42*a3a45f30SXin Li # "bsdiff/...". 43*a3a45f30SXin Li "${platform2_root}/../aosp/external", 44*a3a45f30SXin Li ] 45*a3a45f30SXin Li libs = [ "bz2" ] 46*a3a45f30SXin Li} 47*a3a45f30SXin Li 48*a3a45f30SXin Lipkg_config("libbspatch_config") { 49*a3a45f30SXin Li pkg_deps = [ "libbrotlidec" ] 50*a3a45f30SXin Li} 51*a3a45f30SXin Li 52*a3a45f30SXin Listatic_library("libbspatch") { 53*a3a45f30SXin Li configs += [ 54*a3a45f30SXin Li "//common-mk:nouse_thin_archive", 55*a3a45f30SXin Li ":target_defaults", 56*a3a45f30SXin Li ":libbspatch_config" 57*a3a45f30SXin Li ] 58*a3a45f30SXin Li configs -= [ "//common-mk:use_thin_archive" ] 59*a3a45f30SXin Li sources = [ 60*a3a45f30SXin Li "brotli_decompressor.cc", 61*a3a45f30SXin Li "bspatch.cc", 62*a3a45f30SXin Li "buffer_file.cc", 63*a3a45f30SXin Li "bz2_decompressor.cc", 64*a3a45f30SXin Li "decompressor_interface.cc", 65*a3a45f30SXin Li "extents.cc", 66*a3a45f30SXin Li "extents_file.cc", 67*a3a45f30SXin Li "file.cc", 68*a3a45f30SXin Li "logging.cc", 69*a3a45f30SXin Li "memory_file.cc", 70*a3a45f30SXin Li "patch_reader.cc", 71*a3a45f30SXin Li "sink_file.cc", 72*a3a45f30SXin Li "utils.cc", 73*a3a45f30SXin Li ] 74*a3a45f30SXin Li} 75*a3a45f30SXin Li 76*a3a45f30SXin Liexecutable("bspatch") { 77*a3a45f30SXin Li configs += [ ":target_defaults" ] 78*a3a45f30SXin Li deps = [ ":libbspatch" ] 79*a3a45f30SXin Li sources = [ 80*a3a45f30SXin Li "bspatch_main.cc", 81*a3a45f30SXin Li ] 82*a3a45f30SXin Li} 83*a3a45f30SXin Li 84*a3a45f30SXin Lipkg_config("libbsdiff_config") { 85*a3a45f30SXin Li pkg_deps = [ 86*a3a45f30SXin Li "libbrotlienc", 87*a3a45f30SXin Li "libdivsufsort", 88*a3a45f30SXin Li "libdivsufsort64", 89*a3a45f30SXin Li ] 90*a3a45f30SXin Li} 91*a3a45f30SXin Li 92*a3a45f30SXin Listatic_library("libbsdiff") { 93*a3a45f30SXin Li configs += [ 94*a3a45f30SXin Li "//common-mk:nouse_thin_archive", 95*a3a45f30SXin Li ":target_defaults", 96*a3a45f30SXin Li ":libbsdiff_config", 97*a3a45f30SXin Li ] 98*a3a45f30SXin Li configs -= [ "//common-mk:use_thin_archive" ] 99*a3a45f30SXin Li sources = [ 100*a3a45f30SXin Li "brotli_compressor.cc", 101*a3a45f30SXin Li "bsdiff.cc", 102*a3a45f30SXin Li "bz2_compressor.cc", 103*a3a45f30SXin Li "compressor_buffer.cc", 104*a3a45f30SXin Li "diff_encoder.cc", 105*a3a45f30SXin Li "endsley_patch_writer.cc", 106*a3a45f30SXin Li "logging.cc", 107*a3a45f30SXin Li "patch_writer.cc", 108*a3a45f30SXin Li "patch_writer_factory.cc", 109*a3a45f30SXin Li "split_patch_writer.cc", 110*a3a45f30SXin Li "suffix_array_index.cc", 111*a3a45f30SXin Li ] 112*a3a45f30SXin Li} 113*a3a45f30SXin Li 114*a3a45f30SXin Liexecutable("bsdiff") { 115*a3a45f30SXin Li configs += [ ":target_defaults" ] 116*a3a45f30SXin Li deps = [ ":libbsdiff" ] 117*a3a45f30SXin Li sources = [ 118*a3a45f30SXin Li "bsdiff_arguments.cc", 119*a3a45f30SXin Li "bsdiff_main.cc", 120*a3a45f30SXin Li ] 121*a3a45f30SXin Li} 122*a3a45f30SXin Li 123*a3a45f30SXin Liif (use.test) { 124*a3a45f30SXin Li executable("bsdiff_test") { 125*a3a45f30SXin Li configs += [ 126*a3a45f30SXin Li "//common-mk:test", 127*a3a45f30SXin Li ":target_defaults", 128*a3a45f30SXin Li ] 129*a3a45f30SXin Li deps = [ 130*a3a45f30SXin Li "//common-mk/testrunner", 131*a3a45f30SXin Li ":libbspatch", 132*a3a45f30SXin Li ":libbsdiff", 133*a3a45f30SXin Li ] 134*a3a45f30SXin Li sources = [ 135*a3a45f30SXin Li "brotli_compressor_unittest.cc", 136*a3a45f30SXin Li "brotli_decompressor_unittest.cc", 137*a3a45f30SXin Li "bsdiff_arguments.cc", 138*a3a45f30SXin Li "bsdiff_arguments_unittest.cc", 139*a3a45f30SXin Li "bsdiff_unittest.cc", 140*a3a45f30SXin Li "bspatch_unittest.cc", 141*a3a45f30SXin Li "bz2_decompressor_unittest.cc", 142*a3a45f30SXin Li "diff_encoder_unittest.cc", 143*a3a45f30SXin Li "endsley_patch_writer_unittest.cc", 144*a3a45f30SXin Li "extents_file_unittest.cc", 145*a3a45f30SXin Li "extents_unittest.cc", 146*a3a45f30SXin Li "patch_reader_unittest.cc", 147*a3a45f30SXin Li "patch_writer_unittest.cc", 148*a3a45f30SXin Li "split_patch_writer_unittest.cc", 149*a3a45f30SXin Li "suffix_array_index_unittest.cc", 150*a3a45f30SXin Li "test_utils.cc", 151*a3a45f30SXin Li ] 152*a3a45f30SXin Li } 153*a3a45f30SXin Li} 154*a3a45f30SXin Li 155*a3a45f30SXin Liif (use.fuzzer) { 156*a3a45f30SXin Li executable("bspatch_fuzzer") { 157*a3a45f30SXin Li configs += [ 158*a3a45f30SXin Li "//common-mk/common_fuzzer", 159*a3a45f30SXin Li ":target_defaults", 160*a3a45f30SXin Li ] 161*a3a45f30SXin Li deps = [ ":libbspatch" ] 162*a3a45f30SXin Li sources = [ 163*a3a45f30SXin Li "bspatch_fuzzer.cc", 164*a3a45f30SXin Li ] 165*a3a45f30SXin Li } 166*a3a45f30SXin Li} 167