xref: /aosp_15_r20/external/mesa3d/Android.bp (revision 6104692788411f58d303aa86923a9ff6ecaded22)
1*61046927SAndroid Build Coastguard Worker// Mesa 3-D graphics library
2*61046927SAndroid Build Coastguard Worker//
3*61046927SAndroid Build Coastguard Worker// Copyright (C) 2010-2011 Chia-I Wu <[email protected]>
4*61046927SAndroid Build Coastguard Worker// Copyright (C) 2010-2011 LunarG Inc.
5*61046927SAndroid Build Coastguard Worker//
6*61046927SAndroid Build Coastguard Worker// Permission is hereby granted, free of charge, to any person obtaining a
7*61046927SAndroid Build Coastguard Worker// copy of this software and associated documentation files (the "Software"),
8*61046927SAndroid Build Coastguard Worker// to deal in the Software without restriction, including without limitation
9*61046927SAndroid Build Coastguard Worker// the rights to use, copy, modify, merge, publish, distribute, sublicense,
10*61046927SAndroid Build Coastguard Worker// and/or sell copies of the Software, and to permit persons to whom the
11*61046927SAndroid Build Coastguard Worker// Software is furnished to do so, subject to the following conditions:
12*61046927SAndroid Build Coastguard Worker//
13*61046927SAndroid Build Coastguard Worker// The above copyright notice and this permission notice shall be included
14*61046927SAndroid Build Coastguard Worker// in all copies or substantial portions of the Software.
15*61046927SAndroid Build Coastguard Worker//
16*61046927SAndroid Build Coastguard Worker// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17*61046927SAndroid Build Coastguard Worker// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18*61046927SAndroid Build Coastguard Worker// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
19*61046927SAndroid Build Coastguard Worker// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20*61046927SAndroid Build Coastguard Worker// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
21*61046927SAndroid Build Coastguard Worker// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
22*61046927SAndroid Build Coastguard Worker// DEALINGS IN THE SOFTWARE.
23*61046927SAndroid Build Coastguard Worker
24*61046927SAndroid Build Coastguard Worker// *** THIS PACKAGE HAS SPECIAL LICENSING CONDITIONS.  PLEASE
25*61046927SAndroid Build Coastguard Worker//     CONSULT THE OWNERS AND [email protected] BEFORE
26*61046927SAndroid Build Coastguard Worker//     DEPENDING ON IT IN YOUR PROJECT. ***
27*61046927SAndroid Build Coastguard Worker
28*61046927SAndroid Build Coastguard Workerpackage {
29*61046927SAndroid Build Coastguard Worker    default_applicable_licenses: ["external_mesa3d_license"],
30*61046927SAndroid Build Coastguard Worker}
31*61046927SAndroid Build Coastguard Worker
32*61046927SAndroid Build Coastguard Worker// Added automatically by a large-scale-change that took the approach of
33*61046927SAndroid Build Coastguard Worker// 'apply every license found to every target'. While this makes sure we respect
34*61046927SAndroid Build Coastguard Worker// every license restriction, it may not be entirely correct.
35*61046927SAndroid Build Coastguard Worker//
36*61046927SAndroid Build Coastguard Worker// e.g. GPL in an MIT project might only apply to the contrib/ directory.
37*61046927SAndroid Build Coastguard Worker//
38*61046927SAndroid Build Coastguard Worker// Please consider splitting the single license below into multiple licenses,
39*61046927SAndroid Build Coastguard Worker// taking care not to lose any license_kind information, and overriding the
40*61046927SAndroid Build Coastguard Worker// default license using the 'licenses: [...]' property on targets as needed.
41*61046927SAndroid Build Coastguard Worker//
42*61046927SAndroid Build Coastguard Worker// For unused files, consider creating a 'fileGroup' with "//visibility:private"
43*61046927SAndroid Build Coastguard Worker// to attach the license to, and including a comment whether the files may be
44*61046927SAndroid Build Coastguard Worker// used in the current project.
45*61046927SAndroid Build Coastguard Worker// See: http://go/android-license-faq
46*61046927SAndroid Build Coastguard Workerlicense {
47*61046927SAndroid Build Coastguard Worker    name: "external_mesa3d_license",
48*61046927SAndroid Build Coastguard Worker    visibility: [":__subpackages__"],
49*61046927SAndroid Build Coastguard Worker    license_kinds: [
50*61046927SAndroid Build Coastguard Worker        "SPDX-license-identifier-Apache-2.0",
51*61046927SAndroid Build Coastguard Worker        "SPDX-license-identifier-BSD",
52*61046927SAndroid Build Coastguard Worker        "SPDX-license-identifier-BSL-1.0",
53*61046927SAndroid Build Coastguard Worker        "SPDX-license-identifier-GPL",
54*61046927SAndroid Build Coastguard Worker        "SPDX-license-identifier-GPL-2.0",
55*61046927SAndroid Build Coastguard Worker        "SPDX-license-identifier-ISC",
56*61046927SAndroid Build Coastguard Worker        "SPDX-license-identifier-MIT",
57*61046927SAndroid Build Coastguard Worker        "SPDX-license-identifier-Unlicense",
58*61046927SAndroid Build Coastguard Worker        "legacy_by_exception_only", // by exception only
59*61046927SAndroid Build Coastguard Worker        "legacy_notice",
60*61046927SAndroid Build Coastguard Worker        "legacy_unencumbered",
61*61046927SAndroid Build Coastguard Worker    ],
62*61046927SAndroid Build Coastguard Worker    license_text: [
63*61046927SAndroid Build Coastguard Worker        "LICENSE",
64*61046927SAndroid Build Coastguard Worker    ],
65*61046927SAndroid Build Coastguard Worker}
66*61046927SAndroid Build Coastguard Worker
67*61046927SAndroid Build Coastguard Workercc_defaults {
68*61046927SAndroid Build Coastguard Worker    name: "mesa_version_defaults",
69*61046927SAndroid Build Coastguard Worker    cflags: ["-DPACKAGE_VERSION=\"24.2\""],
70*61046927SAndroid Build Coastguard Worker}
71*61046927SAndroid Build Coastguard Worker
72*61046927SAndroid Build Coastguard Workerpython_binary_host {
73*61046927SAndroid Build Coastguard Worker    name: "git_sha1_gen",
74*61046927SAndroid Build Coastguard Worker    main: "bin/git_sha1_gen.py",
75*61046927SAndroid Build Coastguard Worker    srcs: [
76*61046927SAndroid Build Coastguard Worker        "bin/git_sha1_gen.py",
77*61046927SAndroid Build Coastguard Worker    ],
78*61046927SAndroid Build Coastguard Worker}
79*61046927SAndroid Build Coastguard Worker
80*61046927SAndroid Build Coastguard Workergenrule {
81*61046927SAndroid Build Coastguard Worker    name: "git_sha1_header",
82*61046927SAndroid Build Coastguard Worker    out: ["git_sha1.h"],
83*61046927SAndroid Build Coastguard Worker    tools: ["git_sha1_gen"],
84*61046927SAndroid Build Coastguard Worker    cmd: "python3 $(location git_sha1_gen) " +
85*61046927SAndroid Build Coastguard Worker        "--output $(location git_sha1.h)",
86*61046927SAndroid Build Coastguard Worker}
87*61046927SAndroid Build Coastguard Worker
88*61046927SAndroid Build Coastguard Workercc_library_headers {
89*61046927SAndroid Build Coastguard Worker    name: "mesa_common_headers",
90*61046927SAndroid Build Coastguard Worker    vendor_available: true,
91*61046927SAndroid Build Coastguard Worker    host_supported: true,
92*61046927SAndroid Build Coastguard Worker    export_include_dirs: [
93*61046927SAndroid Build Coastguard Worker        "src",
94*61046927SAndroid Build Coastguard Worker        "include",
95*61046927SAndroid Build Coastguard Worker    ],
96*61046927SAndroid Build Coastguard Worker    cflags: [
97*61046927SAndroid Build Coastguard Worker        "-DVK_USE_PLATFORM_ANDROID_KHR",
98*61046927SAndroid Build Coastguard Worker    ],
99*61046927SAndroid Build Coastguard Worker    visibility: [":__subpackages__"],
100*61046927SAndroid Build Coastguard Worker}
101*61046927SAndroid Build Coastguard Worker
102*61046927SAndroid Build Coastguard Worker// This needs to be kept in sync with Android.common.mk
103*61046927SAndroid Build Coastguard Workercc_defaults {
104*61046927SAndroid Build Coastguard Worker    name: "mesa_common_defaults",
105*61046927SAndroid Build Coastguard Worker    defaults: ["mesa_version_defaults"],
106*61046927SAndroid Build Coastguard Worker    // uncomment to keep the debug symbols
107*61046927SAndroid Build Coastguard Worker    // strip: { none: true, },
108*61046927SAndroid Build Coastguard Worker    header_libs: ["mesa_common_headers"],
109*61046927SAndroid Build Coastguard Worker    cflags: [
110*61046927SAndroid Build Coastguard Worker        "-Wno-error",
111*61046927SAndroid Build Coastguard Worker        "-Werror=incompatible-pointer-types",
112*61046927SAndroid Build Coastguard Worker        "-Wno-unused-parameter",
113*61046927SAndroid Build Coastguard Worker        "-Wno-pointer-arith",
114*61046927SAndroid Build Coastguard Worker        "-Wno-missing-field-initializers",
115*61046927SAndroid Build Coastguard Worker        "-Wno-initializer-overrides",
116*61046927SAndroid Build Coastguard Worker        "-Wno-mismatched-tags",
117*61046927SAndroid Build Coastguard Worker        // PACKAGE_VERSION is in mesa_version_defaults
118*61046927SAndroid Build Coastguard Worker        "-DPACKAGE_BUGREPORT=\"https://bugs.freedesktop.org/enter_bug.cgi?product=Mesa\"",
119*61046927SAndroid Build Coastguard Worker        // XXX: The following __STDC_*_MACROS defines should not be needed.
120*61046927SAndroid Build Coastguard Worker        // It's likely due to a bug elsewhere, but let's temporarily add them
121*61046927SAndroid Build Coastguard Worker        // here to fix the radeonsi build.
122*61046927SAndroid Build Coastguard Worker        "-DENABLE_SHADER_CACHE",
123*61046927SAndroid Build Coastguard Worker        "-D__STDC_CONSTANT_MACROS",
124*61046927SAndroid Build Coastguard Worker        "-D__STDC_LIMIT_MACROS",
125*61046927SAndroid Build Coastguard Worker        "-DHAVE___BUILTIN_EXPECT",
126*61046927SAndroid Build Coastguard Worker        "-DHAVE___BUILTIN_FFS",
127*61046927SAndroid Build Coastguard Worker        "-DHAVE___BUILTIN_FFSLL",
128*61046927SAndroid Build Coastguard Worker        "-DHAVE_DLFCN_H",
129*61046927SAndroid Build Coastguard Worker        "-DHAVE_FUNC_ATTRIBUTE_FLATTEN",
130*61046927SAndroid Build Coastguard Worker        "-DHAVE_FUNC_ATTRIBUTE_UNUSED",
131*61046927SAndroid Build Coastguard Worker        "-DHAVE_FUNC_ATTRIBUTE_FORMAT",
132*61046927SAndroid Build Coastguard Worker        "-DHAVE_FUNC_ATTRIBUTE_PACKED",
133*61046927SAndroid Build Coastguard Worker        "-DHAVE_FUNC_ATTRIBUTE_ALIAS",
134*61046927SAndroid Build Coastguard Worker        "-DHAVE_FUNC_ATTRIBUTE_NORETURN",
135*61046927SAndroid Build Coastguard Worker        "-DHAVE_FUNC_ATTRIBUTE_RETURNS_NONNULL",
136*61046927SAndroid Build Coastguard Worker        "-DHAVE_FUNC_ATTRIBUTE_WARN_UNUSED_RESULT",
137*61046927SAndroid Build Coastguard Worker        "-DHAVE___BUILTIN_CTZ",
138*61046927SAndroid Build Coastguard Worker        "-DHAVE___BUILTIN_POPCOUNT",
139*61046927SAndroid Build Coastguard Worker        "-DHAVE___BUILTIN_POPCOUNTLL",
140*61046927SAndroid Build Coastguard Worker        "-DHAVE___BUILTIN_CLZ",
141*61046927SAndroid Build Coastguard Worker        "-DHAVE___BUILTIN_CLZLL",
142*61046927SAndroid Build Coastguard Worker        "-DHAVE___BUILTIN_UNREACHABLE",
143*61046927SAndroid Build Coastguard Worker        "-DHAVE_PTHREAD=1",
144*61046927SAndroid Build Coastguard Worker        "-DHAVE_DLADDR",
145*61046927SAndroid Build Coastguard Worker        "-DHAVE_DL_ITERATE_PHDR",
146*61046927SAndroid Build Coastguard Worker        "-DHAVE_LINUX_FUTEX_H",
147*61046927SAndroid Build Coastguard Worker        "-DHAVE_ENDIAN_H",
148*61046927SAndroid Build Coastguard Worker        "-DMAJOR_IN_SYSMACROS",
149*61046927SAndroid Build Coastguard Worker        "-DVK_USE_PLATFORM_ANDROID_KHR",
150*61046927SAndroid Build Coastguard Worker        "-fvisibility=hidden",
151*61046927SAndroid Build Coastguard Worker        "-fno-math-errno",
152*61046927SAndroid Build Coastguard Worker        "-fno-trapping-math",
153*61046927SAndroid Build Coastguard Worker        "-Werror",
154*61046927SAndroid Build Coastguard Worker        "-Wno-#warnings",
155*61046927SAndroid Build Coastguard Worker        "-Wno-asm-operand-widths",
156*61046927SAndroid Build Coastguard Worker        "-Wno-cast-calling-convention",
157*61046927SAndroid Build Coastguard Worker        "-Wno-constant-logical-operand",
158*61046927SAndroid Build Coastguard Worker        "-Wno-enum-conversion",
159*61046927SAndroid Build Coastguard Worker        "-Wno-format",
160*61046927SAndroid Build Coastguard Worker        "-Wno-gnu-variable-sized-type-not-at-end",
161*61046927SAndroid Build Coastguard Worker        "-Wno-implicit-fallthrough",
162*61046927SAndroid Build Coastguard Worker        "-Wno-implicit-int",
163*61046927SAndroid Build Coastguard Worker        "-Wno-incompatible-pointer-types",
164*61046927SAndroid Build Coastguard Worker        "-Wno-missing-braces",
165*61046927SAndroid Build Coastguard Worker        "-Wno-overloaded-virtual",
166*61046927SAndroid Build Coastguard Worker        "-Wno-self-assign",
167*61046927SAndroid Build Coastguard Worker        "-Wno-shift-negative-value",
168*61046927SAndroid Build Coastguard Worker        "-Wno-sign-compare",
169*61046927SAndroid Build Coastguard Worker        "-Wno-sometimes-uninitialized",
170*61046927SAndroid Build Coastguard Worker        "-Wno-switch",
171*61046927SAndroid Build Coastguard Worker        "-Wno-typedef-redefinition",
172*61046927SAndroid Build Coastguard Worker        "-Wno-uninitialized",
173*61046927SAndroid Build Coastguard Worker        "-Wno-implicit-const-int-float-conversion",
174*61046927SAndroid Build Coastguard Worker        "-Wno-sync-alignment",
175*61046927SAndroid Build Coastguard Worker        "-Wno-implicit-function-declaration",
176*61046927SAndroid Build Coastguard Worker        "-Wno-constant-conversion",
177*61046927SAndroid Build Coastguard Worker        "-DHAVE_TIMESPEC_GET",
178*61046927SAndroid Build Coastguard Worker        "-DHAVE_STRUCT_TIMESPEC",
179*61046927SAndroid Build Coastguard Worker    ],
180*61046927SAndroid Build Coastguard Worker    c_std: "c11",
181*61046927SAndroid Build Coastguard Worker    cppflags: [
182*61046927SAndroid Build Coastguard Worker        "-D__STDC_CONSTANT_MACROS",
183*61046927SAndroid Build Coastguard Worker        "-D__STDC_FORMAT_MACROS",
184*61046927SAndroid Build Coastguard Worker        "-D__STDC_LIMIT_MACROS",
185*61046927SAndroid Build Coastguard Worker        "-Wno-error=non-virtual-dtor",
186*61046927SAndroid Build Coastguard Worker        "-Wno-non-virtual-dtor",
187*61046927SAndroid Build Coastguard Worker    ],
188*61046927SAndroid Build Coastguard Worker    arch: {
189*61046927SAndroid Build Coastguard Worker        arm: {
190*61046927SAndroid Build Coastguard Worker            cflags: ["-DNO_FORMAT_ASM"],
191*61046927SAndroid Build Coastguard Worker        },
192*61046927SAndroid Build Coastguard Worker        arm64: {
193*61046927SAndroid Build Coastguard Worker            cflags: ["-DNO_FORMAT_ASM"],
194*61046927SAndroid Build Coastguard Worker        },
195*61046927SAndroid Build Coastguard Worker    },
196*61046927SAndroid Build Coastguard Worker    multilib: {
197*61046927SAndroid Build Coastguard Worker        lib32: {
198*61046927SAndroid Build Coastguard Worker            cflags: ["-DDEFAULT_DRIVER_DIR=\"/vendor/lib/dri\""],
199*61046927SAndroid Build Coastguard Worker        },
200*61046927SAndroid Build Coastguard Worker        lib64: {
201*61046927SAndroid Build Coastguard Worker            cflags: ["-DDEFAULT_DRIVER_DIR=\"/vendor/lib64/dri\""],
202*61046927SAndroid Build Coastguard Worker        },
203*61046927SAndroid Build Coastguard Worker    },
204*61046927SAndroid Build Coastguard Worker    product_variables: {
205*61046927SAndroid Build Coastguard Worker        platform_sdk_version: {
206*61046927SAndroid Build Coastguard Worker            cflags: ["-DANDROID_API_LEVEL=%d"],
207*61046927SAndroid Build Coastguard Worker        },
208*61046927SAndroid Build Coastguard Worker    },
209*61046927SAndroid Build Coastguard Worker    target: {
210*61046927SAndroid Build Coastguard Worker        host: {
211*61046927SAndroid Build Coastguard Worker            cflags: [
212*61046927SAndroid Build Coastguard Worker                "-D_GNU_SOURCE",
213*61046927SAndroid Build Coastguard Worker                "-DHAVE_LIBDRM",
214*61046927SAndroid Build Coastguard Worker                "-DHAVE_SECURE_GETENV",
215*61046927SAndroid Build Coastguard Worker            ],
216*61046927SAndroid Build Coastguard Worker            shared_libs: ["libdrm"],
217*61046927SAndroid Build Coastguard Worker        },
218*61046927SAndroid Build Coastguard Worker    },
219*61046927SAndroid Build Coastguard Worker}
220