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} 137 138cc_library_shared { 139 name: "libdeqp", 140 defaults: ["libdeqp_defaults"], 141} 142 143cc_defaults { 144 name: "libdeqp_defaults", 145 defaults: [ 146 "libdeqp_gen", 147 "deqp_and_deps_defaults", 148 ], 149 150 tidy_checks: [ 151 // The clang-tidy google-explicit-constructor warning is issued to nearly 152 // 1000 conversion constructors in this project. They are from more than 153 // 500 source files. Most of them should be declared explicit, but many 154 // of them need to be implicit. Until we correctly mark them as explicit 155 // or NOLINT(implicit), we suppress the google-explicit-constructor check. 156 "-google-explicit-constructor", 157 158 "-google-build-explicit-make-pair", 159 "-google-global-names-in-headers", 160 "-google-runtime-member-string-references", 161 "-google-runtime-operator", 162 ], 163 164 header_libs: ["jni_headers"], 165 166 include_dirs: [ 167 "external/deqp-deps/SPIRV-Headers/include", 168 ], 169 170 shared_libs: [ 171 "libEGL", 172 "libGLESv2", 173 "libandroid", 174 "liblog", 175 "libm", 176 "libc", 177 "libz", 178 "libdl", 179 ], 180 181 static_libs: [ 182 "libpng_ndk", 183 "deqp_glslang_glslang", 184 "deqp_glslang_OSDependent", 185 "deqp_glslang_MachineIndependent", 186 "deqp_glslang_GenericCodeGen", 187 "deqp_glslang_SPIRV", 188 "deqp_glslang_SPVRemapper", 189 "deqp_spirv-tools", 190 "deqp_amber", 191 ], 192 193 cflags: [ 194 "-Wno-implicit-fallthrough", 195 "-Wno-sign-conversion", 196 "-Wno-unused-private-field", 197 "-Wno-shorten-64-to-32", 198 ], 199 200 cppflags: [ 201 "-Wno-non-virtual-dtor", 202 "-Wno-delete-non-virtual-dtor", 203 "-Wno-implicit-int-conversion", 204 "-Wno-missing-field-initializers", 205 "-Wno-switch", 206 "-Wno-unused-parameter", 207 "-Wno-unused-variable", 208 ], 209} 210 211android_test { 212 name: "com.drawelements.deqp", 213 214 test_suites: [ 215 "vts10", 216 ], 217 218 srcs: ["android/package/src/**/*.java"], 219 resource_dirs: ["android/package/res"], 220 manifest: "android/package/AndroidManifest-integration.xml", 221 222 asset_dirs: [ 223 "data", 224 "external/vulkancts/data", 225 "external/graphicsfuzz/data", 226 ], 227 228 jni_libs: ["libdeqp"], 229 230 compile_multilib: "both", 231 232 // We could go down all the way to API-13 for 32bit. 22 is required for 64bit ARM. 233 sdk_version: "test_current", 234 235 // Avoid apk installation failures ('Requires development platform...' errors) 236 min_sdk_version: "31", 237 target_sdk_version: "34", 238} 239 240cc_test { 241 name: "deqp-binary", 242 defaults: ["libdeqp_defaults"], 243 244 cflags: [ 245 "-DDEQP_GLES3_RUNTIME_LOAD=1", 246 ], 247 248 cppflags: [ 249 "-Wno-macro-redefined", 250 ], 251 252 srcs: [ 253 "framework/platform/tcuMain.cpp", 254 "framework/platform/surfaceless/tcuSurfacelessPlatform.cpp", 255 ], 256 257 local_include_dirs: [ 258 "framework/platform/surfaceless", 259 ], 260 261 multilib: { 262 lib32: { 263 suffix: "32", 264 }, 265 lib64: { 266 suffix: "64", 267 }, 268 }, 269 270 compile_multilib: "both", 271 272 version_script: "deqp_binary.lds", 273 274 host_supported: false, 275 gtest: false, 276 auto_gen_config: false, 277 test_options: { 278 unit_test: false, 279 }, 280 data: [ 281 ":deqp_binary_incremental_test_lists", 282 ":deqp_binary_data", 283 ":deqp_binary_data_vulkancts", 284 ":deqp_binary_data_graphicsfuzz", 285 ], 286} 287 288cc_library_shared { 289 name: "libkhronosopenglcts", 290 defaults: ["khronoscts_default"], 291 292 srcs: [ 293 "framework/platform/android/tcuAndroidMain.cpp", 294 "framework/platform/android/tcuAndroidJNI.cpp", 295 "framework/platform/android/tcuAndroidPlatformCapabilityQueryJNI.cpp", 296 "framework/platform/android/tcuTestLogParserJNI.cpp", 297 "external/openglcts/modules/runner/glcAndroidMain.cpp", 298 "external/openglcts/modules/glcTestPackageEntry.cpp", 299 "modules/gles2/tes2TestPackageEntry.cpp", 300 "modules/gles3/tes3TestPackageEntry.cpp", 301 "modules/gles31/tes31TestPackageEntry.cpp", 302 "modules/egl/teglTestPackageEntry.cpp", 303 "modules/internal/ditTestPackageEntry.cpp", 304 ], 305 306 local_include_dirs: [ 307 "external/openglcts/modules/runner", 308 "external/openglcts/modules", 309 "framework/platform/android", 310 "modules/gles2", 311 "modules/gles3", 312 "modules/gles31", 313 "modules/egl", 314 "modules/internal", 315 ], 316 317 static_libs: [ 318 "libkhronoscts_common", 319 "libkhronoscts_modules_gles", 320 "libkhronoscts_openglcts", 321 "libkhronoscts_vulkancts", 322 "libkhronoscts_platform", 323 ], 324} 325 326cc_defaults { 327 name: "khronoscts_default", 328 329 defaults: [ 330 "khronosctscompilationflag_default", 331 ], 332 333 shared_libs: [ 334 "libEGL", 335 "libGLESv2", 336 "libandroid", 337 "liblog", 338 "libm", 339 "libc", 340 "libz", 341 "libdl", 342 ], 343 344 static_libs: [ 345 "libpng_ndk", 346 "deqp_glslang_glslang", 347 "deqp_glslang_OSDependent", 348 "deqp_glslang_MachineIndependent", 349 "deqp_glslang_GenericCodeGen", 350 "deqp_glslang_SPIRV", 351 "deqp_glslang_SPVRemapper", 352 "deqp_spirv-tools", 353 "deqp_amber", 354 ], 355} 356 357android_test { 358 name: "org.khronos.gl_cts", 359 360 srcs: ["android/openglcts/src/**/*.java"], 361 manifest: "android/openglcts/AndroidManifest.xml", 362 363 asset_dirs: [ 364 "data", 365 "external/openglcts/data/", 366 "external/graphicsfuzz/data", 367 "external/vulkancts/data", 368 ], 369 370 jni_libs: ["libkhronosopenglcts"], 371 compile_multilib: "both", 372 373 sdk_version: "test_current", 374 375 min_sdk_version: "31", 376 target_sdk_version: "34", 377} 378 379filegroup { 380 name: "deqp_binary_incremental_test_lists", 381 srcs: [ 382 "android/cts/main/*-incremental-deqp*.txt", 383 ], 384 path: "android/cts/main", 385} 386 387filegroup { 388 name: "deqp_binary_data", 389 srcs: [ 390 "data/**/*", 391 ], 392 path: "data", 393} 394 395filegroup { 396 name: "deqp_binary_data_vulkancts", 397 srcs: [ 398 "external/vulkancts/data/**/*", 399 ], 400 path: "external/vulkancts/data", 401} 402 403filegroup { 404 name: "deqp_binary_data_graphicsfuzz", 405 srcs: [ 406 "external/graphicsfuzz/data/**/*", 407 ], 408 path: "external/graphicsfuzz/data", 409} 410 411filegroup { 412 name: "khronos_cts_gles_caselists", 413 srcs: [ 414 "external/openglcts/data/gl_cts/data/mustpass/**/*.txt", 415 ], 416 path: "external/openglcts/data/", 417} 418