1*a3a45f30SXin Li// Copyright (C) 2008 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 Lipackage { 16*a3a45f30SXin Li default_applicable_licenses: ["external_bsdiff_license"], 17*a3a45f30SXin Li} 18*a3a45f30SXin Li 19*a3a45f30SXin Lilicense { 20*a3a45f30SXin Li name: "external_bsdiff_license", 21*a3a45f30SXin Li visibility: [":__subpackages__"], 22*a3a45f30SXin Li license_kinds: ["SPDX-license-identifier-Apache-2.0","SPDX-license-identifier-BSD"], 23*a3a45f30SXin Li license_text: ["LICENSE"], 24*a3a45f30SXin Li} 25*a3a45f30SXin Li 26*a3a45f30SXin Licc_defaults { 27*a3a45f30SXin Li name: "bsdiff_defaults", 28*a3a45f30SXin Li host_supported: true, 29*a3a45f30SXin Li static_libs: ["libbz", "libbrotli"], 30*a3a45f30SXin Li // Allow internal includes to be referenced with the "bsdiff/" prefix in the 31*a3a45f30SXin Li // path. 32*a3a45f30SXin Li include_dirs: ["external"], 33*a3a45f30SXin Li export_include_dirs: ["include"], 34*a3a45f30SXin Li cflags: [ 35*a3a45f30SXin Li "-D_FILE_OFFSET_BITS=64", 36*a3a45f30SXin Li "-Wall", 37*a3a45f30SXin Li "-Werror", 38*a3a45f30SXin Li "-Wextra", 39*a3a45f30SXin Li "-Wno-unused-parameter", 40*a3a45f30SXin Li ], 41*a3a45f30SXin Li} 42*a3a45f30SXin Li 43*a3a45f30SXin Li// Host and target static libraries. 44*a3a45f30SXin Licc_library_static { 45*a3a45f30SXin Li name: "libbspatch", 46*a3a45f30SXin Li defaults: ["bsdiff_defaults"], 47*a3a45f30SXin Li vendor_available: true, 48*a3a45f30SXin Li recovery_available: true, 49*a3a45f30SXin Li 50*a3a45f30SXin Li visibility: [ 51*a3a45f30SXin Li "//bootable/recovery:__subpackages__", 52*a3a45f30SXin Li "//bootable/deprecated-ota:__subpackages__", 53*a3a45f30SXin Li "//external/puffin:__subpackages__", 54*a3a45f30SXin Li "//system/update_engine:__subpackages__", 55*a3a45f30SXin Li "//system/core/fs_mgr/libsnapshot:__subpackages__", 56*a3a45f30SXin Li ], 57*a3a45f30SXin Li 58*a3a45f30SXin Li srcs: [ 59*a3a45f30SXin Li "brotli_decompressor.cc", 60*a3a45f30SXin Li "bspatch.cc", 61*a3a45f30SXin Li "bz2_decompressor.cc", 62*a3a45f30SXin Li "buffer_file.cc", 63*a3a45f30SXin Li "decompressor_interface.cc", 64*a3a45f30SXin Li "extents.cc", 65*a3a45f30SXin Li "extents_file.cc", 66*a3a45f30SXin Li "file.cc", 67*a3a45f30SXin Li "logging.cc", 68*a3a45f30SXin Li "memory_file.cc", 69*a3a45f30SXin Li "patch_reader.cc", 70*a3a45f30SXin Li "sink_file.cc", 71*a3a45f30SXin Li "utils.cc", 72*a3a45f30SXin Li ], 73*a3a45f30SXin Li} 74*a3a45f30SXin Li 75*a3a45f30SXin Licc_library_static { 76*a3a45f30SXin Li name: "libbsdiff", 77*a3a45f30SXin Li recovery_available: true, 78*a3a45f30SXin Li defaults: ["bsdiff_defaults"], 79*a3a45f30SXin Li 80*a3a45f30SXin Li srcs: [ 81*a3a45f30SXin Li "brotli_compressor.cc", 82*a3a45f30SXin Li "bsdiff.cc", 83*a3a45f30SXin Li "bz2_compressor.cc", 84*a3a45f30SXin Li "compressor_buffer.cc", 85*a3a45f30SXin Li "diff_encoder.cc", 86*a3a45f30SXin Li "endsley_patch_writer.cc", 87*a3a45f30SXin Li "logging.cc", 88*a3a45f30SXin Li "patch_writer.cc", 89*a3a45f30SXin Li "patch_writer_factory.cc", 90*a3a45f30SXin Li "split_patch_writer.cc", 91*a3a45f30SXin Li "suffix_array_index.cc", 92*a3a45f30SXin Li ], 93*a3a45f30SXin Li static_libs: [ 94*a3a45f30SXin Li "libdivsufsort64", 95*a3a45f30SXin Li "libdivsufsort", 96*a3a45f30SXin Li "libbrotli", 97*a3a45f30SXin Li ], 98*a3a45f30SXin Li} 99*a3a45f30SXin Li 100*a3a45f30SXin Li// Host executables: bsdiff and bspatch are only built for the host. 101*a3a45f30SXin Licc_binary_host { 102*a3a45f30SXin Li name: "bspatch", 103*a3a45f30SXin Li defaults: ["bsdiff_defaults"], 104*a3a45f30SXin Li 105*a3a45f30SXin Li srcs: ["bspatch_main.cc"], 106*a3a45f30SXin Li static_libs: [ 107*a3a45f30SXin Li "libbspatch", 108*a3a45f30SXin Li "libbz", 109*a3a45f30SXin Li "libbrotli", 110*a3a45f30SXin Li ], 111*a3a45f30SXin Li} 112*a3a45f30SXin Li 113*a3a45f30SXin Licc_binary_host { 114*a3a45f30SXin Li name: "bsdiff", 115*a3a45f30SXin Li defaults: ["bsdiff_defaults"], 116*a3a45f30SXin Li 117*a3a45f30SXin Li srcs: [ 118*a3a45f30SXin Li "bsdiff_arguments.cc", 119*a3a45f30SXin Li "bsdiff_main.cc", 120*a3a45f30SXin Li ], 121*a3a45f30SXin Li static_libs: [ 122*a3a45f30SXin Li "libbsdiff", 123*a3a45f30SXin Li "libdivsufsort64", 124*a3a45f30SXin Li "libdivsufsort", 125*a3a45f30SXin Li "libbz", 126*a3a45f30SXin Li "libbrotli", 127*a3a45f30SXin Li ], 128*a3a45f30SXin Li} 129*a3a45f30SXin Li 130*a3a45f30SXin Li// Unit tests. 131*a3a45f30SXin Licc_test { 132*a3a45f30SXin Li name: "bsdiff_unittest", 133*a3a45f30SXin Li defaults: ["bsdiff_defaults"], 134*a3a45f30SXin Li test_suites: ["device-tests"], 135*a3a45f30SXin Li srcs: [ 136*a3a45f30SXin Li "brotli_compressor_unittest.cc", 137*a3a45f30SXin Li "brotli_decompressor_unittest.cc", 138*a3a45f30SXin Li "bsdiff_arguments.cc", 139*a3a45f30SXin Li "bsdiff_arguments_unittest.cc", 140*a3a45f30SXin Li "bsdiff_unittest.cc", 141*a3a45f30SXin Li "bspatch_unittest.cc", 142*a3a45f30SXin Li "bz2_decompressor_unittest.cc", 143*a3a45f30SXin Li "diff_encoder_unittest.cc", 144*a3a45f30SXin Li "endsley_patch_writer_unittest.cc", 145*a3a45f30SXin Li "extents_file_unittest.cc", 146*a3a45f30SXin Li "extents_unittest.cc", 147*a3a45f30SXin Li "patch_reader_unittest.cc", 148*a3a45f30SXin Li "patch_writer_unittest.cc", 149*a3a45f30SXin Li "split_patch_writer_unittest.cc", 150*a3a45f30SXin Li "suffix_array_index_unittest.cc", 151*a3a45f30SXin Li "test_utils.cc", 152*a3a45f30SXin Li "testrunner.cc", 153*a3a45f30SXin Li ], 154*a3a45f30SXin Li static_libs: [ 155*a3a45f30SXin Li "libbsdiff", 156*a3a45f30SXin Li "libbspatch", 157*a3a45f30SXin Li "libgmock", 158*a3a45f30SXin Li "libdivsufsort64", 159*a3a45f30SXin Li "libdivsufsort", 160*a3a45f30SXin Li "libbz", 161*a3a45f30SXin Li "libbrotli", 162*a3a45f30SXin Li ], 163*a3a45f30SXin Li target: { 164*a3a45f30SXin Li android: { 165*a3a45f30SXin Li cflags: ["-DBSDIFF_TARGET_UNITTEST"], 166*a3a45f30SXin Li }, 167*a3a45f30SXin Li }, 168*a3a45f30SXin Li test_options: { 169*a3a45f30SXin Li unit_test: true, 170*a3a45f30SXin Li }, 171*a3a45f30SXin Li} 172