blob: a993c19dbd10eb2592193eea69c31426a26971b5 [file] [log] [blame]
Bob Badour650a8da2021-02-12 21:06:44 -08001// *** THIS PACKAGE HAS SPECIAL LICENSING CONDITIONS. PLEASE
2// CONSULT THE OWNERS AND opensource-licensing@google.com BEFORE
3// DEPENDING ON IT IN YOUR PROJECT. ***
Jason Macnak842f4762023-04-28 11:55:05 -07004package {
5 default_applicable_licenses: ["hardware_google_gfxstream_license"],
6}
7
Bob Badour650a8da2021-02-12 21:06:44 -08008// Added automatically by a large-scale-change that took the approach of
9// 'apply every license found to every target'. While this makes sure we respect
10// every license restriction, it may not be entirely correct.
11//
12// e.g. GPL in an MIT project might only apply to the contrib/ directory.
13//
14// Please consider splitting the single license below into multiple licenses,
15// taking care not to lose any license_kind information, and overriding the
16// default license using the 'licenses: [...]' property on targets as needed.
17//
18// For unused files, consider creating a 'fileGroup' with "//visibility:private"
19// to attach the license to, and including a comment whether the files may be
20// used in the current project.
21// See: http://go/android-license-faq
Jason Macnak842f4762023-04-28 11:55:05 -070022license {
23 name: "hardware_google_gfxstream_license",
Joshua Duong9a82ffb2022-09-14 09:32:35 -070024 visibility: [
25 "//hardware/google/aemu:__subpackages__",
26 ":__subpackages__",
27 ],
Jason Macnak842f4762023-04-28 11:55:05 -070028 license_kinds: [
29 "SPDX-license-identifier-Apache-2.0",
Bob Badour650a8da2021-02-12 21:06:44 -080030 "SPDX-license-identifier-BSD",
Kaiyi Li6db96402022-02-09 10:52:09 -080031 "SPDX-license-identifier-CC-BY-4.0",
Bob Badour650a8da2021-02-12 21:06:44 -080032 "SPDX-license-identifier-ISC",
Jason Macnak842f4762023-04-28 11:55:05 -070033 "SPDX-license-identifier-MIT",
Gurchetan Singh876877a2023-08-07 15:15:58 -070034 "SPDX-license-identifier-BSL-1.0",
Bob Badour650a8da2021-02-12 21:06:44 -080035 "legacy_unencumbered",
36 ],
Bob Badour650a8da2021-02-12 21:06:44 -080037}
38
Lingfeng Yanga2a3b0f2020-11-04 11:50:46 -080039cc_library_headers {
40 name: "gfxstream_headers",
Jason Macnak843b84b2023-05-19 14:19:25 -070041 vendor_available: true,
Lingfeng Yanga2a3b0f2020-11-04 11:50:46 -080042 host_supported: true,
43 export_include_dirs: [
44 ".",
45 "include",
Jason Macnak648a9ed2023-05-19 10:31:36 -070046 "host",
47 "host/gl",
48 "host/gl/glestranslator/include",
49 "host/vulkan",
Joshua Duong88a0f0a2022-10-25 11:32:14 -070050 "utils/include",
Jiyong Park8d7916e2020-12-07 15:07:35 +090051 ],
Joshua Duong9d3511c2022-09-06 11:10:45 -070052 header_libs: [
53 "aemu_common_headers",
Matt Sandye815f352023-03-10 18:28:35 +000054 "gfxstream_magma_headers",
Jason Macnakb808eeb2024-02-27 10:03:39 -080055 "libgfxstream_vulkan_headers",
Joshua Duong9d3511c2022-09-06 11:10:45 -070056 ],
57 export_header_lib_headers: [
58 "aemu_common_headers",
Matt Sandye815f352023-03-10 18:28:35 +000059 "gfxstream_magma_headers",
Jason Macnakb808eeb2024-02-27 10:03:39 -080060 "libgfxstream_vulkan_headers",
Joshua Duong9d3511c2022-09-06 11:10:45 -070061 ],
Jiyong Park8d7916e2020-12-07 15:07:35 +090062 apex_available: [
63 "//apex_available:platform",
64 "com.android.virt",
65 ],
Lingfeng Yanga2a3b0f2020-11-04 11:50:46 -080066}
67
Lingfeng Yangeb752672020-11-09 16:35:58 -080068cc_library_headers {
69 name: "gfxstream_x11_headers",
Jason Macnak843b84b2023-05-19 14:19:25 -070070 vendor_available: true,
Lingfeng Yangeb752672020-11-09 16:35:58 -080071 host_supported: true,
72 export_include_dirs: [
Jason Macnak648a9ed2023-05-19 10:31:36 -070073 "host/apigen-codec-common",
Jiyong Park8d7916e2020-12-07 15:07:35 +090074 ],
75 apex_available: [
76 "//apex_available:platform",
77 "com.android.virt",
78 ],
Lingfeng Yangeb752672020-11-09 16:35:58 -080079}
80
Matt Sandye815f352023-03-10 18:28:35 +000081cc_library_headers {
82 name: "gfxstream_magma_headers",
Jason Macnak843b84b2023-05-19 14:19:25 -070083 vendor_available: true,
Matt Sandye815f352023-03-10 18:28:35 +000084 host_supported: true,
85 export_include_dirs: [
86 "third-party/fuchsia/magma/include",
Matt Sandydf039812023-04-24 10:59:21 -070087 // TODO(b/274956288): use consistent header paths
88 "third-party/fuchsia/magma/include/lib",
Matt Sandye815f352023-03-10 18:28:35 +000089 ],
90 apex_available: [
91 "//apex_available:platform",
92 "com.android.virt",
93 ],
94}
95
Lingfeng Yanga2a3b0f2020-11-04 11:50:46 -080096cc_defaults {
Jason Macnak843b84b2023-05-19 14:19:25 -070097 name: "gfxstream_cc_defaults",
98 cflags: [
99 "-DGFXSTREAM",
100 ],
101}
102
Marcin Radomskid5780332024-07-16 14:04:39 +0000103soong_config_string_variable {
104 name: "mesa3d_platforms",
105 values: [
106 // Android surfaceless build
107 "none",
108 // The default when variable is not set is Android
109 ],
110}
111
Jason Macnak843b84b2023-05-19 14:19:25 -0700112cc_defaults {
113 name: "gfxstream_guest_cc_defaults",
114 defaults: [
115 "gfxstream_cc_defaults",
116 ],
Marcin Radomskid06a9fe2024-08-14 16:55:28 +0000117 cflags: select(soong_config_variable("gfxstream", "mesa3d_platforms"), {
118 // Android surfaceless build
119 "none": [
120 "-UANDROID",
121 "-U__ANDROID__",
122 "-DLINUX_GUEST_BUILD",
123 ],
124 // The default when variable is not set is Android
125 default: [
126 "-DVK_USE_PLATFORM_ANDROID_KHR",
127 ],
128 }),
Jason Macnak843b84b2023-05-19 14:19:25 -0700129}
130
131cc_defaults {
132 name: "gfxstream_host_cc_defaults",
133 defaults: [
134 "gfxstream_cc_defaults",
135 ],
Jason Macnak9bc12d92024-08-28 19:20:05 +0000136 cflags: [
137 "-DGFXSTREAM_BUILD_WITH_TRACING=1",
138 ] + select(soong_config_variable("gfxstream", "mesa3d_platforms"), {
Marcin Radomskia36f75a2024-08-21 17:16:10 +0000139 // Android surfaceless build
140 "none": [
141 "-DGFXSTREAM_ENABLE_GUEST_VIRTIO_RESOURCE_TILING_CONTROL=1",
142 ],
143 // The default when variable is not set is Android
144 default: [],
145 }),
Jason Macnak843b84b2023-05-19 14:19:25 -0700146}
147
148cc_defaults {
Lingfeng Yanga2a3b0f2020-11-04 11:50:46 -0800149 name: "gfxstream_defaults",
Joshua Duonge3b2c5c2022-05-31 08:27:47 -0700150 cflags: [
151 // Android build system has some global cflags that we cannot override (e.g.
152 // -Werror=return-type), so -Wno-return-type and -Wno-return-type-c-linkage will not work.
153 // See build/soong/cc/config/global.go
154 "-DUSING_ANDROID_BP",
155 "-D_FILE_OFFSET_BITS=64",
Gurchetan Singh2cf08ad2023-11-07 19:45:32 -0800156 "-DVK_GFXSTREAM_STRUCTURE_TYPE_EXT",
Gurchetan Singh95b30dc2024-01-18 18:31:15 -0800157 "-DGFXSTREAM_ENABLE_HOST_GLES=1",
Gurchetan Singh29946e82024-02-08 08:51:09 -0800158 "-DGFXSTREAM_ENABLE_HOST_VK_SNAPSHOT=1",
Joshua Duonge3b2c5c2022-05-31 08:27:47 -0700159 "-Wno-unreachable-code-loop-increment",
160 "-Wno-unused-parameter",
161 "-Wno-unused-function",
162 "-Wno-unused-variable",
163 "-Wno-ignored-qualifiers",
164 "-Wno-reorder-ctor",
165 "-Wno-mismatched-tags",
166 "-Wno-missing-field-initializers",
167 "-Wno-implicit-fallthrough",
168 "-Wno-unused-private-field",
169 "-Wno-macro-redefined",
170 ],
Lingfeng Yanga2a3b0f2020-11-04 11:50:46 -0800171 header_libs: [
172 "gfxstream_headers",
Lingfeng Yangeb752672020-11-09 16:35:58 -0800173 "gfxstream_x11_headers",
Lingfeng Yanga2a3b0f2020-11-04 11:50:46 -0800174 ],
175 target: {
176 host: {
177 compile_multilib: "64",
Lingfeng Yange2c5bb22020-11-11 13:44:39 -0800178 cflags: [
179 "-U__ANDROID__",
180 "-UANDROID",
Jason Macnake17ba9b2024-02-27 10:19:24 -0800181 ],
Lingfeng Yange2c5bb22020-11-11 13:44:39 -0800182 },
183 android: {
184 compile_multilib: "64",
Jason Macnake17ba9b2024-02-27 10:19:24 -0800185 shared_libs: ["libnativewindow"],
Lingfeng Yanga2a3b0f2020-11-04 11:50:46 -0800186 },
Lingfeng Yangeb752672020-11-09 16:35:58 -0800187 linux_bionic_arm64: {
188 enabled: true,
Jason Macnake17ba9b2024-02-27 10:19:24 -0800189 cflags: ["-Dandroidbionic"],
190 },
Lingfeng Yanga2a3b0f2020-11-04 11:50:46 -0800191 },
Lingfeng Yanga2a3b0f2020-11-04 11:50:46 -0800192 host_supported: true,
Jason Macnak459dd872023-09-13 08:27:41 -0700193 vendor_available: true,
Jiyong Park8d7916e2020-12-07 15:07:35 +0900194
195 apex_available: [
196 "//apex_available:platform",
197 "com.android.virt",
Jason Macnak842f4762023-04-28 11:55:05 -0700198 ],
199}