xref: /aosp_15_r20/external/virglrenderer/Android.bp (revision bbecb9d118dfdb95f99bd754f8fa9be01f189df3)
1*bbecb9d1SAndroid Build Coastguard Worker//
2*bbecb9d1SAndroid Build Coastguard Worker// Copyright (C) 2018 The Android Open Source Project
3*bbecb9d1SAndroid Build Coastguard Worker//
4*bbecb9d1SAndroid Build Coastguard Worker// Licensed under the Apache License, Version 2.0 (the "License");
5*bbecb9d1SAndroid Build Coastguard Worker// you may not use this file except in compliance with the License.
6*bbecb9d1SAndroid Build Coastguard Worker// You may obtain a copy of the License at
7*bbecb9d1SAndroid Build Coastguard Worker//
8*bbecb9d1SAndroid Build Coastguard Worker//      http://www.apache.org/licenses/LICENSE-2.0
9*bbecb9d1SAndroid Build Coastguard Worker//
10*bbecb9d1SAndroid Build Coastguard Worker// Unless required by applicable law or agreed to in writing, software
11*bbecb9d1SAndroid Build Coastguard Worker// distributed under the License is distributed on an "AS IS" BASIS,
12*bbecb9d1SAndroid Build Coastguard Worker// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13*bbecb9d1SAndroid Build Coastguard Worker// See the License for the specific language governing permissions and
14*bbecb9d1SAndroid Build Coastguard Worker// limitations under the License.
15*bbecb9d1SAndroid Build Coastguard Worker//
16*bbecb9d1SAndroid Build Coastguard Worker
17*bbecb9d1SAndroid Build Coastguard Workerpackage {
18*bbecb9d1SAndroid Build Coastguard Worker    default_applicable_licenses: ["external_virglrenderer_license"],
19*bbecb9d1SAndroid Build Coastguard Worker}
20*bbecb9d1SAndroid Build Coastguard Worker
21*bbecb9d1SAndroid Build Coastguard Worker// Added automatically by a large-scale-change that took the approach of
22*bbecb9d1SAndroid Build Coastguard Worker// 'apply every license found to every target'. While this makes sure we respect
23*bbecb9d1SAndroid Build Coastguard Worker// every license restriction, it may not be entirely correct.
24*bbecb9d1SAndroid Build Coastguard Worker//
25*bbecb9d1SAndroid Build Coastguard Worker// e.g. GPL in an MIT project might only apply to the contrib/ directory.
26*bbecb9d1SAndroid Build Coastguard Worker//
27*bbecb9d1SAndroid Build Coastguard Worker// Please consider splitting the single license below into multiple licenses,
28*bbecb9d1SAndroid Build Coastguard Worker// taking care not to lose any license_kind information, and overriding the
29*bbecb9d1SAndroid Build Coastguard Worker// default license using the 'licenses: [...]' property on targets as needed.
30*bbecb9d1SAndroid Build Coastguard Worker//
31*bbecb9d1SAndroid Build Coastguard Worker// For unused files, consider creating a 'fileGroup' with "//visibility:private"
32*bbecb9d1SAndroid Build Coastguard Worker// to attach the license to, and including a comment whether the files may be
33*bbecb9d1SAndroid Build Coastguard Worker// used in the current project.
34*bbecb9d1SAndroid Build Coastguard Worker//
35*bbecb9d1SAndroid Build Coastguard Worker// large-scale-change included anything that looked like it might be a license
36*bbecb9d1SAndroid Build Coastguard Worker// text as a license_text. e.g. LICENSE, NOTICE, COPYING etc.
37*bbecb9d1SAndroid Build Coastguard Worker//
38*bbecb9d1SAndroid Build Coastguard Worker// Please consider removing redundant or irrelevant files from 'license_text:'.
39*bbecb9d1SAndroid Build Coastguard Worker// See: http://go/android-license-faq
40*bbecb9d1SAndroid Build Coastguard Workerlicense {
41*bbecb9d1SAndroid Build Coastguard Worker    name: "external_virglrenderer_license",
42*bbecb9d1SAndroid Build Coastguard Worker    visibility: [":__subpackages__"],
43*bbecb9d1SAndroid Build Coastguard Worker    license_kinds: [
44*bbecb9d1SAndroid Build Coastguard Worker        "SPDX-license-identifier-BSD",
45*bbecb9d1SAndroid Build Coastguard Worker        "SPDX-license-identifier-BSL-1.0",
46*bbecb9d1SAndroid Build Coastguard Worker        "SPDX-license-identifier-MIT",
47*bbecb9d1SAndroid Build Coastguard Worker    ],
48*bbecb9d1SAndroid Build Coastguard Worker    license_text: [
49*bbecb9d1SAndroid Build Coastguard Worker        "COPYING",
50*bbecb9d1SAndroid Build Coastguard Worker        "LICENSE",
51*bbecb9d1SAndroid Build Coastguard Worker        "NOTICE",
52*bbecb9d1SAndroid Build Coastguard Worker    ],
53*bbecb9d1SAndroid Build Coastguard Worker}
54*bbecb9d1SAndroid Build Coastguard Worker
55*bbecb9d1SAndroid Build Coastguard Workercc_library_headers {
56*bbecb9d1SAndroid Build Coastguard Worker    name: "virgl_headers",
57*bbecb9d1SAndroid Build Coastguard Worker    host_supported: true,
58*bbecb9d1SAndroid Build Coastguard Worker    export_include_dirs: ["src"],
59*bbecb9d1SAndroid Build Coastguard Worker}
60*bbecb9d1SAndroid Build Coastguard Worker
61*bbecb9d1SAndroid Build Coastguard Workercc_library {
62*bbecb9d1SAndroid Build Coastguard Worker    name: "libvirglrenderer",
63*bbecb9d1SAndroid Build Coastguard Worker    host_supported: true,
64*bbecb9d1SAndroid Build Coastguard Worker
65*bbecb9d1SAndroid Build Coastguard Worker    // This project's unreachable() macro conflicts with the C23 one.
66*bbecb9d1SAndroid Build Coastguard Worker    c_std: "gnu17",
67*bbecb9d1SAndroid Build Coastguard Worker
68*bbecb9d1SAndroid Build Coastguard Worker    cflags: [
69*bbecb9d1SAndroid Build Coastguard Worker        "-DHAVE_CONFIG_H",
70*bbecb9d1SAndroid Build Coastguard Worker        "-include prebuilt-intermediates/config.h",
71*bbecb9d1SAndroid Build Coastguard Worker        "-Wno-unused-parameter",
72*bbecb9d1SAndroid Build Coastguard Worker    ],
73*bbecb9d1SAndroid Build Coastguard Worker    local_include_dirs: [
74*bbecb9d1SAndroid Build Coastguard Worker        "prebuilt-intermediates",
75*bbecb9d1SAndroid Build Coastguard Worker        "src",
76*bbecb9d1SAndroid Build Coastguard Worker        "src/drm",
77*bbecb9d1SAndroid Build Coastguard Worker        "src/gallium/auxiliary",
78*bbecb9d1SAndroid Build Coastguard Worker        "src/gallium/auxiliary/util",
79*bbecb9d1SAndroid Build Coastguard Worker        "src/gallium/include",
80*bbecb9d1SAndroid Build Coastguard Worker        "src/mesa",
81*bbecb9d1SAndroid Build Coastguard Worker        "src/mesa/compat",
82*bbecb9d1SAndroid Build Coastguard Worker        "src/mesa/pipe",
83*bbecb9d1SAndroid Build Coastguard Worker        "src/mesa/util",
84*bbecb9d1SAndroid Build Coastguard Worker        "src/venus",
85*bbecb9d1SAndroid Build Coastguard Worker    ],
86*bbecb9d1SAndroid Build Coastguard Worker    srcs: [
87*bbecb9d1SAndroid Build Coastguard Worker        "prebuilt-intermediates/src/u_format_table.c",
88*bbecb9d1SAndroid Build Coastguard Worker        "src/gallium/auxiliary/cso_cache/cso_cache.c",
89*bbecb9d1SAndroid Build Coastguard Worker        "src/gallium/auxiliary/cso_cache/cso_hash.c",
90*bbecb9d1SAndroid Build Coastguard Worker        "src/gallium/auxiliary/tgsi/tgsi_build.c",
91*bbecb9d1SAndroid Build Coastguard Worker        "src/gallium/auxiliary/tgsi/tgsi_dump.c",
92*bbecb9d1SAndroid Build Coastguard Worker        "src/gallium/auxiliary/tgsi/tgsi_info.c",
93*bbecb9d1SAndroid Build Coastguard Worker        "src/gallium/auxiliary/tgsi/tgsi_iterate.c",
94*bbecb9d1SAndroid Build Coastguard Worker        "src/gallium/auxiliary/tgsi/tgsi_parse.c",
95*bbecb9d1SAndroid Build Coastguard Worker        "src/gallium/auxiliary/tgsi/tgsi_sanity.c",
96*bbecb9d1SAndroid Build Coastguard Worker        "src/gallium/auxiliary/tgsi/tgsi_scan.c",
97*bbecb9d1SAndroid Build Coastguard Worker        "src/gallium/auxiliary/tgsi/tgsi_strings.c",
98*bbecb9d1SAndroid Build Coastguard Worker        "src/gallium/auxiliary/tgsi/tgsi_text.c",
99*bbecb9d1SAndroid Build Coastguard Worker        "src/gallium/auxiliary/tgsi/tgsi_util.c",
100*bbecb9d1SAndroid Build Coastguard Worker        "src/gallium/auxiliary/util/u_debug_describe.c",
101*bbecb9d1SAndroid Build Coastguard Worker        "src/gallium/auxiliary/util/u_format.c",
102*bbecb9d1SAndroid Build Coastguard Worker        "src/gallium/auxiliary/util/u_hash_table.c",
103*bbecb9d1SAndroid Build Coastguard Worker        "src/gallium/auxiliary/util/u_texture.c",
104*bbecb9d1SAndroid Build Coastguard Worker        "src/mesa/util/anon_file.c",
105*bbecb9d1SAndroid Build Coastguard Worker        "src/mesa/util/bitscan.c",
106*bbecb9d1SAndroid Build Coastguard Worker        "src/mesa/util/hash_table.c",
107*bbecb9d1SAndroid Build Coastguard Worker        "src/mesa/util/os_file.c",
108*bbecb9d1SAndroid Build Coastguard Worker        "src/mesa/util/os_misc.c",
109*bbecb9d1SAndroid Build Coastguard Worker        "src/mesa/util/ralloc.c",
110*bbecb9d1SAndroid Build Coastguard Worker        "src/mesa/util/u_cpu_detect.c",
111*bbecb9d1SAndroid Build Coastguard Worker        "src/mesa/util/u_debug.c",
112*bbecb9d1SAndroid Build Coastguard Worker        "src/mesa/util/u_math.c",
113*bbecb9d1SAndroid Build Coastguard Worker        "src/iov.c",
114*bbecb9d1SAndroid Build Coastguard Worker        "src/virgl_context.c",
115*bbecb9d1SAndroid Build Coastguard Worker        "src/virglrenderer.c",
116*bbecb9d1SAndroid Build Coastguard Worker        "src/virgl_resource.c",
117*bbecb9d1SAndroid Build Coastguard Worker        "src/virgl_util.c",
118*bbecb9d1SAndroid Build Coastguard Worker        "src/vrend_blitter.c",
119*bbecb9d1SAndroid Build Coastguard Worker        "src/vrend_debug.c",
120*bbecb9d1SAndroid Build Coastguard Worker        "src/vrend_decode.c",
121*bbecb9d1SAndroid Build Coastguard Worker        "src/vrend_formats.c",
122*bbecb9d1SAndroid Build Coastguard Worker        "src/vrend_object.c",
123*bbecb9d1SAndroid Build Coastguard Worker        "src/vrend_renderer.c",
124*bbecb9d1SAndroid Build Coastguard Worker        "src/vrend_shader.c",
125*bbecb9d1SAndroid Build Coastguard Worker        "src/vrend_tweaks.c",
126*bbecb9d1SAndroid Build Coastguard Worker        "src/vrend_winsys.c",
127*bbecb9d1SAndroid Build Coastguard Worker        "src/vrend_winsys_egl.c",
128*bbecb9d1SAndroid Build Coastguard Worker        "src/vrend_winsys_gbm_stubs.c",
129*bbecb9d1SAndroid Build Coastguard Worker    ],
130*bbecb9d1SAndroid Build Coastguard Worker    target: {
131*bbecb9d1SAndroid Build Coastguard Worker        host_linux: {
132*bbecb9d1SAndroid Build Coastguard Worker            shared_libs: [
133*bbecb9d1SAndroid Build Coastguard Worker                "libepoxy",
134*bbecb9d1SAndroid Build Coastguard Worker            ],
135*bbecb9d1SAndroid Build Coastguard Worker        },
136*bbecb9d1SAndroid Build Coastguard Worker        linux_glibc: {
137*bbecb9d1SAndroid Build Coastguard Worker            cflags: [
138*bbecb9d1SAndroid Build Coastguard Worker                "-Wno-#warnings",
139*bbecb9d1SAndroid Build Coastguard Worker                // FIXME: Figure out how to get C protos for asprintf,
140*bbecb9d1SAndroid Build Coastguard Worker                // pthread_setname_np and sched_getcpu from glibc sysroot
141*bbecb9d1SAndroid Build Coastguard Worker                "-Wno-error=implicit-function-declaration",
142*bbecb9d1SAndroid Build Coastguard Worker            ],
143*bbecb9d1SAndroid Build Coastguard Worker            // Avoid linking to another host copy of libdrm; this library will cause
144*bbecb9d1SAndroid Build Coastguard Worker            // binary GPU drivers to be loaded from the host, which might be linked
145*bbecb9d1SAndroid Build Coastguard Worker            // to a system copy of libdrm, which conflicts with the AOSP one
146*bbecb9d1SAndroid Build Coastguard Worker            allow_undefined_symbols: true,
147*bbecb9d1SAndroid Build Coastguard Worker            header_libs: ["libdrm_headers"],
148*bbecb9d1SAndroid Build Coastguard Worker            exclude_shared_libs: [
149*bbecb9d1SAndroid Build Coastguard Worker                "libdrm",
150*bbecb9d1SAndroid Build Coastguard Worker            ],
151*bbecb9d1SAndroid Build Coastguard Worker        },
152*bbecb9d1SAndroid Build Coastguard Worker        linux_bionic: {
153*bbecb9d1SAndroid Build Coastguard Worker            cflags: [
154*bbecb9d1SAndroid Build Coastguard Worker                // Provide a C proto for memfd_create
155*bbecb9d1SAndroid Build Coastguard Worker                "-D__USE_GNU",
156*bbecb9d1SAndroid Build Coastguard Worker                "-DHAVE_MEMFD_CREATE=1",
157*bbecb9d1SAndroid Build Coastguard Worker            ],
158*bbecb9d1SAndroid Build Coastguard Worker        },
159*bbecb9d1SAndroid Build Coastguard Worker        android: {
160*bbecb9d1SAndroid Build Coastguard Worker            cflags: [
161*bbecb9d1SAndroid Build Coastguard Worker                // Provide a C proto for memfd_create
162*bbecb9d1SAndroid Build Coastguard Worker                "-D__USE_GNU",
163*bbecb9d1SAndroid Build Coastguard Worker                "-DHAVE_MEMFD_CREATE=1",
164*bbecb9d1SAndroid Build Coastguard Worker            ],
165*bbecb9d1SAndroid Build Coastguard Worker            shared_libs: [
166*bbecb9d1SAndroid Build Coastguard Worker                "libcutils",
167*bbecb9d1SAndroid Build Coastguard Worker                "liblog",
168*bbecb9d1SAndroid Build Coastguard Worker            ],
169*bbecb9d1SAndroid Build Coastguard Worker            static_libs: [
170*bbecb9d1SAndroid Build Coastguard Worker                "libepoxy",
171*bbecb9d1SAndroid Build Coastguard Worker            ],
172*bbecb9d1SAndroid Build Coastguard Worker        },
173*bbecb9d1SAndroid Build Coastguard Worker    },
174*bbecb9d1SAndroid Build Coastguard Worker    apex_available: [
175*bbecb9d1SAndroid Build Coastguard Worker        "//apex_available:platform",
176*bbecb9d1SAndroid Build Coastguard Worker        "com.android.virt",
177*bbecb9d1SAndroid Build Coastguard Worker    ],
178*bbecb9d1SAndroid Build Coastguard Worker}
179