1package { 2 default_team: "trendy_team_android_gpu", 3 default_applicable_licenses: ["external_deqp_license"], 4} 5 6// Added automatically by a large-scale-change that took the approach of 7// 'apply every license found to every target'. While this makes sure we respect 8// every license restriction, it may not be entirely correct. 9// 10// e.g. GPL in an MIT project might only apply to the contrib/ directory. 11// 12// Please consider splitting the single license below into multiple licenses, 13// taking care not to lose any license_kind information, and overriding the 14// default license using the 'licenses: [...]' property on targets as needed. 15// 16// For unused files, consider creating a 'fileGroup' with "//visibility:private" 17// to attach the license to, and including a comment whether the files may be 18// used in the current project. 19// 20// large-scale-change included anything that looked like it might be a license 21// text as a license_text. e.g. LICENSE, NOTICE, COPYING etc. 22// 23// Please consider removing redundant or irrelevant files from 'license_text:'. 24// See: http://go/android-license-faq 25license { 26 name: "external_deqp_license", 27 visibility: [":__subpackages__"], 28 license_kinds: [ 29 "SPDX-license-identifier-Apache-2.0", 30 "SPDX-license-identifier-BSD", 31 "SPDX-license-identifier-MIT", 32 ], 33 license_text: [ 34 "LICENSE", 35 "NOTICE", 36 ], 37} 38 39build = [ 40 "AndroidGen.bp", 41 "AndroidKhronosCTSGen.bp", 42] 43 44// Used by Amber. 45// Amber includes "vkDefs.h". 46cc_library_headers { 47 name: "deqp_vulkan_headers", 48 defaults: ["deqp_and_deps_defaults"], 49 export_include_dirs: [ 50 "external/vulkancts/framework/vulkan", 51 "external/vulkancts/framework/vulkan/generated/vulkan", 52 "framework/delibs/debase", 53 ], 54} 55 56// These defaults ensure we have a consistent set of defines and compiler flags 57// across dEQP and its dependencies. 58cc_defaults { 59 name: "deqp_and_deps_defaults", 60 cpp_std: "c++17", 61 cflags: [ 62 // Amber defines. 63 "-DAMBER_CTS_VULKAN_HEADER=1", 64 "-DAMBER_ENABLE_CLSPV=0", 65 "-DAMBER_ENABLE_DXC=0", 66 "-DAMBER_ENABLE_LODEPNG=1", // This has no effect. 67 "-DAMBER_ENABLE_RTTI=1", 68 "-DAMBER_ENABLE_SHADERC=0", 69 "-DAMBER_ENABLE_SPIRV_TOOLS=0", 70 "-DAMBER_ENABLE_VK_DEBUGGING=0", 71 "-DAMBER_ENGINE_DAWN=0", 72 "-DAMBER_ENGINE_VULKAN=1", 73 74 // glslang defines: 75 "-DENABLE_HLSL", 76 "-DENABLE_OPT=0", 77 "-DGLSLANG_OSINCLUDE_UNIX", 78 79 // SPIRV-Tools defines: 80 "-DSPIRV_ANDROID", 81 "-DSPIRV_CHECK_CONTEXT", 82 "-DSPIRV_COLOR_TERMINAL", 83 "-DSPIRV_TIMER_ENABLED", 84 85 // Android/Clang defines (not needed): 86 // -D_FORTIFY_SOURCE=2 87 // -DANDROID 88 // -DNDEBUG 89 90 // dEQP defines that we don't want/need: 91 // -DDE_DEBUG 92 // -DDEQP_USE_RELEASE_INFO_FILE 93 // -DPNG_DEBUG 94 95 // dEQP defines that are worked out in deDefs.h, without needing 96 // explicit defs: 97 // -DDE_PTR_SIZE=8 98 // -DDE_CPU=DE_CPU_ARM_64 99 //"-DDE_FENV_ACCESS_ON=_Pragma(\"STDC FENV_ACCESS ON\")", 100 101 // dEQP defines: 102 "-D_XOPEN_SOURCE=600", 103 "-DDE_ASSERT_FAILURE_CALLBACK", 104 "-DDE_COMPILER=DE_COMPILER_CLANG", 105 "-DDE_MINGW=0", 106 "-DDE_OS=DE_OS_ANDROID", 107 "-DDEQP_GLES2_DIRECT_LINK=1", 108 "-DDEQP_HAVE_RENDERDOC_HEADER=0", // Needs to be 0. 109 "-DDEQP_EXCLUDE_VK_VIDEO_TESTS", 110 "-DDEQP_SUPPORT_DRM=0", 111 "-DDEQP_SUPPORT_GLES1=1", 112 "-DDEQP_TARGET_NAME=\"Android\"", 113 "-DQP_SUPPORT_PNG", 114 "-DCTS_USES_VULKAN", 115 116 "-Wall", 117 "-Werror", 118 "-Wconversion", 119 120 "-fwrapv", 121 ], 122 cppflags: [ 123 "-fexceptions", 124 ], 125 sdk_version: "27", 126 rtti: true, 127 stl: "c++_static", 128 product_variables: { 129 platform_sdk_version: { 130 cflags: [ 131 // dEQP defines: 132 "-DDE_ANDROID_API=%d", 133 ], 134 }, 135 }, 136 ldflags: [ 137 // b/358374878 workaround suspected 32b linker bug 138 "-Wl,-icf=none", 139 ], 140} 141 142cc_library_shared { 143 name: "libdeqp", 144 defaults: ["libdeqp_defaults"], 145} 146 147cc_defaults { 148 name: "libdeqp_defaults", 149 defaults: [ 150 "libdeqp_gen", 151 "deqp_and_deps_defaults", 152 ], 153 154 tidy_checks: [ 155 // The clang-tidy google-explicit-constructor warning is issued to nearly 156 // 1000 conversion constructors in this project. They are from more than 157 // 500 source files. Most of them should be declared explicit, but many 158 // of them need to be implicit. Until we correctly mark them as explicit 159 // or NOLINT(implicit), we suppress the google-explicit-constructor check. 160 "-google-explicit-constructor", 161 162 "-google-build-explicit-make-pair", 163 "-google-global-names-in-headers", 164 "-google-runtime-member-string-references", 165 "-google-runtime-operator", 166 ], 167 168 header_libs: ["jni_headers"], 169 170 include_dirs: [ 171 "external/deqp-deps/SPIRV-Headers/include", 172 ], 173 174 shared_libs: [ 175 "libEGL", 176 "libGLESv2", 177 "libandroid", 178 "liblog", 179 "libm", 180 "libc", 181 "libz", 182 "libdl", 183 ], 184 185 static_libs: [ 186 "libpng_ndk", 187 "deqp_glslang_glslang", 188 "deqp_glslang_OSDependent", 189 "deqp_glslang_MachineIndependent", 190 "deqp_glslang_GenericCodeGen", 191 "deqp_glslang_SPIRV", 192 "deqp_glslang_SPVRemapper", 193 "deqp_spirv-tools", 194 "deqp_amber", 195 ], 196 197 cflags: [ 198 "-Wno-implicit-fallthrough", 199 "-Wno-sign-conversion", 200 "-Wno-unused-private-field", 201 "-Wno-shorten-64-to-32", 202 ], 203 204 cppflags: [ 205 "-Wno-non-virtual-dtor", 206 "-Wno-delete-non-virtual-dtor", 207 "-Wno-implicit-int-conversion", 208 "-Wno-missing-field-initializers", 209 "-Wno-switch", 210 "-Wno-unused-parameter", 211 "-Wno-unused-variable", 212 ], 213} 214 215android_test { 216 name: "com.drawelements.deqp", 217 218 test_suites: [ 219 "vts10", 220 ], 221 222 srcs: ["android/package/src/**/*.java"], 223 resource_dirs: ["android/package/res"], 224 manifest: "android/package/AndroidManifest-integration.xml", 225 226 asset_dirs: [ 227 "data", 228 "external/vulkancts/data", 229 "external/graphicsfuzz/data", 230 ], 231 232 jni_libs: ["libdeqp"], 233 234 compile_multilib: "both", 235 236 // We could go down all the way to API-13 for 32bit. 22 is required for 64bit ARM. 237 sdk_version: "test_current", 238 239 // Avoid apk installation failures ('Requires development platform...' errors) 240 min_sdk_version: "31", 241 target_sdk_version: "34", 242} 243 244cc_test { 245 name: "deqp-binary", 246 defaults: ["libdeqp_defaults"], 247 248 cflags: [ 249 "-DDEQP_GLES3_RUNTIME_LOAD=1", 250 ], 251 252 cppflags: [ 253 "-Wno-macro-redefined", 254 ], 255 256 srcs: [ 257 "framework/platform/tcuMain.cpp", 258 "framework/platform/surfaceless/tcuSurfacelessPlatform.cpp", 259 ], 260 261 local_include_dirs: [ 262 "framework/platform/surfaceless", 263 ], 264 265 multilib: { 266 lib32: { 267 suffix: "32", 268 }, 269 lib64: { 270 suffix: "64", 271 }, 272 }, 273 274 compile_multilib: "both", 275 276 version_script: "deqp_binary.lds", 277 278 host_supported: false, 279 gtest: false, 280 auto_gen_config: false, 281 test_options: { 282 unit_test: false, 283 }, 284 data: [ 285 ":deqp_binary_incremental_test_lists", 286 ":deqp_binary_data", 287 ":deqp_binary_data_vulkancts", 288 ":deqp_binary_data_graphicsfuzz", 289 ], 290} 291 292cc_library_shared { 293 name: "libkhronosopenglcts", 294 defaults: ["khronoscts_default"], 295 296 srcs: [ 297 "framework/platform/android/tcuAndroidMain.cpp", 298 "framework/platform/android/tcuAndroidJNI.cpp", 299 "framework/platform/android/tcuAndroidPlatformCapabilityQueryJNI.cpp", 300 "framework/platform/android/tcuTestLogParserJNI.cpp", 301 "external/openglcts/modules/runner/glcAndroidMain.cpp", 302 "external/openglcts/modules/glcTestPackageEntry.cpp", 303 "modules/gles2/tes2TestPackageEntry.cpp", 304 "modules/gles3/tes3TestPackageEntry.cpp", 305 "modules/gles31/tes31TestPackageEntry.cpp", 306 "modules/egl/teglTestPackageEntry.cpp", 307 "modules/internal/ditTestPackageEntry.cpp", 308 ], 309 310 local_include_dirs: [ 311 "external/openglcts/modules/runner", 312 "external/openglcts/modules", 313 "framework/platform/android", 314 "modules/gles2", 315 "modules/gles3", 316 "modules/gles31", 317 "modules/egl", 318 "modules/internal", 319 ], 320 321 static_libs: [ 322 "libkhronoscts_common", 323 "libkhronoscts_modules_gles", 324 "libkhronoscts_openglcts", 325 "libkhronoscts_vulkancts", 326 "libkhronoscts_platform", 327 ], 328} 329 330cc_defaults { 331 name: "khronoscts_default", 332 333 defaults: [ 334 "khronosctscompilationflag_default", 335 ], 336 337 shared_libs: [ 338 "libEGL", 339 "libGLESv2", 340 "libandroid", 341 "liblog", 342 "libm", 343 "libc", 344 "libz", 345 "libdl", 346 ], 347 348 static_libs: [ 349 "libpng_ndk", 350 "deqp_glslang_glslang", 351 "deqp_glslang_OSDependent", 352 "deqp_glslang_MachineIndependent", 353 "deqp_glslang_GenericCodeGen", 354 "deqp_glslang_SPIRV", 355 "deqp_glslang_SPVRemapper", 356 "deqp_spirv-tools", 357 "deqp_amber", 358 ], 359} 360 361android_test { 362 name: "org.khronos.gl_cts", 363 364 srcs: ["android/openglcts/src/**/*.java"], 365 manifest: "android/openglcts/AndroidManifest.xml", 366 367 asset_dirs: [ 368 "data", 369 "external/openglcts/data/", 370 "external/graphicsfuzz/data", 371 "external/vulkancts/data", 372 ], 373 374 jni_libs: ["libkhronosopenglcts"], 375 compile_multilib: "both", 376 377 sdk_version: "test_current", 378 379 min_sdk_version: "31", 380 target_sdk_version: "34", 381} 382 383filegroup { 384 name: "deqp_binary_incremental_test_lists", 385 srcs: [ 386 "android/cts/main/*-incremental-deqp*.txt", 387 ], 388 path: "android/cts/main", 389} 390 391filegroup { 392 name: "deqp_binary_data", 393 srcs: [ 394 "data/**/*", 395 ], 396 path: "data", 397} 398 399filegroup { 400 name: "deqp_binary_data_vulkancts", 401 srcs: [ 402 "external/vulkancts/data/**/*", 403 ], 404 path: "external/vulkancts/data", 405} 406 407filegroup { 408 name: "deqp_binary_data_graphicsfuzz", 409 srcs: [ 410 "external/graphicsfuzz/data/**/*", 411 ], 412 path: "external/graphicsfuzz/data", 413} 414 415filegroup { 416 name: "khronos_cts_gles_caselists", 417 srcs: [ 418 "external/openglcts/data/gl_cts/data/mustpass/**/*.txt", 419 ], 420 path: "external/openglcts/data/", 421} 422