xref: /aosp_15_r20/external/erofs-utils/Android.bp (revision 33b1fccf6a0fada2c2875d400ed01119b7676ee5)
1*33b1fccfSAndroid Build Coastguard Worker//
2*33b1fccfSAndroid Build Coastguard Worker// Copyright (C) 2020 Gao Xiang
3*33b1fccfSAndroid Build Coastguard Worker//
4*33b1fccfSAndroid Build Coastguard Worker// Licensed under the Apache License, Version 2.0 (the "License");
5*33b1fccfSAndroid Build Coastguard Worker// you may not use this file except in compliance with the License.
6*33b1fccfSAndroid Build Coastguard Worker// You may obtain a copy of the License at
7*33b1fccfSAndroid Build Coastguard Worker//
8*33b1fccfSAndroid Build Coastguard Worker//      http://www.apache.org/licenses/LICENSE-2.0
9*33b1fccfSAndroid Build Coastguard Worker//
10*33b1fccfSAndroid Build Coastguard Worker// Unless required by applicable law or agreed to in writing, software
11*33b1fccfSAndroid Build Coastguard Worker// distributed under the License is distributed on an "AS IS" BASIS,
12*33b1fccfSAndroid Build Coastguard Worker// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13*33b1fccfSAndroid Build Coastguard Worker// See the License for the specific language governing permissions and
14*33b1fccfSAndroid Build Coastguard Worker// limitations under the License.
15*33b1fccfSAndroid Build Coastguard Worker
16*33b1fccfSAndroid Build Coastguard Workerpackage {
17*33b1fccfSAndroid Build Coastguard Worker    default_applicable_licenses: ["external_erofs-utils_license"],
18*33b1fccfSAndroid Build Coastguard Worker}
19*33b1fccfSAndroid Build Coastguard Worker
20*33b1fccfSAndroid Build Coastguard Worker// Added automatically by a large-scale-change that took the approach of
21*33b1fccfSAndroid Build Coastguard Worker// 'apply every license found to every target'. While this makes sure we respect
22*33b1fccfSAndroid Build Coastguard Worker// every license restriction, it may not be entirely correct.
23*33b1fccfSAndroid Build Coastguard Worker//
24*33b1fccfSAndroid Build Coastguard Worker// e.g. GPL in an MIT project might only apply to the contrib/ directory.
25*33b1fccfSAndroid Build Coastguard Worker//
26*33b1fccfSAndroid Build Coastguard Worker// Please consider splitting the single license below into multiple licenses,
27*33b1fccfSAndroid Build Coastguard Worker// taking care not to lose any license_kind information, and overriding the
28*33b1fccfSAndroid Build Coastguard Worker// default license using the 'licenses: [...]' property on targets as needed.
29*33b1fccfSAndroid Build Coastguard Worker//
30*33b1fccfSAndroid Build Coastguard Worker// For unused files, consider creating a 'fileGroup' with "//visibility:private"
31*33b1fccfSAndroid Build Coastguard Worker// to attach the license to, and including a comment whether the files may be
32*33b1fccfSAndroid Build Coastguard Worker// used in the current project.
33*33b1fccfSAndroid Build Coastguard Worker// See: http://go/android-license-faq
34*33b1fccfSAndroid Build Coastguard Workerlicense {
35*33b1fccfSAndroid Build Coastguard Worker    name: "external_erofs-utils_license",
36*33b1fccfSAndroid Build Coastguard Worker    visibility: [":__subpackages__"],
37*33b1fccfSAndroid Build Coastguard Worker    license_kinds: [
38*33b1fccfSAndroid Build Coastguard Worker        "SPDX-license-identifier-GPL",
39*33b1fccfSAndroid Build Coastguard Worker        "SPDX-license-identifier-GPL-2.0",
40*33b1fccfSAndroid Build Coastguard Worker        "SPDX-license-identifier-LGPL",
41*33b1fccfSAndroid Build Coastguard Worker    ],
42*33b1fccfSAndroid Build Coastguard Worker    license_text: [
43*33b1fccfSAndroid Build Coastguard Worker        "COPYING",
44*33b1fccfSAndroid Build Coastguard Worker    ],
45*33b1fccfSAndroid Build Coastguard Worker}
46*33b1fccfSAndroid Build Coastguard Worker
47*33b1fccfSAndroid Build Coastguard Workergenrule {
48*33b1fccfSAndroid Build Coastguard Worker    name: "erofs-utils-version.h",
49*33b1fccfSAndroid Build Coastguard Worker    srcs: ["VERSION"],
50*33b1fccfSAndroid Build Coastguard Worker    out: ["erofs-utils-version.h"],
51*33b1fccfSAndroid Build Coastguard Worker    cmd: "sed -n '1p' $(in) | tr -d '\n' | sed 's/\\(.*\\)/#define PACKAGE_VERSION \"\\1\"/' > $(out)",
52*33b1fccfSAndroid Build Coastguard Worker}
53*33b1fccfSAndroid Build Coastguard Worker
54*33b1fccfSAndroid Build Coastguard Workercc_defaults {
55*33b1fccfSAndroid Build Coastguard Worker    name: "erofs-utils_export_defaults",
56*33b1fccfSAndroid Build Coastguard Worker
57*33b1fccfSAndroid Build Coastguard Worker    cflags: [
58*33b1fccfSAndroid Build Coastguard Worker        "-Wall",
59*33b1fccfSAndroid Build Coastguard Worker        "-Werror",
60*33b1fccfSAndroid Build Coastguard Worker        "-Wno-error=#warnings",
61*33b1fccfSAndroid Build Coastguard Worker        "-Wno-ignored-qualifiers",
62*33b1fccfSAndroid Build Coastguard Worker        "-Wno-pointer-arith",
63*33b1fccfSAndroid Build Coastguard Worker        "-Wno-unused-parameter",
64*33b1fccfSAndroid Build Coastguard Worker        "-Wno-unused-function",
65*33b1fccfSAndroid Build Coastguard Worker        "-DHAVE_FALLOCATE",
66*33b1fccfSAndroid Build Coastguard Worker        "-DHAVE_LINUX_TYPES_H",
67*33b1fccfSAndroid Build Coastguard Worker        "-DHAVE_LIBSELINUX",
68*33b1fccfSAndroid Build Coastguard Worker        "-DHAVE_LIBUUID",
69*33b1fccfSAndroid Build Coastguard Worker        "-DLZ4_ENABLED",
70*33b1fccfSAndroid Build Coastguard Worker        "-DLZ4HC_ENABLED",
71*33b1fccfSAndroid Build Coastguard Worker        "-DWITH_ANDROID",
72*33b1fccfSAndroid Build Coastguard Worker        "-DHAVE_MEMRCHR",
73*33b1fccfSAndroid Build Coastguard Worker        "-DHAVE_SYS_IOCTL_H",
74*33b1fccfSAndroid Build Coastguard Worker        "-DHAVE_LLISTXATTR",
75*33b1fccfSAndroid Build Coastguard Worker        "-DHAVE_LGETXATTR",
76*33b1fccfSAndroid Build Coastguard Worker        "-D_FILE_OFFSET_BITS=64",
77*33b1fccfSAndroid Build Coastguard Worker        "-DEROFS_MAX_BLOCK_SIZE=16384",
78*33b1fccfSAndroid Build Coastguard Worker        "-DHAVE_UTIMENSAT",
79*33b1fccfSAndroid Build Coastguard Worker    ],
80*33b1fccfSAndroid Build Coastguard Worker}
81*33b1fccfSAndroid Build Coastguard Worker
82*33b1fccfSAndroid Build Coastguard Workercc_defaults {
83*33b1fccfSAndroid Build Coastguard Worker    name: "erofs-utils_defaults",
84*33b1fccfSAndroid Build Coastguard Worker    defaults: ["erofs-utils_export_defaults"],
85*33b1fccfSAndroid Build Coastguard Worker
86*33b1fccfSAndroid Build Coastguard Worker    cflags: [
87*33b1fccfSAndroid Build Coastguard Worker        "-include erofs-utils-version.h",
88*33b1fccfSAndroid Build Coastguard Worker    ],
89*33b1fccfSAndroid Build Coastguard Worker    local_include_dirs: [
90*33b1fccfSAndroid Build Coastguard Worker        "include",
91*33b1fccfSAndroid Build Coastguard Worker    ],
92*33b1fccfSAndroid Build Coastguard Worker    include_dirs: [
93*33b1fccfSAndroid Build Coastguard Worker        "external/e2fsprogs/lib/",
94*33b1fccfSAndroid Build Coastguard Worker    ],
95*33b1fccfSAndroid Build Coastguard Worker    generated_headers: ["erofs-utils-version.h"],
96*33b1fccfSAndroid Build Coastguard Worker    target: {
97*33b1fccfSAndroid Build Coastguard Worker        android: {
98*33b1fccfSAndroid Build Coastguard Worker            shared_libs: [
99*33b1fccfSAndroid Build Coastguard Worker                "libbase",
100*33b1fccfSAndroid Build Coastguard Worker                "libcutils",
101*33b1fccfSAndroid Build Coastguard Worker                "libext2_uuid",
102*33b1fccfSAndroid Build Coastguard Worker                "liblog",
103*33b1fccfSAndroid Build Coastguard Worker                "liblz4",
104*33b1fccfSAndroid Build Coastguard Worker                "libselinux",
105*33b1fccfSAndroid Build Coastguard Worker            ],
106*33b1fccfSAndroid Build Coastguard Worker        },
107*33b1fccfSAndroid Build Coastguard Worker        host: {
108*33b1fccfSAndroid Build Coastguard Worker            static_libs: [
109*33b1fccfSAndroid Build Coastguard Worker                "libbase",
110*33b1fccfSAndroid Build Coastguard Worker                "libcutils",
111*33b1fccfSAndroid Build Coastguard Worker                "libext2_uuid",
112*33b1fccfSAndroid Build Coastguard Worker                "liblog",
113*33b1fccfSAndroid Build Coastguard Worker                "liblz4",
114*33b1fccfSAndroid Build Coastguard Worker                "libselinux",
115*33b1fccfSAndroid Build Coastguard Worker            ],
116*33b1fccfSAndroid Build Coastguard Worker        },
117*33b1fccfSAndroid Build Coastguard Worker    },
118*33b1fccfSAndroid Build Coastguard Worker}
119*33b1fccfSAndroid Build Coastguard Worker
120*33b1fccfSAndroid Build Coastguard Workercc_library {
121*33b1fccfSAndroid Build Coastguard Worker    host_supported: true,
122*33b1fccfSAndroid Build Coastguard Worker    recovery_available: true,
123*33b1fccfSAndroid Build Coastguard Worker    name: "liberofs",
124*33b1fccfSAndroid Build Coastguard Worker    defaults: ["erofs-utils_defaults"],
125*33b1fccfSAndroid Build Coastguard Worker    srcs: [
126*33b1fccfSAndroid Build Coastguard Worker        "lib/*.c",
127*33b1fccfSAndroid Build Coastguard Worker    ],
128*33b1fccfSAndroid Build Coastguard Worker    exclude_srcs: [
129*33b1fccfSAndroid Build Coastguard Worker        "lib/compressor_libdeflate.c",
130*33b1fccfSAndroid Build Coastguard Worker        "lib/compressor_libzstd.c",
131*33b1fccfSAndroid Build Coastguard Worker        "lib/workqueue.c",
132*33b1fccfSAndroid Build Coastguard Worker    ],
133*33b1fccfSAndroid Build Coastguard Worker    export_include_dirs: ["include"],
134*33b1fccfSAndroid Build Coastguard Worker
135*33b1fccfSAndroid Build Coastguard Worker    target: {
136*33b1fccfSAndroid Build Coastguard Worker        darwin: {
137*33b1fccfSAndroid Build Coastguard Worker            enabled: false,
138*33b1fccfSAndroid Build Coastguard Worker        },
139*33b1fccfSAndroid Build Coastguard Worker    },
140*33b1fccfSAndroid Build Coastguard Worker}
141*33b1fccfSAndroid Build Coastguard Worker
142*33b1fccfSAndroid Build Coastguard Workercc_defaults {
143*33b1fccfSAndroid Build Coastguard Worker    name: "mkfs-erofs_defaults",
144*33b1fccfSAndroid Build Coastguard Worker
145*33b1fccfSAndroid Build Coastguard Worker    defaults: ["erofs-utils_defaults"],
146*33b1fccfSAndroid Build Coastguard Worker
147*33b1fccfSAndroid Build Coastguard Worker    srcs: [
148*33b1fccfSAndroid Build Coastguard Worker        "mkfs/*.c",
149*33b1fccfSAndroid Build Coastguard Worker    ],
150*33b1fccfSAndroid Build Coastguard Worker    static_libs: [
151*33b1fccfSAndroid Build Coastguard Worker        "liberofs",
152*33b1fccfSAndroid Build Coastguard Worker    ],
153*33b1fccfSAndroid Build Coastguard Worker
154*33b1fccfSAndroid Build Coastguard Worker    target: {
155*33b1fccfSAndroid Build Coastguard Worker        darwin: {
156*33b1fccfSAndroid Build Coastguard Worker            enabled: false,
157*33b1fccfSAndroid Build Coastguard Worker        },
158*33b1fccfSAndroid Build Coastguard Worker    },
159*33b1fccfSAndroid Build Coastguard Worker}
160*33b1fccfSAndroid Build Coastguard Worker
161*33b1fccfSAndroid Build Coastguard Workercc_binary {
162*33b1fccfSAndroid Build Coastguard Worker    name: "mkfs.erofs",
163*33b1fccfSAndroid Build Coastguard Worker
164*33b1fccfSAndroid Build Coastguard Worker    defaults: ["mkfs-erofs_defaults"],
165*33b1fccfSAndroid Build Coastguard Worker    host_supported: true,
166*33b1fccfSAndroid Build Coastguard Worker}
167*33b1fccfSAndroid Build Coastguard Worker
168*33b1fccfSAndroid Build Coastguard Workercc_binary {
169*33b1fccfSAndroid Build Coastguard Worker    name: "mkfs.erofs.recovery",
170*33b1fccfSAndroid Build Coastguard Worker    defaults: ["mkfs-erofs_defaults"],
171*33b1fccfSAndroid Build Coastguard Worker    recovery: true,
172*33b1fccfSAndroid Build Coastguard Worker    stem: "mkfs.erofs",
173*33b1fccfSAndroid Build Coastguard Worker}
174*33b1fccfSAndroid Build Coastguard Worker
175*33b1fccfSAndroid Build Coastguard Workercc_binary_host {
176*33b1fccfSAndroid Build Coastguard Worker    name: "make_erofs",
177*33b1fccfSAndroid Build Coastguard Worker
178*33b1fccfSAndroid Build Coastguard Worker    defaults: ["mkfs-erofs_defaults"],
179*33b1fccfSAndroid Build Coastguard Worker    stl: "libc++_static"
180*33b1fccfSAndroid Build Coastguard Worker}
181*33b1fccfSAndroid Build Coastguard Worker
182*33b1fccfSAndroid Build Coastguard Workercc_defaults {
183*33b1fccfSAndroid Build Coastguard Worker    name: "dump.erofs_defaults",
184*33b1fccfSAndroid Build Coastguard Worker    defaults: ["erofs-utils_defaults"],
185*33b1fccfSAndroid Build Coastguard Worker    srcs: [
186*33b1fccfSAndroid Build Coastguard Worker        "dump/*.c",
187*33b1fccfSAndroid Build Coastguard Worker    ],
188*33b1fccfSAndroid Build Coastguard Worker    static_libs: [
189*33b1fccfSAndroid Build Coastguard Worker        "liberofs",
190*33b1fccfSAndroid Build Coastguard Worker    ],
191*33b1fccfSAndroid Build Coastguard Worker}
192*33b1fccfSAndroid Build Coastguard Worker
193*33b1fccfSAndroid Build Coastguard Workercc_binary {
194*33b1fccfSAndroid Build Coastguard Worker    name: "dump.erofs",
195*33b1fccfSAndroid Build Coastguard Worker    defaults: ["dump.erofs_defaults"],
196*33b1fccfSAndroid Build Coastguard Worker    host_supported: true,
197*33b1fccfSAndroid Build Coastguard Worker    target: {
198*33b1fccfSAndroid Build Coastguard Worker        darwin: {
199*33b1fccfSAndroid Build Coastguard Worker            enabled: false,
200*33b1fccfSAndroid Build Coastguard Worker        },
201*33b1fccfSAndroid Build Coastguard Worker    },
202*33b1fccfSAndroid Build Coastguard Worker}
203*33b1fccfSAndroid Build Coastguard Worker
204*33b1fccfSAndroid Build Coastguard Workercc_binary {
205*33b1fccfSAndroid Build Coastguard Worker    name: "dump.erofs.recovery",
206*33b1fccfSAndroid Build Coastguard Worker    defaults: ["dump.erofs_defaults"],
207*33b1fccfSAndroid Build Coastguard Worker    recovery: true,
208*33b1fccfSAndroid Build Coastguard Worker    stem: "dump.erofs",
209*33b1fccfSAndroid Build Coastguard Worker}
210*33b1fccfSAndroid Build Coastguard Worker
211*33b1fccfSAndroid Build Coastguard Workercc_defaults {
212*33b1fccfSAndroid Build Coastguard Worker    name: "fsck.erofs_defaults",
213*33b1fccfSAndroid Build Coastguard Worker    defaults: ["erofs-utils_defaults"],
214*33b1fccfSAndroid Build Coastguard Worker    srcs: [
215*33b1fccfSAndroid Build Coastguard Worker        "fsck/*.c",
216*33b1fccfSAndroid Build Coastguard Worker    ],
217*33b1fccfSAndroid Build Coastguard Worker    static_libs: [
218*33b1fccfSAndroid Build Coastguard Worker        "liberofs",
219*33b1fccfSAndroid Build Coastguard Worker    ],
220*33b1fccfSAndroid Build Coastguard Worker}
221*33b1fccfSAndroid Build Coastguard Worker
222*33b1fccfSAndroid Build Coastguard Workercc_binary {
223*33b1fccfSAndroid Build Coastguard Worker    name: "fsck.erofs",
224*33b1fccfSAndroid Build Coastguard Worker    defaults: ["fsck.erofs_defaults"],
225*33b1fccfSAndroid Build Coastguard Worker    host_supported: true,
226*33b1fccfSAndroid Build Coastguard Worker    target: {
227*33b1fccfSAndroid Build Coastguard Worker        darwin: {
228*33b1fccfSAndroid Build Coastguard Worker            enabled: false,
229*33b1fccfSAndroid Build Coastguard Worker        },
230*33b1fccfSAndroid Build Coastguard Worker    },
231*33b1fccfSAndroid Build Coastguard Worker}
232*33b1fccfSAndroid Build Coastguard Worker
233*33b1fccfSAndroid Build Coastguard Workercc_binary {
234*33b1fccfSAndroid Build Coastguard Worker    name: "fsck.erofs.recovery",
235*33b1fccfSAndroid Build Coastguard Worker    defaults: ["fsck.erofs_defaults"],
236*33b1fccfSAndroid Build Coastguard Worker    recovery: true,
237*33b1fccfSAndroid Build Coastguard Worker    stem: "fsck.erofs",
238*33b1fccfSAndroid Build Coastguard Worker}