blob: 34b34428f5d596ea6600b191aeac3aebd5f82820 [file] [log] [blame]
Alex Deymo831dc452017-09-07 21:09:58 +02001// Copyright (C) 2008 The Android Open Source Project
2//
3// Licensed under the Apache License, Version 2.0 (the "License");
4// you may not use this file except in compliance with the License.
5// You may obtain a copy of the License at
6//
7// http://www.apache.org/licenses/LICENSE-2.0
8//
9// Unless required by applicable law or agreed to in writing, software
10// distributed under the License is distributed on an "AS IS" BASIS,
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12// See the License for the specific language governing permissions and
13// limitations under the License.
14
15cc_defaults {
16 name: "bsdiff_defaults",
17 host_supported: true,
Tianjie Xu1c26e2e2017-10-26 17:19:41 -070018 static_libs: ["libbz", "libbrotli"],
Alex Deymodcd423b2017-09-13 20:54:24 +020019 // Allow internal includes to be referenced with the "bsdiff/" prefix in the
20 // path.
21 include_dirs: ["external"],
Alex Deymocb620ca2017-10-30 11:51:38 +010022 export_include_dirs: ["include"],
Alex Deymo831dc452017-09-07 21:09:58 +020023 cflags: [
24 "-D_FILE_OFFSET_BITS=64",
25 "-Wall",
26 "-Werror",
27 "-Wextra",
28 "-Wno-unused-parameter",
29 ],
30}
31
32// Host and target static libraries.
33cc_library_static {
34 name: "libbspatch",
35 defaults: ["bsdiff_defaults"],
Bill Peckham64263b72019-09-17 16:48:12 -070036 vendor_available: true,
Dan Willemsen141f70a2018-10-23 13:44:38 -070037 recovery_available: true,
Alex Deymo831dc452017-09-07 21:09:58 +020038
Bill Peckham590b1fa2019-10-17 18:09:55 -070039 visibility: [
40 "//bootable/recovery:__subpackages__",
41 "//external/puffin:__subpackages__",
42 "//system/update_engine:__subpackages__",
David Anderson6caee522020-08-05 17:30:04 -070043 "//system/core/fs_mgr/libsnapshot:__subpackages__",
Bill Peckham590b1fa2019-10-17 18:09:55 -070044 ],
45
Alex Deymo831dc452017-09-07 21:09:58 +020046 srcs: [
Tianjie Xu4d10c3e2017-10-26 14:02:06 -070047 "brotli_decompressor.cc",
Alex Deymo831dc452017-09-07 21:09:58 +020048 "bspatch.cc",
Tianjie Xu65288122017-10-13 15:10:58 -070049 "bz2_decompressor.cc",
Alex Deymo831dc452017-09-07 21:09:58 +020050 "buffer_file.cc",
Tianjie Xu4d10c3e2017-10-26 14:02:06 -070051 "decompressor_interface.cc",
Alex Deymo831dc452017-09-07 21:09:58 +020052 "extents.cc",
53 "extents_file.cc",
54 "file.cc",
Tianjie Xu18480eb2017-11-29 16:21:43 -080055 "logging.cc",
Alex Deymo831dc452017-09-07 21:09:58 +020056 "memory_file.cc",
Tianjie Xu65288122017-10-13 15:10:58 -070057 "patch_reader.cc",
Alex Deymo831dc452017-09-07 21:09:58 +020058 "sink_file.cc",
Tianjie Xu65288122017-10-13 15:10:58 -070059 "utils.cc",
Alex Deymo831dc452017-09-07 21:09:58 +020060 ],
61}
62
63cc_library_static {
64 name: "libbsdiff",
65 defaults: ["bsdiff_defaults"],
66
Alex Deymoa28e0192017-09-08 14:21:05 +020067 srcs: [
Tianjie Xu1c26e2e2017-10-26 17:19:41 -070068 "brotli_compressor.cc",
Alex Deymoa28e0192017-09-08 14:21:05 +020069 "bsdiff.cc",
70 "bz2_compressor.cc",
Tianjie Xu1c26e2e2017-10-26 17:19:41 -070071 "compressor_buffer.cc",
Alex Deymo68c0e7f2017-10-02 20:38:12 +020072 "diff_encoder.cc",
Alex Deymo710b3da2017-10-26 13:13:28 +020073 "endsley_patch_writer.cc",
Tianjie Xu18480eb2017-11-29 16:21:43 -080074 "logging.cc",
Alex Deymoa28e0192017-09-08 14:21:05 +020075 "patch_writer.cc",
Alex Deymo8a179e52017-10-26 17:10:20 +020076 "patch_writer_factory.cc",
Alex Deymoe1140a22017-10-02 21:01:15 +020077 "split_patch_writer.cc",
Alex Deymo48ad5ab2017-09-13 22:17:57 +020078 "suffix_array_index.cc",
Alex Deymoa28e0192017-09-08 14:21:05 +020079 ],
Alex Deymo831dc452017-09-07 21:09:58 +020080 static_libs: [
81 "libdivsufsort64",
82 "libdivsufsort",
Tianjie Xu1c26e2e2017-10-26 17:19:41 -070083 "libbrotli",
Alex Deymo831dc452017-09-07 21:09:58 +020084 ],
85}
86
Tao Bao1c1bce92019-01-10 11:28:53 -080087// Host executables: bsdiff and bspatch are only built for the host.
88cc_binary_host {
Alex Deymo831dc452017-09-07 21:09:58 +020089 name: "bspatch",
90 defaults: ["bsdiff_defaults"],
91
92 srcs: ["bspatch_main.cc"],
93 static_libs: [
94 "libbspatch",
95 "libbz",
Tianjie Xu1c26e2e2017-10-26 17:19:41 -070096 "libbrotli",
Alex Deymo831dc452017-09-07 21:09:58 +020097 ],
98}
99
Alex Deymo831dc452017-09-07 21:09:58 +0200100cc_binary_host {
101 name: "bsdiff",
102 defaults: ["bsdiff_defaults"],
103
Tianjie Xu1f1cdb22017-11-20 11:05:55 -0800104 srcs: [
105 "bsdiff_arguments.cc",
106 "bsdiff_main.cc",
107 ],
Alex Deymo831dc452017-09-07 21:09:58 +0200108 static_libs: [
109 "libbsdiff",
110 "libdivsufsort64",
111 "libdivsufsort",
112 "libbz",
Tianjie Xu1c26e2e2017-10-26 17:19:41 -0700113 "libbrotli",
Alex Deymo831dc452017-09-07 21:09:58 +0200114 ],
115}
116
117// Unit tests.
118cc_test {
119 name: "bsdiff_unittest",
120 defaults: ["bsdiff_defaults"],
121 test_suites: ["device-tests"],
122 srcs: [
Tianjie Xu1c26e2e2017-10-26 17:19:41 -0700123 "brotli_compressor_unittest.cc",
Alex Deymo338f3402018-03-23 13:40:17 +0100124 "brotli_decompressor_unittest.cc",
Tianjie Xu1f1cdb22017-11-20 11:05:55 -0800125 "bsdiff_arguments.cc",
126 "bsdiff_arguments_unittest.cc",
Alex Deymo831dc452017-09-07 21:09:58 +0200127 "bsdiff_unittest.cc",
128 "bspatch_unittest.cc",
Alex Deymo64d5cd82018-03-12 20:00:04 +0100129 "bz2_decompressor_unittest.cc",
Alex Deymo68c0e7f2017-10-02 20:38:12 +0200130 "diff_encoder_unittest.cc",
Alex Deymo710b3da2017-10-26 13:13:28 +0200131 "endsley_patch_writer_unittest.cc",
Alex Deymo831dc452017-09-07 21:09:58 +0200132 "extents_file_unittest.cc",
133 "extents_unittest.cc",
Tianjie Xu65288122017-10-13 15:10:58 -0700134 "patch_reader_unittest.cc",
Alex Deymofb3b6322017-09-27 14:28:54 +0200135 "patch_writer_unittest.cc",
Alex Deymoe1140a22017-10-02 21:01:15 +0200136 "split_patch_writer_unittest.cc",
Alex Deymo48ad5ab2017-09-13 22:17:57 +0200137 "suffix_array_index_unittest.cc",
Alex Deymo831dc452017-09-07 21:09:58 +0200138 "test_utils.cc",
139 "testrunner.cc",
140 ],
Alex Deymo831dc452017-09-07 21:09:58 +0200141 static_libs: [
142 "libbsdiff",
143 "libbspatch",
144 "libgmock",
145 "libdivsufsort64",
146 "libdivsufsort",
147 "libbz",
Tianjie Xu1c26e2e2017-10-26 17:19:41 -0700148 "libbrotli",
Alex Deymo831dc452017-09-07 21:09:58 +0200149 ],
Alex Deymofb3b6322017-09-27 14:28:54 +0200150 target: {
151 android: {
152 cflags: ["-DBSDIFF_TARGET_UNITTEST"],
153 },
154 },
Alex Deymo831dc452017-09-07 21:09:58 +0200155}