xref: /aosp_15_r20/system/incremental_delivery/incfs/Android.bp (revision 9190c2a8bd3622b7aa9bd7bfe4b3aec77820f478)
1*9190c2a8SAndroid Build Coastguard Worker// Copyright (C) 2020 The Android Open Source Project
2*9190c2a8SAndroid Build Coastguard Worker//
3*9190c2a8SAndroid Build Coastguard Worker// Licensed under the Apache License, Version 2.0 (the "License");
4*9190c2a8SAndroid Build Coastguard Worker// you may not use this file except in compliance with the License.
5*9190c2a8SAndroid Build Coastguard Worker// You may obtain a copy of the License at
6*9190c2a8SAndroid Build Coastguard Worker//
7*9190c2a8SAndroid Build Coastguard Worker//      http://www.apache.org/licenses/LICENSE-2.0
8*9190c2a8SAndroid Build Coastguard Worker//
9*9190c2a8SAndroid Build Coastguard Worker// Unless required by applicable law or agreed to in writing, software
10*9190c2a8SAndroid Build Coastguard Worker// distributed under the License is distributed on an "AS IS" BASIS,
11*9190c2a8SAndroid Build Coastguard Worker// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12*9190c2a8SAndroid Build Coastguard Worker// See the License for the specific language governing permissions and
13*9190c2a8SAndroid Build Coastguard Worker// limitations under the License.
14*9190c2a8SAndroid Build Coastguard Worker
15*9190c2a8SAndroid Build Coastguard Workerpackage {
16*9190c2a8SAndroid Build Coastguard Worker    default_team: "trendy_team_android_resources",
17*9190c2a8SAndroid Build Coastguard Worker    default_applicable_licenses: ["system_incremental_delivery_incfs_license"],
18*9190c2a8SAndroid Build Coastguard Worker}
19*9190c2a8SAndroid Build Coastguard Worker
20*9190c2a8SAndroid Build Coastguard Worker// Added automatically by a large-scale-change that took the approach of
21*9190c2a8SAndroid Build Coastguard Worker// 'apply every license found to every target'. While this makes sure we respect
22*9190c2a8SAndroid Build Coastguard Worker// every license restriction, it may not be entirely correct.
23*9190c2a8SAndroid Build Coastguard Worker//
24*9190c2a8SAndroid Build Coastguard Worker// e.g. GPL in an MIT project might only apply to the contrib/ directory.
25*9190c2a8SAndroid Build Coastguard Worker//
26*9190c2a8SAndroid Build Coastguard Worker// Please consider splitting the single license below into multiple licenses,
27*9190c2a8SAndroid Build Coastguard Worker// taking care not to lose any license_kind information, and overriding the
28*9190c2a8SAndroid Build Coastguard Worker// default license using the 'licenses: [...]' property on targets as needed.
29*9190c2a8SAndroid Build Coastguard Worker//
30*9190c2a8SAndroid Build Coastguard Worker// For unused files, consider creating a 'fileGroup' with "//visibility:private"
31*9190c2a8SAndroid Build Coastguard Worker// to attach the license to, and including a comment whether the files may be
32*9190c2a8SAndroid Build Coastguard Worker// used in the current project.
33*9190c2a8SAndroid Build Coastguard Worker// See: http://go/android-license-faq
34*9190c2a8SAndroid Build Coastguard Workerlicense {
35*9190c2a8SAndroid Build Coastguard Worker    name: "system_incremental_delivery_incfs_license",
36*9190c2a8SAndroid Build Coastguard Worker    visibility: [":__subpackages__"],
37*9190c2a8SAndroid Build Coastguard Worker    license_kinds: [
38*9190c2a8SAndroid Build Coastguard Worker        "SPDX-license-identifier-Apache-2.0",
39*9190c2a8SAndroid Build Coastguard Worker    ],
40*9190c2a8SAndroid Build Coastguard Worker    license_text: [
41*9190c2a8SAndroid Build Coastguard Worker        "NOTICE",
42*9190c2a8SAndroid Build Coastguard Worker    ],
43*9190c2a8SAndroid Build Coastguard Worker}
44*9190c2a8SAndroid Build Coastguard Worker
45*9190c2a8SAndroid Build Coastguard Workercc_defaults {
46*9190c2a8SAndroid Build Coastguard Worker    name: "libincfs_defaults_common",
47*9190c2a8SAndroid Build Coastguard Worker    cpp_std: "c++2a",
48*9190c2a8SAndroid Build Coastguard Worker    cflags: [
49*9190c2a8SAndroid Build Coastguard Worker        "-Werror",
50*9190c2a8SAndroid Build Coastguard Worker        "-Wall",
51*9190c2a8SAndroid Build Coastguard Worker        "-Wextra",
52*9190c2a8SAndroid Build Coastguard Worker        "-Wno-deprecated-enum-enum-conversion",
53*9190c2a8SAndroid Build Coastguard Worker        "-D_FILE_OFFSET_BITS=64",
54*9190c2a8SAndroid Build Coastguard Worker    ],
55*9190c2a8SAndroid Build Coastguard Worker    tidy: true,
56*9190c2a8SAndroid Build Coastguard Worker    tidy_checks: [
57*9190c2a8SAndroid Build Coastguard Worker        "android-*",
58*9190c2a8SAndroid Build Coastguard Worker        "cert-*",
59*9190c2a8SAndroid Build Coastguard Worker        "clang-analyzer-security*",
60*9190c2a8SAndroid Build Coastguard Worker        "-cert-err34-c",
61*9190c2a8SAndroid Build Coastguard Worker        "clang-analyzer-security*",
62*9190c2a8SAndroid Build Coastguard Worker        // Disabling due to many unavoidable warnings from POSIX API usage.
63*9190c2a8SAndroid Build Coastguard Worker        "-google-runtime-int",
64*9190c2a8SAndroid Build Coastguard Worker        "-google-explicit-constructor",
65*9190c2a8SAndroid Build Coastguard Worker        // operator=() does not handle self-assignment properly - all protobuf-generated classes
66*9190c2a8SAndroid Build Coastguard Worker        "-cert-oop54-cpp",
67*9190c2a8SAndroid Build Coastguard Worker    ],
68*9190c2a8SAndroid Build Coastguard Worker    target: {
69*9190c2a8SAndroid Build Coastguard Worker        linux_bionic: {
70*9190c2a8SAndroid Build Coastguard Worker            enabled: true,
71*9190c2a8SAndroid Build Coastguard Worker        },
72*9190c2a8SAndroid Build Coastguard Worker    },
73*9190c2a8SAndroid Build Coastguard Worker}
74*9190c2a8SAndroid Build Coastguard Worker
75*9190c2a8SAndroid Build Coastguard Workercc_defaults {
76*9190c2a8SAndroid Build Coastguard Worker    name: "libincfs_defaults",
77*9190c2a8SAndroid Build Coastguard Worker    defaults: [
78*9190c2a8SAndroid Build Coastguard Worker        "libincfs_defaults_common",
79*9190c2a8SAndroid Build Coastguard Worker        "linux_bionic_supported",
80*9190c2a8SAndroid Build Coastguard Worker    ],
81*9190c2a8SAndroid Build Coastguard Worker    header_libs: ["libincfs_headers"],
82*9190c2a8SAndroid Build Coastguard Worker    export_header_lib_headers: ["libincfs_headers"],
83*9190c2a8SAndroid Build Coastguard Worker    static_libs: [
84*9190c2a8SAndroid Build Coastguard Worker        "libbase",
85*9190c2a8SAndroid Build Coastguard Worker    ],
86*9190c2a8SAndroid Build Coastguard Worker    shared_libs: [
87*9190c2a8SAndroid Build Coastguard Worker        "libcrypto",
88*9190c2a8SAndroid Build Coastguard Worker        "liblog",
89*9190c2a8SAndroid Build Coastguard Worker        "libselinux",
90*9190c2a8SAndroid Build Coastguard Worker    ],
91*9190c2a8SAndroid Build Coastguard Worker    target: {
92*9190c2a8SAndroid Build Coastguard Worker        android: {
93*9190c2a8SAndroid Build Coastguard Worker            static_libs: [
94*9190c2a8SAndroid Build Coastguard Worker                "libcom.android.sysprop.incremental",
95*9190c2a8SAndroid Build Coastguard Worker            ],
96*9190c2a8SAndroid Build Coastguard Worker        },
97*9190c2a8SAndroid Build Coastguard Worker    },
98*9190c2a8SAndroid Build Coastguard Worker}
99*9190c2a8SAndroid Build Coastguard Worker
100*9190c2a8SAndroid Build Coastguard Workercc_library {
101*9190c2a8SAndroid Build Coastguard Worker    name: "libincfs",
102*9190c2a8SAndroid Build Coastguard Worker    defaults: ["libincfs_defaults"],
103*9190c2a8SAndroid Build Coastguard Worker    srcs: [
104*9190c2a8SAndroid Build Coastguard Worker        "incfs_ndk.c",
105*9190c2a8SAndroid Build Coastguard Worker        "incfs.cpp",
106*9190c2a8SAndroid Build Coastguard Worker        "MountRegistry.cpp",
107*9190c2a8SAndroid Build Coastguard Worker        "path.cpp",
108*9190c2a8SAndroid Build Coastguard Worker    ],
109*9190c2a8SAndroid Build Coastguard Worker}
110*9190c2a8SAndroid Build Coastguard Worker
111*9190c2a8SAndroid Build Coastguard Workercc_library_static {
112*9190c2a8SAndroid Build Coastguard Worker    name: "libincfs-utils",
113*9190c2a8SAndroid Build Coastguard Worker    defaults: ["libincfs_defaults_common"],
114*9190c2a8SAndroid Build Coastguard Worker    local_include_dirs: ["util/include"],
115*9190c2a8SAndroid Build Coastguard Worker    export_include_dirs: ["util/include"],
116*9190c2a8SAndroid Build Coastguard Worker    host_supported: true,
117*9190c2a8SAndroid Build Coastguard Worker    srcs: [
118*9190c2a8SAndroid Build Coastguard Worker        "util/map_ptr.cpp",
119*9190c2a8SAndroid Build Coastguard Worker    ],
120*9190c2a8SAndroid Build Coastguard Worker    target: {
121*9190c2a8SAndroid Build Coastguard Worker        android: {
122*9190c2a8SAndroid Build Coastguard Worker            header_libs: ["libincfs_headers"],
123*9190c2a8SAndroid Build Coastguard Worker            shared_libs: [
124*9190c2a8SAndroid Build Coastguard Worker                "libbase",
125*9190c2a8SAndroid Build Coastguard Worker                "libincfs",
126*9190c2a8SAndroid Build Coastguard Worker                "libutils",
127*9190c2a8SAndroid Build Coastguard Worker            ],
128*9190c2a8SAndroid Build Coastguard Worker        },
129*9190c2a8SAndroid Build Coastguard Worker        host: {
130*9190c2a8SAndroid Build Coastguard Worker            static_libs: [
131*9190c2a8SAndroid Build Coastguard Worker                "libbase",
132*9190c2a8SAndroid Build Coastguard Worker                "libutils",
133*9190c2a8SAndroid Build Coastguard Worker            ],
134*9190c2a8SAndroid Build Coastguard Worker        },
135*9190c2a8SAndroid Build Coastguard Worker        windows: {
136*9190c2a8SAndroid Build Coastguard Worker            enabled: true,
137*9190c2a8SAndroid Build Coastguard Worker        },
138*9190c2a8SAndroid Build Coastguard Worker    },
139*9190c2a8SAndroid Build Coastguard Worker}
140*9190c2a8SAndroid Build Coastguard Worker
141*9190c2a8SAndroid Build Coastguard Workercc_library_headers {
142*9190c2a8SAndroid Build Coastguard Worker    name: "libincfs_headers",
143*9190c2a8SAndroid Build Coastguard Worker    export_include_dirs: [
144*9190c2a8SAndroid Build Coastguard Worker        "include/",
145*9190c2a8SAndroid Build Coastguard Worker        "kernel-headers",
146*9190c2a8SAndroid Build Coastguard Worker    ],
147*9190c2a8SAndroid Build Coastguard Worker    host_supported: true,
148*9190c2a8SAndroid Build Coastguard Worker    target: {
149*9190c2a8SAndroid Build Coastguard Worker        linux_bionic: {
150*9190c2a8SAndroid Build Coastguard Worker            enabled: true,
151*9190c2a8SAndroid Build Coastguard Worker        },
152*9190c2a8SAndroid Build Coastguard Worker    },
153*9190c2a8SAndroid Build Coastguard Worker}
154*9190c2a8SAndroid Build Coastguard Worker
155*9190c2a8SAndroid Build Coastguard Workercc_test {
156*9190c2a8SAndroid Build Coastguard Worker    name: "libincfs-test",
157*9190c2a8SAndroid Build Coastguard Worker    defaults: ["libincfs_defaults"],
158*9190c2a8SAndroid Build Coastguard Worker    local_include_dirs: ["tests/include"],
159*9190c2a8SAndroid Build Coastguard Worker    static_libs: [
160*9190c2a8SAndroid Build Coastguard Worker        "libincfs",
161*9190c2a8SAndroid Build Coastguard Worker        "libincfs-utils",
162*9190c2a8SAndroid Build Coastguard Worker    ],
163*9190c2a8SAndroid Build Coastguard Worker    shared_libs: [
164*9190c2a8SAndroid Build Coastguard Worker        "libbase",
165*9190c2a8SAndroid Build Coastguard Worker        "libutils",
166*9190c2a8SAndroid Build Coastguard Worker    ],
167*9190c2a8SAndroid Build Coastguard Worker    srcs: [
168*9190c2a8SAndroid Build Coastguard Worker        "tests/util/map_ptr_test.cpp",
169*9190c2a8SAndroid Build Coastguard Worker        "tests/incfs_test.cpp",
170*9190c2a8SAndroid Build Coastguard Worker        "tests/MountRegistry_test.cpp",
171*9190c2a8SAndroid Build Coastguard Worker    ],
172*9190c2a8SAndroid Build Coastguard Worker    require_root: true,
173*9190c2a8SAndroid Build Coastguard Worker    test_suites: [
174*9190c2a8SAndroid Build Coastguard Worker        "general-tests",
175*9190c2a8SAndroid Build Coastguard Worker        "device-tests",
176*9190c2a8SAndroid Build Coastguard Worker    ],
177*9190c2a8SAndroid Build Coastguard Worker}
178*9190c2a8SAndroid Build Coastguard Worker
179*9190c2a8SAndroid Build Coastguard Workercc_benchmark {
180*9190c2a8SAndroid Build Coastguard Worker    name: "hardening-benchmark",
181*9190c2a8SAndroid Build Coastguard Worker    defaults: ["libincfs_defaults"],
182*9190c2a8SAndroid Build Coastguard Worker
183*9190c2a8SAndroid Build Coastguard Worker    srcs: [
184*9190c2a8SAndroid Build Coastguard Worker        "tests/hardening_benchmark.cpp",
185*9190c2a8SAndroid Build Coastguard Worker    ],
186*9190c2a8SAndroid Build Coastguard Worker    static_libs: [
187*9190c2a8SAndroid Build Coastguard Worker        "libziparchive_for_incfs",
188*9190c2a8SAndroid Build Coastguard Worker        "libutils",
189*9190c2a8SAndroid Build Coastguard Worker        "libincfs",
190*9190c2a8SAndroid Build Coastguard Worker        "libincfs-utils",
191*9190c2a8SAndroid Build Coastguard Worker    ],
192*9190c2a8SAndroid Build Coastguard Worker}
193*9190c2a8SAndroid Build Coastguard Worker
194*9190c2a8SAndroid Build Coastguard Workercc_binary {
195*9190c2a8SAndroid Build Coastguard Worker    name: "incfsdump",
196*9190c2a8SAndroid Build Coastguard Worker    defaults: ["libincfs_defaults"],
197*9190c2a8SAndroid Build Coastguard Worker    host_supported: true,
198*9190c2a8SAndroid Build Coastguard Worker    static_libs: [
199*9190c2a8SAndroid Build Coastguard Worker        "libbase",
200*9190c2a8SAndroid Build Coastguard Worker    ],
201*9190c2a8SAndroid Build Coastguard Worker    srcs: [
202*9190c2a8SAndroid Build Coastguard Worker        "incfsdump/main.cpp",
203*9190c2a8SAndroid Build Coastguard Worker        "incfsdump/dump.cpp",
204*9190c2a8SAndroid Build Coastguard Worker    ],
205*9190c2a8SAndroid Build Coastguard Worker    target: {
206*9190c2a8SAndroid Build Coastguard Worker        linux_glibc: {
207*9190c2a8SAndroid Build Coastguard Worker            enabled: true,
208*9190c2a8SAndroid Build Coastguard Worker        },
209*9190c2a8SAndroid Build Coastguard Worker    },
210*9190c2a8SAndroid Build Coastguard Worker}
211