| // *** THIS PACKAGE HAS SPECIAL LICENSING CONDITIONS.  PLEASE | 
 | //     CONSULT THE OWNERS AND opensource-licensing@google.com BEFORE | 
 | //     DEPENDING ON IT IN YOUR PROJECT. *** | 
 | package { | 
 |     default_applicable_licenses: ["hardware_google_gfxstream_license"], | 
 | } | 
 |  | 
 | // Added automatically by a large-scale-change that took the approach of | 
 | // 'apply every license found to every target'. While this makes sure we respect | 
 | // every license restriction, it may not be entirely correct. | 
 | // | 
 | // e.g. GPL in an MIT project might only apply to the contrib/ directory. | 
 | // | 
 | // Please consider splitting the single license below into multiple licenses, | 
 | // taking care not to lose any license_kind information, and overriding the | 
 | // default license using the 'licenses: [...]' property on targets as needed. | 
 | // | 
 | // For unused files, consider creating a 'fileGroup' with "//visibility:private" | 
 | // to attach the license to, and including a comment whether the files may be | 
 | // used in the current project. | 
 | // See: http://go/android-license-faq | 
 | license { | 
 |     name: "hardware_google_gfxstream_license", | 
 |     visibility: [ | 
 |         "//hardware/google/aemu:__subpackages__", | 
 |         ":__subpackages__", | 
 |     ], | 
 |     license_kinds: [ | 
 |         "SPDX-license-identifier-Apache-2.0", | 
 |         "SPDX-license-identifier-BSD", | 
 |         "SPDX-license-identifier-CC-BY-4.0", | 
 |         "SPDX-license-identifier-ISC", | 
 |         "SPDX-license-identifier-MIT", | 
 |         "SPDX-license-identifier-BSL-1.0", | 
 |         "legacy_unencumbered", | 
 |     ], | 
 | } | 
 |  | 
 | cc_library_headers { | 
 |     name: "gfxstream_headers", | 
 |     vendor_available: true, | 
 |     host_supported: true, | 
 |     export_include_dirs: [ | 
 |         ".", | 
 |         "include", | 
 |         "host", | 
 |         "host/gl", | 
 |         "host/vulkan", | 
 |         "utils/include", | 
 |     ], | 
 |     header_libs: [ | 
 |         "aemu_common_headers", | 
 |         "gfxstream_magma_headers", | 
 |         "libgfxstream_vulkan_headers", | 
 |     ], | 
 |     export_header_lib_headers: [ | 
 |         "aemu_common_headers", | 
 |         "gfxstream_magma_headers", | 
 |         "libgfxstream_vulkan_headers", | 
 |     ], | 
 |     apex_available: [ | 
 |         "//apex_available:platform", | 
 |         "com.android.virt", | 
 |     ], | 
 | } | 
 |  | 
 | cc_library_headers { | 
 |     name: "gfxstream_x11_headers", | 
 |     vendor_available: true, | 
 |     host_supported: true, | 
 |     export_include_dirs: [ | 
 |         "host/apigen-codec-common", | 
 |     ], | 
 |     apex_available: [ | 
 |         "//apex_available:platform", | 
 |         "com.android.virt", | 
 |     ], | 
 | } | 
 |  | 
 | cc_library_headers { | 
 |     name: "gfxstream_magma_headers", | 
 |     vendor_available: true, | 
 |     host_supported: true, | 
 |     export_include_dirs: [ | 
 |         "third-party/fuchsia/magma/include", | 
 |         // TODO(b/274956288): use consistent header paths | 
 |         "third-party/fuchsia/magma/include/lib", | 
 |     ], | 
 |     apex_available: [ | 
 |         "//apex_available:platform", | 
 |         "com.android.virt", | 
 |     ], | 
 | } | 
 |  | 
 | cc_defaults { | 
 |     name: "gfxstream_cc_defaults", | 
 |     cflags: [ | 
 |         "-DGFXSTREAM", | 
 |     ], | 
 | } | 
 |  | 
 | soong_config_string_variable { | 
 |     name: "mesa3d_platforms", | 
 |     values: [ | 
 |         // Android surfaceless build | 
 |         "none", | 
 |         // The default when variable is not set is Android | 
 |     ], | 
 | } | 
 |  | 
 | cc_defaults { | 
 |     name: "gfxstream_guest_cc_defaults", | 
 |     defaults: [ | 
 |         "gfxstream_cc_defaults", | 
 |     ], | 
 |     cflags: select(soong_config_variable("gfxstream", "mesa3d_platforms"), { | 
 |         // Android surfaceless build | 
 |         "none": [ | 
 |             "-UANDROID", | 
 |             "-U__ANDROID__", | 
 |             "-DLINUX_GUEST_BUILD", | 
 |         ], | 
 |         // The default when variable is not set is Android | 
 |         default: [ | 
 |             "-DVK_USE_PLATFORM_ANDROID_KHR", | 
 |         ], | 
 |     }), | 
 | } | 
 |  | 
 | cc_defaults { | 
 |     name: "gfxstream_host_cc_defaults", | 
 |     defaults: [ | 
 |         "gfxstream_cc_defaults", | 
 |     ], | 
 |     cflags: [ | 
 |         "-DGFXSTREAM_BUILD_WITH_SNAPSHOT_SUPPORT=1", | 
 |         "-DGFXSTREAM_BUILD_WITH_TRACING=1", | 
 |     ] + select(soong_config_variable("gfxstream", "mesa3d_platforms"), { | 
 |         // Android surfaceless build | 
 |         "none": [ | 
 |             "-DGFXSTREAM_ENABLE_GUEST_VIRTIO_RESOURCE_TILING_CONTROL=1", | 
 |         ], | 
 |         // The default when variable is not set is Android | 
 |         default: [], | 
 |     }), | 
 |     target: { | 
 |         host: { | 
 |             cflags: [ | 
 |                 "-DGFXSTREAM_BUILD_WITH_SNAPSHOT_FRONTEND_SUPPORT=1", | 
 |             ], | 
 |         }, | 
 |     }, | 
 | } | 
 |  | 
 | cc_defaults { | 
 |     name: "gfxstream_defaults", | 
 |     cflags: [ | 
 |         // Android build system has some global cflags that we cannot override (e.g. | 
 |         // -Werror=return-type), so -Wno-return-type and -Wno-return-type-c-linkage will not work. | 
 |         // See build/soong/cc/config/global.go | 
 |         "-DUSING_ANDROID_BP", | 
 |         "-D_FILE_OFFSET_BITS=64", | 
 |         "-DVK_GFXSTREAM_STRUCTURE_TYPE_EXT", | 
 |         "-DGFXSTREAM_ENABLE_HOST_GLES=1", | 
 |         "-Wall", | 
 |         "-Werror", | 
 |         "-Wextra", | 
 |         "-Wformat", | 
 |         "-Wshadow", | 
 |         "-Wthread-safety", | 
 |         "-Wno-unused-function", | 
 |         "-Wno-unused-parameter", | 
 |         "-Wno-unused-private-field", | 
 |         "-Wno-unused-variable", | 
 |     ], | 
 |     header_libs: [ | 
 |         "gfxstream_headers", | 
 |         "gfxstream_x11_headers", | 
 |     ], | 
 |     target: { | 
 |         host: { | 
 |             compile_multilib: "64", | 
 |             cflags: [ | 
 |                 "-U__ANDROID__", | 
 |                 "-UANDROID", | 
 |             ], | 
 |         }, | 
 |         android: { | 
 |             compile_multilib: "64", | 
 |             shared_libs: ["libnativewindow"], | 
 |         }, | 
 |         linux_bionic_arm64: { | 
 |             enabled: true, | 
 |             cflags: ["-Dandroidbionic"], | 
 |         }, | 
 |     }, | 
 |     host_supported: true, | 
 |     vendor_available: true, | 
 |  | 
 |     apex_available: [ | 
 |         "//apex_available:platform", | 
 |         "com.android.virt", | 
 |     ], | 
 | } |