Commit 3018c206 by Jamie Madill

dEQP: Compile dEQP targets in Chromium.

This switches the primary targets for dEQP into the non-standalone namespace, so we can build dEQP ANGLE tests on Windows with Chrome. BUG=angleproject:998 BUG=500736 Change-Id: I2ae25f31ab123c49965412445f661b6b69d19109 Reviewed-on: https://chromium-review.googlesource.com/281020Reviewed-by: 's avatarCorentin Wallez <cwallez@chromium.org> Tested-by: 's avatarJamie Madill <jmadill@chromium.org>
parent 8edd75d1
...@@ -824,427 +824,431 @@ ...@@ -824,427 +824,431 @@
'conditions': 'conditions':
[ [
['angle_standalone==1', ['OS=="win" and angle_standalone==1',
{ {
'conditions': 'targets':
[ [
['OS=="win"',
{ {
'targets': 'target_name': 'angle_zlib',
'type': 'static_library',
'includes': [ '../../build/common_defines.gypi', ],
'include_dirs':
[ [
'<(zlib_path)',
],
'direct_dependent_settings':
{
'include_dirs':
[
'<(zlib_path)',
],
},
'msvs_settings':
{
'VCCLCompilerTool':
{ {
'target_name': 'angle_zlib', 'AdditionalOptions':
'type': 'static_library',
'includes': [ '../../build/common_defines.gypi', ],
'include_dirs':
[ [
'<(zlib_path)', '/wd4131', # old-style declarator
], '/wd4244', # Conversion from 'type1' to 'type2', possible loss of data
'direct_dependent_settings': '/wd4324', # structure was padded
{ '/wd4701', # potentially uninit used
'include_dirs': '/wd4996', # deprecated
[
'<(zlib_path)',
],
},
'msvs_settings':
{
'VCCLCompilerTool':
{
'AdditionalOptions':
[
'/wd4131', # old-style declarator
'/wd4244', # Conversion from 'type1' to 'type2', possible loss of data
'/wd4324', # structure was padded
'/wd4701', # potentially uninit used
'/wd4996', # deprecated
],
},
},
'sources':
[
'<(zlib_path)/adler32.c',
'<(zlib_path)/compress.c',
'<(zlib_path)/crc32.c',
'<(zlib_path)/crc32.h',
'<(zlib_path)/deflate.c',
'<(zlib_path)/deflate.h',
'<(zlib_path)/gzclose.c',
'<(zlib_path)/gzguts.h',
'<(zlib_path)/gzlib.c',
'<(zlib_path)/gzread.c',
'<(zlib_path)/gzwrite.c',
'<(zlib_path)/infback.c',
'<(zlib_path)/inffast.c',
'<(zlib_path)/inffast.h',
'<(zlib_path)/inffixed.h',
'<(zlib_path)/inflate.c',
'<(zlib_path)/inflate.h',
'<(zlib_path)/inftrees.c',
'<(zlib_path)/inftrees.h',
'<(zlib_path)/mozzconf.h',
'<(zlib_path)/trees.c',
'<(zlib_path)/trees.h',
'<(zlib_path)/uncompr.c',
'<(zlib_path)/x86.h',
'<(zlib_path)/zconf.h',
'<(zlib_path)/zlib.h',
'<(zlib_path)/zutil.c',
'<(zlib_path)/zutil.h',
'<(zlib_path)/simd_stub.c',
], ],
}, },
},
'sources':
[
'<(zlib_path)/adler32.c',
'<(zlib_path)/compress.c',
'<(zlib_path)/crc32.c',
'<(zlib_path)/crc32.h',
'<(zlib_path)/deflate.c',
'<(zlib_path)/deflate.h',
'<(zlib_path)/gzclose.c',
'<(zlib_path)/gzguts.h',
'<(zlib_path)/gzlib.c',
'<(zlib_path)/gzread.c',
'<(zlib_path)/gzwrite.c',
'<(zlib_path)/infback.c',
'<(zlib_path)/inffast.c',
'<(zlib_path)/inffast.h',
'<(zlib_path)/inffixed.h',
'<(zlib_path)/inflate.c',
'<(zlib_path)/inflate.h',
'<(zlib_path)/inftrees.c',
'<(zlib_path)/inftrees.h',
'<(zlib_path)/mozzconf.h',
'<(zlib_path)/trees.c',
'<(zlib_path)/trees.h',
'<(zlib_path)/uncompr.c',
'<(zlib_path)/x86.h',
'<(zlib_path)/zconf.h',
'<(zlib_path)/zlib.h',
'<(zlib_path)/zutil.c',
'<(zlib_path)/zutil.h',
'<(zlib_path)/simd_stub.c',
],
},
{
'target_name': 'angle_libpng',
'type': 'static_library',
'includes': [ '../../build/common_defines.gypi', ],
'dependencies':
[
'angle_zlib'
],
'msvs_settings':
{
'VCCLCompilerTool':
{ {
'target_name': 'angle_libpng', 'AdditionalOptions':
'type': 'static_library',
'includes': [ '../../build/common_defines.gypi', ],
'dependencies':
[
'angle_zlib'
],
'msvs_settings':
{
'VCCLCompilerTool':
{
'AdditionalOptions':
[
'/wd4018', # signed/unsigned mismatch
'/wd4028', # parameter differs from decl
'/wd4101', # unreferenced local
'/wd4189', # unreferenced but initted
'/wd4244', # Conversion from 'type1' to 'type2', possible loss of data
],
},
},
'sources':
[ [
'<(libpng_path)/png.c', '/wd4018', # signed/unsigned mismatch
'<(libpng_path)/pngerror.c', '/wd4028', # parameter differs from decl
'<(libpng_path)/pngget.c', '/wd4101', # unreferenced local
'<(libpng_path)/pngmem.c', '/wd4189', # unreferenced but initted
'<(libpng_path)/pngpread.c', '/wd4244', # Conversion from 'type1' to 'type2', possible loss of data
'<(libpng_path)/pngread.c',
'<(libpng_path)/pngrio.c',
'<(libpng_path)/pngrtran.c',
'<(libpng_path)/pngrutil.c',
'<(libpng_path)/pngset.c',
'<(libpng_path)/pngtrans.c',
'<(libpng_path)/pngwio.c',
'<(libpng_path)/pngwrite.c',
'<(libpng_path)/pngwtran.c',
'<(libpng_path)/pngwutil.c',
], ],
}, },
},
'sources':
[
'<(libpng_path)/png.c',
'<(libpng_path)/pngerror.c',
'<(libpng_path)/pngget.c',
'<(libpng_path)/pngmem.c',
'<(libpng_path)/pngpread.c',
'<(libpng_path)/pngread.c',
'<(libpng_path)/pngrio.c',
'<(libpng_path)/pngrtran.c',
'<(libpng_path)/pngrutil.c',
'<(libpng_path)/pngset.c',
'<(libpng_path)/pngtrans.c',
'<(libpng_path)/pngwio.c',
'<(libpng_path)/pngwrite.c',
'<(libpng_path)/pngwtran.c',
'<(libpng_path)/pngwutil.c',
],
},
],
}],
['OS=="win"',
{
'targets':
[
{
'target_name': 'angle_deqp_support',
'type': 'none',
'direct_dependent_settings':
{
'configurations':
{ {
'target_name': 'angle_deqp_support', 'Common_Base':
'type': 'none',
'direct_dependent_settings':
{ {
'configurations': 'msvs_configuration_attributes':
{
# dEQP requires ASCII
'CharacterSet': '0',
},
'msvs_settings':
{ {
'Common_Base': 'VCCLCompilerTool':
{ {
'msvs_configuration_attributes': # dEQP requires exceptions and RTTI
{ 'ExceptionHandling': 1,
# dEQP requires ASCII 'RuntimeTypeInfo': 'true',
'CharacterSet': '0', },
}, 'VCLinkerTool':
'msvs_settings': {
{ 'AdditionalDependencies':
'VCCLCompilerTool': [
{ 'dbghelp.lib',
# dEQP requires exceptions and RTTI 'gdi32.lib',
'ExceptionHandling': 1, 'user32.lib',
'RuntimeTypeInfo': 'true', 'ws2_32.lib',
}, ],
'VCLinkerTool':
{
'AdditionalDependencies':
[
'dbghelp.lib',
'gdi32.lib',
'user32.lib',
'ws2_32.lib',
],
},
},
}, },
}, },
'msvs_disabled_warnings':
[
'<@(deqp_msvs_disabled_warnings)',
],
'include_dirs': ['<@(deqp_include_dirs)'],
'defines': ['<@(deqp_defines)'],
'defines!': [ '<@(deqp_undefines)' ],
}, },
}, },
'msvs_disabled_warnings':
[
'<@(deqp_msvs_disabled_warnings)',
],
'include_dirs': ['<@(deqp_include_dirs)'],
'defines': ['<@(deqp_defines)'],
'defines!': [ '<@(deqp_undefines)' ],
},
},
{ {
'target_name': 'angle_deqp_decpp', 'target_name': 'angle_deqp_decpp',
'type': 'static_library', 'type': 'static_library',
'dependencies': [ 'angle_deqp_support' ], 'dependencies': [ 'angle_deqp_support' ],
'export_dependent_settings': [ 'angle_deqp_support' ], 'export_dependent_settings': [ 'angle_deqp_support' ],
'sources': 'sources':
[ [
'<(deqp_path)/framework/delibs/decpp/deArrayBuffer.cpp', '<(deqp_path)/framework/delibs/decpp/deArrayBuffer.cpp',
'<(deqp_path)/framework/delibs/decpp/deBlockBuffer.cpp', '<(deqp_path)/framework/delibs/decpp/deBlockBuffer.cpp',
'<(deqp_path)/framework/delibs/decpp/deCommandLine.cpp', '<(deqp_path)/framework/delibs/decpp/deCommandLine.cpp',
'<(deqp_path)/framework/delibs/decpp/deDefs.cpp', '<(deqp_path)/framework/delibs/decpp/deDefs.cpp',
'<(deqp_path)/framework/delibs/decpp/deDirectoryIterator.cpp', '<(deqp_path)/framework/delibs/decpp/deDirectoryIterator.cpp',
'<(deqp_path)/framework/delibs/decpp/deDynamicLibrary.cpp', '<(deqp_path)/framework/delibs/decpp/deDynamicLibrary.cpp',
'<(deqp_path)/framework/delibs/decpp/deFilePath.cpp', '<(deqp_path)/framework/delibs/decpp/deFilePath.cpp',
'<(deqp_path)/framework/delibs/decpp/deMemPool.cpp', '<(deqp_path)/framework/delibs/decpp/deMemPool.cpp',
'<(deqp_path)/framework/delibs/decpp/deMutex.cpp', '<(deqp_path)/framework/delibs/decpp/deMutex.cpp',
'<(deqp_path)/framework/delibs/decpp/dePoolArray.cpp', '<(deqp_path)/framework/delibs/decpp/dePoolArray.cpp',
'<(deqp_path)/framework/delibs/decpp/dePoolString.cpp', '<(deqp_path)/framework/delibs/decpp/dePoolString.cpp',
'<(deqp_path)/framework/delibs/decpp/deProcess.cpp', '<(deqp_path)/framework/delibs/decpp/deProcess.cpp',
'<(deqp_path)/framework/delibs/decpp/deRandom.cpp', '<(deqp_path)/framework/delibs/decpp/deRandom.cpp',
'<(deqp_path)/framework/delibs/decpp/deRingBuffer.cpp', '<(deqp_path)/framework/delibs/decpp/deRingBuffer.cpp',
'<(deqp_path)/framework/delibs/decpp/deSemaphore.cpp', '<(deqp_path)/framework/delibs/decpp/deSemaphore.cpp',
'<(deqp_path)/framework/delibs/decpp/deSharedPtr.cpp', '<(deqp_path)/framework/delibs/decpp/deSharedPtr.cpp',
'<(deqp_path)/framework/delibs/decpp/deSocket.cpp', '<(deqp_path)/framework/delibs/decpp/deSocket.cpp',
'<(deqp_path)/framework/delibs/decpp/deSTLUtil.cpp', '<(deqp_path)/framework/delibs/decpp/deSTLUtil.cpp',
'<(deqp_path)/framework/delibs/decpp/deStringUtil.cpp', '<(deqp_path)/framework/delibs/decpp/deStringUtil.cpp',
'<(deqp_path)/framework/delibs/decpp/deThread.cpp', '<(deqp_path)/framework/delibs/decpp/deThread.cpp',
'<(deqp_path)/framework/delibs/decpp/deThreadLocal.cpp', '<(deqp_path)/framework/delibs/decpp/deThreadLocal.cpp',
'<(deqp_path)/framework/delibs/decpp/deThreadSafeRingBuffer.cpp', '<(deqp_path)/framework/delibs/decpp/deThreadSafeRingBuffer.cpp',
'<(deqp_path)/framework/delibs/decpp/deUniquePtr.cpp', '<(deqp_path)/framework/delibs/decpp/deUniquePtr.cpp',
], ],
}, },
{
'target_name': 'angle_deqp_libtester',
'type': 'static_library',
'dependencies':
[
'angle_deqp_decpp',
'<(angle_path)/src/angle.gyp:libEGL',
'<(angle_path)/util/util.gyp:angle_util',
],
'export_dependent_settings':
[
'angle_deqp_decpp',
'<(angle_path)/util/util.gyp:angle_util',
],
'include_dirs':
[
'<(angle_path)/include',
],
'direct_dependent_settings':
{
'include_dirs':
[
'<(angle_path)/include',
],
'defines':
[
'ANGLE_DEQP_LIBTESTER_IMPLEMENTATION',
],
},
'msvs_settings':
{
'VCCLCompilerTool':
{ {
'target_name': 'angle_deqp_libtester', 'AdditionalOptions':
'type': 'static_library',
'dependencies':
[
'angle_deqp_decpp',
'<(angle_path)/src/angle.gyp:libEGL',
'<(angle_path)/util/util.gyp:angle_util',
],
'export_dependent_settings':
[
'angle_deqp_decpp',
'<(angle_path)/util/util.gyp:angle_util',
],
'include_dirs':
[
'<(angle_path)/include',
],
'direct_dependent_settings':
{
'include_dirs':
[
'<(angle_path)/include',
],
'defines':
[
'ANGLE_DEQP_LIBTESTER_IMPLEMENTATION',
],
},
'msvs_settings':
{
'VCCLCompilerTool':
{
'AdditionalOptions':
[
'/bigobj', # needed for glsBuiltinPrecisionTests.cpp
],
},
},
'sources':
[ [
'<@(deqp_libtester_sources)', '/bigobj', # needed for glsBuiltinPrecisionTests.cpp
],
'conditions':
[
['angle_standalone==1',
{
'dependencies': [ 'angle_libpng' ],
},
{ # angle_standalone!=1
'dependencies': [ '<(DEPTH)/third_party/libpng/libpng.gyp:libpng' ],
}],
], ],
}, },
},
'sources':
[
'<@(deqp_libtester_sources)',
],
'conditions':
[
['angle_standalone==1',
{ {
'target_name': 'angle_deqp_libgles2', 'dependencies': [ 'angle_libpng' ],
'type': 'shared_library',
'dependencies':
[
'angle_deqp_libtester',
],
'defines':
[
'ANGLE_DEQP_GLES2_TESTS',
],
'sources':
[
'<@(deqp_gles2_sources)',
'deqp_support/angle_deqp_libtester_main.cpp',
'deqp_support/tcuANGLEWin32Platform.cpp',
],
}, },
{ # angle_standalone!=1
'dependencies': [ '<(DEPTH)/third_party/libpng/libpng.gyp:libpng' ],
}],
],
},
{ {
'target_name': 'angle_deqp_libgles3', 'target_name': 'angle_deqp_libgles2',
'type': 'shared_library', 'type': 'shared_library',
'dependencies': 'dependencies':
[ [
'angle_deqp_libtester', 'angle_deqp_libtester',
], ],
'defines': 'defines':
[ [
'ANGLE_DEQP_GLES3_TESTS', 'ANGLE_DEQP_GLES2_TESTS',
], ],
'sources': 'sources':
[ [
'<@(deqp_gles3_sources)', '<@(deqp_gles2_sources)',
'deqp_support/angle_deqp_libtester_main.cpp', 'deqp_support/angle_deqp_libtester_main.cpp',
'deqp_support/tcuANGLEWin32Platform.cpp', 'deqp_support/tcuANGLEWin32Platform.cpp',
], ],
}, },
{ {
'target_name': 'angle_deqp_gles2_tests', 'target_name': 'angle_deqp_libgles3',
'type': 'executable', 'type': 'shared_library',
'defines': 'dependencies':
[ [
# Hard-code the path to dEQP. This lets the 'angle_deqp_libtester',
# app locate the data folder without need ],
# for a copy. gyp recursive copies are not 'defines':
# implemented properly on Windows. [
'ANGLE_DEQP_DIR="<(deqp_path)"', 'ANGLE_DEQP_GLES3_TESTS',
], ],
'dependencies': 'sources':
[ [
'angle_deqp_libgles2', '<@(deqp_gles3_sources)',
], 'deqp_support/angle_deqp_libtester_main.cpp',
'sources': 'deqp_support/tcuANGLEWin32Platform.cpp',
[ ],
'deqp_support/angle_deqp_tests_main.cpp', },
],
},
{ # Helper target for synching our implementation with chrome's
'target_name': 'angle_deqp_gles3_tests', {
'type': 'executable', 'target_name': 'angle_deqp_gtest_support',
'defines': 'type': 'none',
[ 'dependencies':
# Hard-code the path to dEQP. This lets the [
# app locate the data folder without need 'angle_deqp_libgles2',
# for a copy. gyp recursive copies are not 'angle_test_support',
# implemented properly on Windows. '<(angle_path)/util/util.gyp:angle_util',
'ANGLE_DEQP_DIR="<(deqp_path)"', ],
], 'export_dependent_settings':
'dependencies': [
[ 'angle_test_support',
'angle_deqp_libgles3', '<(angle_path)/util/util.gyp:angle_util',
], ],
'sources':
[
'deqp_support/angle_deqp_tests_main.cpp',
],
},
# Helper target for synching our implementation with chrome's 'direct_dependent_settings':
{ {
'target_name': 'angle_deqp_gtest_support', 'include_dirs':
'type': 'none', [
'dependencies': 'deqp_support',
[ 'third_party/gpu_test_expectations',
'angle_deqp_libgles2', ],
'angle_test_support', 'sources':
'<(angle_path)/util/util.gyp:angle_util', [
], 'deqp_support/angle_deqp_gtest.cpp',
'export_dependent_settings': 'third_party/gpu_test_expectations/gpu_info.cc',
[ 'third_party/gpu_test_expectations/gpu_info.h',
'angle_test_support', 'third_party/gpu_test_expectations/gpu_test_config.cc',
'<(angle_path)/util/util.gyp:angle_util', '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',
],
'direct_dependent_settings': 'defines':
{ [
'include_dirs': # Re-define the missing Windows macros
[ '<@(deqp_undefines)',
'deqp_support', ],
'third_party/gpu_test_expectations',
],
'sources':
[
'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': 'copies':
[
{
'destination': '<(PRODUCT_DIR)/deqp_support',
'files':
[ [
# Re-define the missing Windows macros 'deqp_support/dEQP-GLES2-cases.txt.gz',
'<@(deqp_undefines)', 'deqp_support/dEQP-GLES3-cases.txt.gz',
'deqp_support/deqp_test_expectations.txt',
], ],
},
],
'copies': 'msvs_settings':
{
'VCLinkerTool':
{
'AdditionalDependencies':
[ [
{ 'user32.lib',
'destination': '<(PRODUCT_DIR)/deqp_support',
'files':
[
'deqp_support/dEQP-GLES2-cases.txt.gz',
'deqp_support/dEQP-GLES3-cases.txt.gz',
'deqp_support/deqp_test_expectations.txt',
],
},
], ],
'msvs_settings':
{
'VCLinkerTool':
{
'AdditionalDependencies':
[
'user32.lib',
],
},
},
}, },
'conditions':
[
['angle_standalone==1',
{
'dependencies': [ 'angle_zlib' ],
'export_dependent_settings': [ 'angle_zlib' ],
},
{ # angle_standalone!=1
'dependencies': [ '<(zlib_path)/zlib.gyp:zlib' ],
'export_dependent_settings': [ '<(zlib_path)/zlib.gyp:zlib' ],
}],
],
}, },
},
'conditions':
[
['angle_standalone==1',
{ {
'target_name': 'angle_deqp_googletest', 'dependencies': [ 'angle_zlib' ],
'type': 'executable', 'export_dependent_settings': [ 'angle_zlib' ],
'includes': [ '../../build/common_defines.gypi', ],
'dependencies':
[
'angle_deqp_gtest_support',
],
'sources':
[
'deqp_support/angle_deqp_gtest_main.cpp',
],
}, },
], # targets { # angle_standalone!=1
}], # OS == "win" 'dependencies': [ '<(zlib_path)/zlib.gyp:zlib' ],
], # conditions 'export_dependent_settings': [ '<(zlib_path)/zlib.gyp:zlib' ],
}], # angle_standalone }],
], ],
},
],
}],
['OS=="win" and angle_standalone==1',
{
"targets":
[
{
'target_name': 'angle_deqp_gles2_tests',
'type': 'executable',
'defines':
[
# Hard-code the path to dEQP. This lets the
# app locate the data folder without need
# for a copy. gyp recursive copies are not
# implemented properly on Windows.
'ANGLE_DEQP_DIR="<(deqp_path)"',
],
'dependencies':
[
'angle_deqp_libgles2',
],
'sources':
[
'deqp_support/angle_deqp_tests_main.cpp',
],
},
{
'target_name': 'angle_deqp_gles3_tests',
'type': 'executable',
'defines':
[
# Hard-code the path to dEQP. This lets the
# app locate the data folder without need
# for a copy. gyp recursive copies are not
# implemented properly on Windows.
'ANGLE_DEQP_DIR="<(deqp_path)"',
],
'dependencies':
[
'angle_deqp_libgles3',
],
'sources':
[
'deqp_support/angle_deqp_tests_main.cpp',
],
},
{
'target_name': 'angle_deqp_googletest',
'type': 'executable',
'includes': [ '../../build/common_defines.gypi', ],
'dependencies':
[
'angle_deqp_gtest_support',
],
'sources':
[
'deqp_support/angle_deqp_gtest_main.cpp',
],
},
], # targets
}], # OS == "win"
], # conditions
} }
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