blob: abc960486ee9fa4e3b9f652a5df0e13eeeca17ec [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 Deymo831dc452017-09-07 21:09:58 +020022 export_include_dirs: [
23 "include",
24 // TODO(deymo): Remove include/bsdiff when all callers use the "bsdiff/"
25 // prefix when including code.
26 "include/bsdiff",
27 ],
28 cflags: [
29 "-D_FILE_OFFSET_BITS=64",
30 "-Wall",
31 "-Werror",
32 "-Wextra",
33 "-Wno-unused-parameter",
34 ],
35}
36
37// Host and target static libraries.
38cc_library_static {
39 name: "libbspatch",
40 defaults: ["bsdiff_defaults"],
41
42 srcs: [
43 "bspatch.cc",
Tianjie Xu65288122017-10-13 15:10:58 -070044 "bz2_decompressor.cc",
Alex Deymo831dc452017-09-07 21:09:58 +020045 "buffer_file.cc",
46 "extents.cc",
47 "extents_file.cc",
48 "file.cc",
49 "memory_file.cc",
Tianjie Xu65288122017-10-13 15:10:58 -070050 "patch_reader.cc",
Alex Deymo831dc452017-09-07 21:09:58 +020051 "sink_file.cc",
Tianjie Xu65288122017-10-13 15:10:58 -070052 "utils.cc",
Alex Deymo831dc452017-09-07 21:09:58 +020053 ],
54}
55
56cc_library_static {
57 name: "libbsdiff",
58 defaults: ["bsdiff_defaults"],
59
Alex Deymoa28e0192017-09-08 14:21:05 +020060 srcs: [
Tianjie Xu1c26e2e2017-10-26 17:19:41 -070061 "brotli_compressor.cc",
Alex Deymoa28e0192017-09-08 14:21:05 +020062 "bsdiff.cc",
63 "bz2_compressor.cc",
Tianjie Xu1c26e2e2017-10-26 17:19:41 -070064 "compressor_buffer.cc",
65 "compressor_interface.cc",
Alex Deymo68c0e7f2017-10-02 20:38:12 +020066 "diff_encoder.cc",
Alex Deymoa28e0192017-09-08 14:21:05 +020067 "patch_writer.cc",
Alex Deymo8a179e52017-10-26 17:10:20 +020068 "patch_writer_factory.cc",
Alex Deymoe1140a22017-10-02 21:01:15 +020069 "split_patch_writer.cc",
Alex Deymo48ad5ab2017-09-13 22:17:57 +020070 "suffix_array_index.cc",
Alex Deymoa28e0192017-09-08 14:21:05 +020071 ],
Alex Deymo831dc452017-09-07 21:09:58 +020072 static_libs: [
73 "libdivsufsort64",
74 "libdivsufsort",
Tianjie Xu1c26e2e2017-10-26 17:19:41 -070075 "libbrotli",
Alex Deymo831dc452017-09-07 21:09:58 +020076 ],
77}
78
79// Host and target Executables.
80cc_binary {
81 name: "bspatch",
82 defaults: ["bsdiff_defaults"],
83
84 srcs: ["bspatch_main.cc"],
85 static_libs: [
86 "libbspatch",
87 "libbz",
Tianjie Xu1c26e2e2017-10-26 17:19:41 -070088 "libbrotli",
Alex Deymo831dc452017-09-07 21:09:58 +020089 ],
90}
91
92// Host executables, bsdiff is only built for the host.
93cc_binary_host {
94 name: "bsdiff",
95 defaults: ["bsdiff_defaults"],
96
97 srcs: ["bsdiff_main.cc"],
98 static_libs: [
99 "libbsdiff",
100 "libdivsufsort64",
101 "libdivsufsort",
102 "libbz",
Tianjie Xu1c26e2e2017-10-26 17:19:41 -0700103 "libbrotli",
Alex Deymo831dc452017-09-07 21:09:58 +0200104 ],
105}
106
107// Unit tests.
108cc_test {
109 name: "bsdiff_unittest",
110 defaults: ["bsdiff_defaults"],
111 test_suites: ["device-tests"],
112 srcs: [
Tianjie Xu1c26e2e2017-10-26 17:19:41 -0700113 "brotli_compressor_unittest.cc",
Alex Deymo831dc452017-09-07 21:09:58 +0200114 "bsdiff_unittest.cc",
115 "bspatch_unittest.cc",
Alex Deymo68c0e7f2017-10-02 20:38:12 +0200116 "diff_encoder_unittest.cc",
Alex Deymo831dc452017-09-07 21:09:58 +0200117 "extents_file_unittest.cc",
118 "extents_unittest.cc",
Tianjie Xu65288122017-10-13 15:10:58 -0700119 "patch_reader_unittest.cc",
Alex Deymofb3b6322017-09-27 14:28:54 +0200120 "patch_writer_unittest.cc",
Alex Deymoe1140a22017-10-02 21:01:15 +0200121 "split_patch_writer_unittest.cc",
Alex Deymo48ad5ab2017-09-13 22:17:57 +0200122 "suffix_array_index_unittest.cc",
Alex Deymo831dc452017-09-07 21:09:58 +0200123 "test_utils.cc",
124 "testrunner.cc",
125 ],
Alex Deymo831dc452017-09-07 21:09:58 +0200126 static_libs: [
127 "libbsdiff",
128 "libbspatch",
129 "libgmock",
130 "libdivsufsort64",
131 "libdivsufsort",
132 "libbz",
Tianjie Xu1c26e2e2017-10-26 17:19:41 -0700133 "libbrotli",
Alex Deymo831dc452017-09-07 21:09:58 +0200134 ],
Alex Deymofb3b6322017-09-27 14:28:54 +0200135 target: {
136 android: {
137 cflags: ["-DBSDIFF_TARGET_UNITTEST"],
138 },
139 },
Alex Deymo831dc452017-09-07 21:09:58 +0200140}