Commit edbc2449 by Jamie Madill

Add dEQP GN integration.

This is Windows-only for now, but will be expanded to Linux. Also do a bit of refactoring in our deqp.gypi file. BUG=angleproject:1272 Change-Id: I526a99fe3b91a2d9e8901c7e033a4916a06780be Reviewed-on: https://chromium-review.googlesource.com/320800Reviewed-by: 's avatarCorentin Wallez <cwallez@chromium.org> Tested-by: 's avatarJamie Madill <jmadill@chromium.org>
parent 82b5ab60
...@@ -15,14 +15,12 @@ angle_git_is_present = exec_script("src/commit_id.py", ...@@ -15,14 +15,12 @@ angle_git_is_present = exec_script("src/commit_id.py",
angle_use_commit_id = angle_git_is_present == 1 angle_use_commit_id = angle_git_is_present == 1
gles_gypi = exec_script( gles_gypi = exec_script("//build/gypi_to_gn.py",
"//build/gypi_to_gn.py",
[ rebase_path("src/libGLESv2.gypi") ], [ rebase_path("src/libGLESv2.gypi") ],
"scope", "scope",
[ "src/libGLESv2.gypi" ]) [ "src/libGLESv2.gypi" ])
compiler_gypi = exec_script( compiler_gypi = exec_script("//build/gypi_to_gn.py",
"//build/gypi_to_gn.py",
[ rebase_path("src/compiler.gypi") ], [ rebase_path("src/compiler.gypi") ],
"scope", "scope",
[ "src/compiler.gypi" ]) [ "src/compiler.gypi" ])
...@@ -30,9 +28,7 @@ compiler_gypi = exec_script( ...@@ -30,9 +28,7 @@ compiler_gypi = exec_script(
# This config is exported to dependent targets (and also applied to internal # This config is exported to dependent targets (and also applied to internal
# ones). # ones).
config("external_config") { config("external_config") {
include_dirs = [ include_dirs = [ "include" ]
"include",
]
} }
# This config is applied to internal Angle targets (not pushed to dependents). # This config is applied to internal Angle targets (not pushed to dependents).
...@@ -45,8 +41,12 @@ config("internal_config") { ...@@ -45,8 +41,12 @@ config("internal_config") {
if (is_win) { if (is_win) {
copy("copy_compiler_dll") { copy("copy_compiler_dll") {
sources = [ "$windows_sdk_path/Redist/D3D/$target_cpu/d3dcompiler_47.dll" ] sources = [
outputs = [ "$root_out_dir/d3dcompiler_47.dll" ] "$windows_sdk_path/Redist/D3D/$target_cpu/d3dcompiler_47.dll",
]
outputs = [
"$root_out_dir/d3dcompiler_47.dll",
]
} }
} }
...@@ -59,17 +59,20 @@ component("translator") { ...@@ -59,17 +59,20 @@ component("translator") {
defines = [ "ANGLE_TRANSLATOR_IMPLEMENTATION" ] defines = [ "ANGLE_TRANSLATOR_IMPLEMENTATION" ]
if (angle_enable_essl) { if (angle_enable_essl) {
sources += rebase_path(compiler_gypi.angle_translator_lib_essl_sources, ".", "src") sources +=
rebase_path(compiler_gypi.angle_translator_lib_essl_sources, ".", "src")
defines += [ "ANGLE_ENABLE_ESSL" ] defines += [ "ANGLE_ENABLE_ESSL" ]
} }
if (angle_enable_glsl) { if (angle_enable_glsl) {
sources += rebase_path(compiler_gypi.angle_translator_lib_glsl_sources, ".", "src") sources +=
rebase_path(compiler_gypi.angle_translator_lib_glsl_sources, ".", "src")
defines += [ "ANGLE_ENABLE_GLSL" ] defines += [ "ANGLE_ENABLE_GLSL" ]
} }
if (angle_enable_hlsl) { if (angle_enable_hlsl) {
sources += rebase_path(compiler_gypi.angle_translator_lib_hlsl_sources, ".", "src") sources +=
rebase_path(compiler_gypi.angle_translator_lib_hlsl_sources, ".", "src")
defines += [ "ANGLE_ENABLE_HLSL" ] defines += [ "ANGLE_ENABLE_HLSL" ]
} }
...@@ -94,9 +97,9 @@ source_set("includes") { ...@@ -94,9 +97,9 @@ source_set("includes") {
"include/GLES2/gl2ext.h", "include/GLES2/gl2ext.h",
"include/GLES2/gl2platform.h", "include/GLES2/gl2platform.h",
"include/GLES3/gl3.h", "include/GLES3/gl3.h",
"include/GLES3/gl3platform.h",
"include/GLES3/gl31.h", "include/GLES3/gl31.h",
"include/GLES3/gl32.h", "include/GLES3/gl32.h",
"include/GLES3/gl3platform.h",
"include/GLSLANG/ShaderLang.h", "include/GLSLANG/ShaderLang.h",
"include/KHR/khrplatform.h", "include/KHR/khrplatform.h",
] ]
...@@ -116,12 +119,9 @@ config("translator_static_config") { ...@@ -116,12 +119,9 @@ config("translator_static_config") {
defines = [ "ANGLE_TRANSLATOR_STATIC" ] defines = [ "ANGLE_TRANSLATOR_STATIC" ]
} }
config("debug_annotations_config") { config("debug_annotations_config") {
if (is_debug) { if (is_debug) {
defines = [ defines = [ "ANGLE_ENABLE_DEBUG_ANNOTATIONS" ]
"ANGLE_ENABLE_DEBUG_ANNOTATIONS",
]
} }
} }
...@@ -141,17 +141,20 @@ static_library("translator_lib") { ...@@ -141,17 +141,20 @@ static_library("translator_lib") {
defines = [] defines = []
if (angle_enable_essl) { if (angle_enable_essl) {
sources += rebase_path(compiler_gypi.angle_translator_lib_essl_sources, ".", "src") sources +=
rebase_path(compiler_gypi.angle_translator_lib_essl_sources, ".", "src")
defines += [ "ANGLE_ENABLE_ESSL" ] defines += [ "ANGLE_ENABLE_ESSL" ]
} }
if (angle_enable_glsl) { if (angle_enable_glsl) {
sources += rebase_path(compiler_gypi.angle_translator_lib_glsl_sources, ".", "src") sources +=
rebase_path(compiler_gypi.angle_translator_lib_glsl_sources, ".", "src")
defines += [ "ANGLE_ENABLE_GLSL" ] defines += [ "ANGLE_ENABLE_GLSL" ]
} }
if (angle_enable_hlsl) { if (angle_enable_hlsl) {
sources += rebase_path(compiler_gypi.angle_translator_lib_hlsl_sources, ".", "src") sources +=
rebase_path(compiler_gypi.angle_translator_lib_hlsl_sources, ".", "src")
defines += [ "ANGLE_ENABLE_HLSL" ] defines += [ "ANGLE_ENABLE_HLSL" ]
} }
configs -= [ "//build/config/compiler:chromium_code" ] configs -= [ "//build/config/compiler:chromium_code" ]
...@@ -267,18 +270,13 @@ static_library("libANGLE") { ...@@ -267,18 +270,13 @@ static_library("libANGLE") {
include_dirs = [] include_dirs = []
libs = [] libs = []
defines = [ defines = [ "LIBANGLE_IMPLEMENTATION" ]
"LIBANGLE_IMPLEMENTATION",
]
# Shared D3D sources. # Shared D3D sources.
if (angle_enable_d3d9 || angle_enable_d3d11) { if (angle_enable_d3d9 || angle_enable_d3d11) {
sources += rebase_path(gles_gypi.libangle_d3d_shared_sources, ".", "src") sources += rebase_path(gles_gypi.libangle_d3d_shared_sources, ".", "src")
defines += [ defines += [ "ANGLE_PRELOADED_D3DCOMPILER_MODULE_NAMES={ " + "\"d3dcompiler_47.dll\", \"d3dcompiler_46.dll\", \"d3dcompiler_43.dll\" }" ]
"ANGLE_PRELOADED_D3DCOMPILER_MODULE_NAMES={ " +
"\"d3dcompiler_47.dll\", \"d3dcompiler_46.dll\", \"d3dcompiler_43.dll\" }",
]
} }
if (angle_enable_d3d9) { if (angle_enable_d3d9) {
...@@ -306,9 +304,7 @@ static_library("libANGLE") { ...@@ -306,9 +304,7 @@ static_library("libANGLE") {
} }
if (is_debug) { if (is_debug) {
defines += [ defines += [ "ANGLE_GENERATE_SHADER_DEBUG_INFO" ]
"ANGLE_GENERATE_SHADER_DEBUG_INFO",
]
} }
configs -= [ "//build/config/compiler:chromium_code" ] configs -= [ "//build/config/compiler:chromium_code" ]
...@@ -321,10 +317,10 @@ static_library("libANGLE") { ...@@ -321,10 +317,10 @@ static_library("libANGLE") {
] ]
deps = [ deps = [
":angle_common",
":commit_id", ":commit_id",
":includes", ":includes",
":translator_static", ":translator_static",
":angle_common",
] ]
if (is_win) { if (is_win) {
...@@ -336,8 +332,8 @@ shared_library("libGLESv2") { ...@@ -336,8 +332,8 @@ shared_library("libGLESv2") {
sources = rebase_path(gles_gypi.libglesv2_sources, ".", "src") sources = rebase_path(gles_gypi.libglesv2_sources, ".", "src")
if (is_win) { if (is_win) {
ldflags = [ "/DEF:" + ldflags =
rebase_path("src/libGLESv2/libGLESv2.def", root_build_dir) ] [ "/DEF:" + rebase_path("src/libGLESv2/libGLESv2.def", root_build_dir) ]
} }
configs -= [ "//build/config/compiler:chromium_code" ] configs -= [ "//build/config/compiler:chromium_code" ]
...@@ -349,9 +345,7 @@ shared_library("libGLESv2") { ...@@ -349,9 +345,7 @@ shared_library("libGLESv2") {
"//build/config/compiler:no_chromium_code", "//build/config/compiler:no_chromium_code",
] ]
defines = [ defines = [ "LIBGLESV2_IMPLEMENTATION" ]
"LIBGLESV2_IMPLEMENTATION",
]
deps = [ deps = [
":includes", ":includes",
...@@ -363,8 +357,7 @@ shared_library("libEGL") { ...@@ -363,8 +357,7 @@ shared_library("libEGL") {
sources = rebase_path(gles_gypi.libegl_sources, ".", "src") sources = rebase_path(gles_gypi.libegl_sources, ".", "src")
if (is_win) { if (is_win) {
ldflags = [ "/DEF:" + ldflags = [ "/DEF:" + rebase_path("src/libEGL/libEGL.def", root_build_dir) ]
rebase_path("src/libEGL/libEGL.def", root_build_dir) ]
} }
configs -= [ "//build/config/compiler:chromium_code" ] configs -= [ "//build/config/compiler:chromium_code" ]
...@@ -376,9 +369,7 @@ shared_library("libEGL") { ...@@ -376,9 +369,7 @@ shared_library("libEGL") {
"//build/config/compiler:no_chromium_code", "//build/config/compiler:no_chromium_code",
] ]
defines = [ defines = [ "LIBEGL_IMPLEMENTATION" ]
"LIBEGL_IMPLEMENTATION",
]
deps = [ deps = [
":includes", ":includes",
...@@ -386,12 +377,15 @@ shared_library("libEGL") { ...@@ -386,12 +377,15 @@ shared_library("libEGL") {
] ]
} }
util_gypi = exec_script( util_gypi = exec_script("//build/gypi_to_gn.py",
"//build/gypi_to_gn.py",
[ rebase_path("util/util.gyp") ], [ rebase_path("util/util.gyp") ],
"scope", "scope",
[ "util/util.gyp" ]) [ "util/util.gyp" ])
config("angle_util_config") {
include_dirs = [ "util" ]
}
static_library("angle_util") { static_library("angle_util") {
sources = rebase_path(util_gypi.util_sources, ".", "util") sources = rebase_path(util_gypi.util_sources, ".", "util")
...@@ -417,13 +411,11 @@ static_library("angle_util") { ...@@ -417,13 +411,11 @@ static_library("angle_util") {
"EGL_EGLEXT_PROTOTYPES", "EGL_EGLEXT_PROTOTYPES",
] ]
configs += [ configs += [ ":debug_annotations_config" ]
":internal_config",
":debug_annotations_config",
]
include_dirs = [ public_configs = [
"util", ":angle_util_config",
":internal_config",
] ]
deps = [ deps = [
......
...@@ -2,7 +2,6 @@ ...@@ -2,7 +2,6 @@
# Use of this source code is governed by a BSD-style license that can be # Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file. # found in the LICENSE file.
import("//testing/test.gni") import("//testing/test.gni")
import("//third_party/angle/build/angle_common.gni") import("//third_party/angle/build/angle_common.gni")
...@@ -56,11 +55,13 @@ if (is_win || is_linux || is_mac) { ...@@ -56,11 +55,13 @@ if (is_win || is_linux || is_mac) {
"../../util", "../../util",
] ]
sources = rebase_path(end2end_gypi.angle_end2end_tests_sources, ".", "../..") sources =
rebase_path(end2end_gypi.angle_end2end_tests_sources, ".", "../..")
if (is_win) { if (is_win) {
sources += sources += rebase_path(end2end_gypi.angle_end2end_tests_win_sources,
rebase_path(end2end_gypi.angle_end2end_tests_win_sources, ".", "../..") ".",
"../..")
} }
sources += [ "//gpu/angle_end2end_tests_main.cc" ] sources += [ "//gpu/angle_end2end_tests_main.cc" ]
...@@ -130,3 +131,143 @@ if (is_win) { ...@@ -130,3 +131,143 @@ if (is_win) {
] ]
} }
} }
###-----------------------------------------------------
### dEQP tests
###-----------------------------------------------------
# TODO(jmadill): Linux build
if (is_win) {
deqp_gypi = exec_script("//build/gypi_to_gn.py",
[
rebase_path("deqp.gypi"),
"--replace=<(angle_path)=.",
"--replace=<(deqp_path)=../deqp/src",
],
"scope",
[ "deqp.gypi" ])
config("angle_deqp_support") {
include_dirs = rebase_path(deqp_gypi.deqp_include_dirs, ".", "../..")
if (is_win) {
include_dirs += [ "../deqp/src/framework/platform/win32" ]
cflags = deqp_gypi.deqp_win_cflags
}
defines = deqp_gypi.deqp_defines
defines += [ "_MBCS" ]
}
deqp_undefine_configs = [
"//build/config/compiler:chromium_code",
"//build/config/win:lean_and_mean",
"//build/config/win:nominmax",
"//build/config/win:unicode",
"//build/config/compiler:no_rtti",
]
static_library("angle_deqp_decpp") {
configs -= deqp_undefine_configs
public_configs = [
":angle_deqp_support",
"//build/config/compiler:no_chromium_code",
"//third_party/angle:internal_config",
]
sources = rebase_path(deqp_gypi.deqp_libtester_decpp_sources, ".", "../..")
}
config("angle_deqp_libtester_config") {
defines = [ "ANGLE_DEQP_LIBTESTER_IMPLEMENTATION" ]
}
static_library("angle_deqp_libtester") {
public_deps = [
":angle_deqp_decpp",
"//third_party/angle:angle_util",
"//third_party/angle:libEGL",
"//third_party/libpng:libpng",
]
configs -= deqp_undefine_configs
public_configs = [ ":angle_deqp_libtester_config" ]
sources = rebase_path(deqp_gypi.deqp_libtester_sources, ".", "../..")
if (is_win) {
sources += rebase_path(deqp_gypi.deqp_libtester_sources_win, ".", "../..")
}
}
config("angle_deqp_gtest_support_config") {
include_dirs = [ "third_party/gpu_test_expectations" ]
}
source_set("angle_deqp_gtest_support") {
testonly = true
public_deps = [
"//base",
"//base/test:test_support",
"//testing/gtest",
"//third_party/angle:angle_common",
"//third_party/angle:angle_util",
]
public_configs = [ ":angle_deqp_gtest_support_config" ]
sources = deqp_gypi.deqp_gpu_test_expectations_sources
sources += [ "//gpu/angle_deqp_tests_main.cc" ]
}
target_names = [
"gles2",
"gles3",
"egl",
]
target_defines = [
"ANGLE_DEQP_GLES2_TESTS",
"ANGLE_DEQP_GLES3_TESTS",
"ANGLE_DEQP_EGL_TESTS",
]
target_sources = [
deqp_gypi.deqp_gles2_sources,
deqp_gypi.deqp_gles3_sources,
deqp_gypi.deqp_egl_sources,
]
foreach(index,
[
0,
1,
2,
]) {
target_name = target_names[index]
config_name = "angle_deqp_lib${target_name}_config"
config(config_name) {
defines = [ target_defines[index] ]
}
shared_library_name = "angle_deqp_lib${target_name}"
shared_library(shared_library_name) {
deps = [
":angle_deqp_libtester",
]
configs -= deqp_undefine_configs
public_configs = [ ":${config_name}" ]
sources = rebase_path(target_sources[index], ".", "../..")
sources += [
"deqp_support/angle_deqp_libtester_main.cpp",
"deqp_support/tcuANGLEPlatform.cpp",
"deqp_support/tcuANGLEPlatform.h",
]
}
test_name = "angle_deqp_${target_name}_tests"
test(test_name) {
deps = [
":${shared_library_name}",
":angle_deqp_gtest_support",
]
# Must be included outside of the source set for the define
sources = [
"deqp_support/angle_deqp_gtest.cpp",
]
}
}
}
...@@ -19,7 +19,6 @@ ...@@ -19,7 +19,6 @@
'angle_standalone%': '<(angle_standalone)', 'angle_standalone%': '<(angle_standalone)',
'deqp_path': '<(DEPTH)/third_party/deqp/src', 'deqp_path': '<(DEPTH)/third_party/deqp/src',
'delibs_path': '<(deqp_path)/framework/delibs',
'libpng_path': '<(DEPTH)/third_party/libpng', 'libpng_path': '<(DEPTH)/third_party/libpng',
'zlib_path': '<(DEPTH)/third_party/zlib', 'zlib_path': '<(DEPTH)/third_party/zlib',
...@@ -28,105 +27,32 @@ ...@@ -28,105 +27,32 @@
'angle_build_deqp_executables%' : 0, 'angle_build_deqp_executables%' : 0,
'angle_build_deqp_gtest_executables%' :0, 'angle_build_deqp_gtest_executables%' :0,
'conditions': 'clang_warning_flags':
[ [
['(OS=="win" or OS=="linux" or OS=="mac")', # tcu::CommandLine has virtual functions but no virtual destructor
{ '-Wno-no-delete-non-virtual-dtor',
# Build the dEQP libraries for all Windows/Linux builds
'angle_build_deqp_libraries%': 1,
}],
['((OS=="win" or OS=="linux" or OS=="mac") and angle_build_winrt==0)',
{
# Build the dEQP GoogleTest support helpers for all Windows/Linux builds except WinRT
# GoogleTest doesn't support WinRT
'angle_build_deqp_gtest_support%': 1,
}],
['((OS=="win" or OS=="linux" or OS=="mac") and angle_standalone==1 and angle_build_winrt==0)',
{
# Build the dEQP executables for all standalone Windows/Linux builds except WinRT
# GYP doesn't support generating standalone WinRT executables
'angle_build_deqp_executables%': 1,
# Build the GoogleTest versions of dEQP for all standalone Windows/Linux builds except WinRT
# GoogleTest doesn't support WinRT
'angle_build_deqp_gtest_executables%': 1,
}],
['OS=="win"',
{
'deqp_include_dirs':
[
'<(deqp_path)/framework/platform/win32',
],
'deqp_libtester_sources':
[
'<(deqp_path)/framework/delibs/dethread/win32/deMutexWin32.c',
'<(deqp_path)/framework/delibs/dethread/win32/deSemaphoreWin32.c',
'<(deqp_path)/framework/delibs/dethread/win32/deThreadLocalWin32.c',
'<(deqp_path)/framework/delibs/dethread/win32/deThreadWin32.c',
],
}],
['OS=="linux" and use_x11==1',
{
'deqp_include_dirs':
[
'<(deqp_path)/framework/platform/x11',
],
'deqp_defines':
[
# Ask the system headers to expose all the regular function otherwise
# dEQP doesn't compile and produces warnings about implicitly defined
# functions.
# This has to be GNU_SOURCE as on Linux dEQP uses syscall()
'_GNU_SOURCE',
],
}],
['OS=="mac"',
{
'deqp_include_dirs':
[
'<(deqp_path)/framework/platform/osx',
],
'deqp_defines':
[
# Ask the system headers to expose all the regular function otherwise
# dEQP doesn't compile and produces warnings about implicitly defined
# functions.
'_XOPEN_SOURCE=600',
],
}],
['(OS=="linux" and use_x11==1) or OS=="mac"',
{
'deqp_libtester_sources':
[
'<(deqp_path)/framework/delibs/dethread/unix/deMutexUnix.c',
'<(deqp_path)/framework/delibs/dethread/unix/deNamedSemaphoreUnix.c',
'<(deqp_path)/framework/delibs/dethread/unix/deSemaphoreUnix.c',
'<(deqp_path)/framework/delibs/dethread/unix/deThreadLocalUnix.c',
'<(deqp_path)/framework/delibs/dethread/unix/deThreadUnix.c',
],
}],
], ],
'deqp_msvs_disabled_warnings': 'deqp_win_cflags':
[ [
'4091', # typedef ignored when no variable is declared '/EHsc', # dEQP requires exceptions
'4100', '/wd4091', # typedef ignored when no variable is declared
'4125', # decimal digit terminates octal escape sequence '/wd4100',
'4127', # conditional expression constant '/wd4125', # decimal digit terminates octal escape sequence
'4244', # possible loss of data '/wd4127', # conditional expression constant
'4245', # argument signed/unsigned mismatch '/wd4244', # possible loss of data
'4297', # function assumed not to throw an exception but does '/wd4245', # argument signed/unsigned mismatch
'4389', # signed/unsigned mismatch '/wd4297', # function assumed not to throw an exception but does
'4510', # default constructor could not be generated '/wd4389', # signed/unsigned mismatch
'4512', '/wd4510', # default constructor could not be generated
'4610', # cannot be instantiated '/wd4512',
'4611', # setjmp interaction non-portable '/wd4610', # cannot be instantiated
'4701', # potentially uninit used '/wd4611', # setjmp interaction non-portable
'4702', # unreachable code '/wd4701', # potentially uninit used
'4706', '/wd4702', # unreachable code
'4838', # conversion requires a narrowing conversion '/wd4706', # assignment within conditional expression
'4996', # deprecated '/wd4838', # conversion requires a narrowing conversion
'/wd4996', # deprecated
], ],
'deqp_defines': 'deqp_defines':
[ [
...@@ -147,24 +73,24 @@ ...@@ -147,24 +73,24 @@
], ],
'deqp_include_dirs': 'deqp_include_dirs':
[ [
'<(libpng_path)', '<(deqp_path)/executor',
'<(zlib_path)', '<(deqp_path)/execserver',
'<(delibs_path)/debase',
'<(delibs_path)/decpp',
'<(delibs_path)/depool',
'<(delibs_path)/dethread',
'<(delibs_path)/deutil',
'<(delibs_path)/destream',
'<(deqp_path)/framework/common', '<(deqp_path)/framework/common',
'<(deqp_path)/framework/qphelper', '<(deqp_path)/framework/delibs/debase',
'<(deqp_path)/framework/platform/null', '<(deqp_path)/framework/delibs/decpp',
'<(deqp_path)/framework/delibs/depool',
'<(deqp_path)/framework/delibs/dethread',
'<(deqp_path)/framework/delibs/deutil',
'<(deqp_path)/framework/delibs/destream',
'<(deqp_path)/framework/egl', '<(deqp_path)/framework/egl',
'<(deqp_path)/framework/egl/wrapper', '<(deqp_path)/framework/egl/wrapper',
'<(deqp_path)/framework/opengl', '<(deqp_path)/framework/opengl',
'<(deqp_path)/framework/opengl/wrapper',
'<(deqp_path)/framework/referencerenderer',
'<(deqp_path)/framework/opengl/simplereference', '<(deqp_path)/framework/opengl/simplereference',
'<(deqp_path)/framework/opengl/wrapper',
'<(deqp_path)/framework/platform/null',
'<(deqp_path)/framework/qphelper',
'<(deqp_path)/framework/randomshaders', '<(deqp_path)/framework/randomshaders',
'<(deqp_path)/framework/referencerenderer',
'<(deqp_path)/modules/gles2', '<(deqp_path)/modules/gles2',
'<(deqp_path)/modules/gles2/functional', '<(deqp_path)/modules/gles2/functional',
'<(deqp_path)/modules/gles2/accuracy', '<(deqp_path)/modules/gles2/accuracy',
...@@ -182,8 +108,8 @@ ...@@ -182,8 +108,8 @@
'<(deqp_path)/modules/gles31/stress', '<(deqp_path)/modules/gles31/stress',
'<(deqp_path)/modules/glshared', '<(deqp_path)/modules/glshared',
'<(deqp_path)/modules/glusecases', '<(deqp_path)/modules/glusecases',
'<(deqp_path)/executor', '<(libpng_path)',
'<(deqp_path)/execserver', '<(zlib_path)',
], ],
'deqp_gles2_sources': 'deqp_gles2_sources':
[ [
...@@ -904,7 +830,6 @@ ...@@ -904,7 +830,6 @@
'<(deqp_path)/framework/egl/egluDefs.cpp', '<(deqp_path)/framework/egl/egluDefs.cpp',
'<(deqp_path)/framework/egl/egluGLContextFactory.cpp', '<(deqp_path)/framework/egl/egluGLContextFactory.cpp',
'<(deqp_path)/framework/egl/egluGLFunctionLoader.cpp', '<(deqp_path)/framework/egl/egluGLFunctionLoader.cpp',
'<(deqp_path)/framework/egl/egluGLFunctionLoader.cpp',
'<(deqp_path)/framework/egl/egluGLUtil.cpp', '<(deqp_path)/framework/egl/egluGLUtil.cpp',
'<(deqp_path)/framework/egl/egluNativeDisplay.cpp', '<(deqp_path)/framework/egl/egluNativeDisplay.cpp',
'<(deqp_path)/framework/egl/egluNativePixmap.cpp', '<(deqp_path)/framework/egl/egluNativePixmap.cpp',
...@@ -1035,6 +960,86 @@ ...@@ -1035,6 +960,86 @@
'<(angle_path)/src/tests/deqp_support/tcuRandomOrderExecutor.cpp', '<(angle_path)/src/tests/deqp_support/tcuRandomOrderExecutor.cpp',
'<(angle_path)/src/tests/deqp_support/tcuRandomOrderExecutor.h', '<(angle_path)/src/tests/deqp_support/tcuRandomOrderExecutor.h',
], ],
'deqp_libtester_sources_win':
[
'<(deqp_path)/framework/delibs/dethread/win32/deMutexWin32.c',
'<(deqp_path)/framework/delibs/dethread/win32/deSemaphoreWin32.c',
'<(deqp_path)/framework/delibs/dethread/win32/deThreadLocalWin32.c',
'<(deqp_path)/framework/delibs/dethread/win32/deThreadWin32.c',
],
'deqp_gpu_test_expectations_sources':
[
'third_party/gpu_test_expectations/gpu_info.cc',
'third_party/gpu_test_expectations/gpu_info.h',
'third_party/gpu_test_expectations/gpu_test_config.cc',
'third_party/gpu_test_expectations/gpu_test_config.h',
'third_party/gpu_test_expectations/gpu_test_expectations_parser.cc',
'third_party/gpu_test_expectations/gpu_test_expectations_parser.h',
],
'conditions':
[
['(OS=="win" or OS=="linux" or OS=="mac")',
{
# Build the dEQP libraries for all Windows/Linux builds
'angle_build_deqp_libraries%': 1,
}],
['((OS=="win" or OS=="linux" or OS=="mac") and angle_build_winrt==0)',
{
# Build the dEQP GoogleTest support helpers for all Windows/Linux builds except WinRT
# GoogleTest doesn't support WinRT
'angle_build_deqp_gtest_support%': 1,
}],
['((OS=="win" or OS=="linux" or OS=="mac") and angle_standalone==1 and angle_build_winrt==0)',
{
# Build the dEQP executables for all standalone Windows/Linux builds except WinRT
# GYP doesn't support generating standalone WinRT executables
'angle_build_deqp_executables%': 1,
# Build the GoogleTest versions of dEQP for all standalone Windows/Linux builds except WinRT
# GoogleTest doesn't support WinRT
'angle_build_deqp_gtest_executables%': 1,
}],
['OS=="linux" and use_x11==1',
{
'deqp_include_dirs':
[
'<(deqp_path)/framework/platform/x11',
],
'deqp_defines':
[
# Ask the system headers to expose all the regular function otherwise
# dEQP doesn't compile and produces warnings about implicitly defined
# functions.
# This has to be GNU_SOURCE as on Linux dEQP uses syscall()
'_GNU_SOURCE',
],
}],
['OS=="mac"',
{
'deqp_include_dirs':
[
'<(deqp_path)/framework/platform/osx',
],
'deqp_defines':
[
# Ask the system headers to expose all the regular function otherwise
# dEQP doesn't compile and produces warnings about implicitly defined
# functions.
'_XOPEN_SOURCE=600',
],
}],
['(OS=="linux" and use_x11==1) or OS=="mac"',
{
'deqp_libtester_sources':
[
'<(deqp_path)/framework/delibs/dethread/unix/deMutexUnix.c',
'<(deqp_path)/framework/delibs/dethread/unix/deNamedSemaphoreUnix.c',
'<(deqp_path)/framework/delibs/dethread/unix/deSemaphoreUnix.c',
'<(deqp_path)/framework/delibs/dethread/unix/deThreadLocalUnix.c',
'<(deqp_path)/framework/delibs/dethread/unix/deThreadUnix.c',
],
}],
],
}, },
'conditions': 'conditions':
[ [
...@@ -1182,11 +1187,6 @@ ...@@ -1182,11 +1187,6 @@
}, },
'msvs_settings': 'msvs_settings':
{ {
'VCCLCompilerTool':
{
# dEQP requires exceptions
'ExceptionHandling': 1,
},
'VCLinkerTool': 'VCLinkerTool':
{ {
'conditions': 'conditions':
...@@ -1244,13 +1244,16 @@ ...@@ -1244,13 +1244,16 @@
'-fno-exceptions', '-fno-exceptions',
'-fno-rtti', '-fno-rtti',
], ],
'msvs_disabled_warnings':
[
'<@(deqp_msvs_disabled_warnings)',
],
'include_dirs': ['<@(deqp_include_dirs)'], 'include_dirs': ['<@(deqp_include_dirs)'],
'defines': ['<@(deqp_defines)'], 'defines': ['<@(deqp_defines)'],
'defines!': [ '<@(deqp_undefines)' ], 'defines!': [ '<@(deqp_undefines)' ],
'msvs_settings':
{
'VCCLCompilerTool':
{
'AdditionalOptions': ['<@(deqp_win_cflags)'],
},
},
'conditions': 'conditions':
[ [
['clang==1', ['clang==1',
...@@ -1261,6 +1264,15 @@ ...@@ -1261,6 +1264,15 @@
'-Wno-delete-non-virtual-dtor', '-Wno-delete-non-virtual-dtor',
], ],
}], }],
['OS=="win"',
{
'cflags': ['<@(deqp_win_cflags)'],
'cflags_cc': ['<@(deqp_win_cflags)'],
'include_dirs':
[
'<(deqp_path)/framework/platform/win32',
],
}],
], ],
}, },
'conditions': 'conditions':
...@@ -1360,6 +1372,10 @@ ...@@ -1360,6 +1372,10 @@
}, },
}, },
}], }],
['OS=="win"',
{
'sources': [ '<@(deqp_libtester_sources_win)', ],
}],
], ],
}, },
...@@ -1517,13 +1533,8 @@ ...@@ -1517,13 +1533,8 @@
], ],
'sources': 'sources':
[ [
'<@(deqp_gpu_test_expectations_sources)',
'deqp_support/angle_deqp_gtest.cpp', 'deqp_support/angle_deqp_gtest.cpp',
'third_party/gpu_test_expectations/gpu_info.cc',
'third_party/gpu_test_expectations/gpu_info.h',
'third_party/gpu_test_expectations/gpu_test_config.cc',
'third_party/gpu_test_expectations/gpu_test_config.h',
'third_party/gpu_test_expectations/gpu_test_expectations_parser.cc',
'third_party/gpu_test_expectations/gpu_test_expectations_parser.h',
], ],
'defines': 'defines':
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment