blob: 702539f568430a6ced0951f0d25dfe8b8ac9ef4b [file] [log] [blame]
# Copyright (c) 2012 The ANGLE Project Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
{
'includes':
[
'deqp.gypi',
'../../gyp/common_defines.gypi',
],
'variables':
{
'angle_build_conformance_tests%': '0',
'rapidjson_include_dir': 'third_party/rapidjson/include',
'rapidjson_headers':
[
'third_party/rapidjson/include/rapidjson/allocators.h',
'third_party/rapidjson/include/rapidjson/document.h',
'third_party/rapidjson/include/rapidjson/encodedstream.h',
'third_party/rapidjson/include/rapidjson/encodings.h',
'third_party/rapidjson/include/rapidjson/filereadstream.h',
'third_party/rapidjson/include/rapidjson/filestream.h',
'third_party/rapidjson/include/rapidjson/filewritestream.h',
'third_party/rapidjson/include/rapidjson/memorybuffer.h',
'third_party/rapidjson/include/rapidjson/memorystream.h',
'third_party/rapidjson/include/rapidjson/prettywriter.h',
'third_party/rapidjson/include/rapidjson/rapidjson.h',
'third_party/rapidjson/include/rapidjson/reader.h',
'third_party/rapidjson/include/rapidjson/stringbuffer.h',
'third_party/rapidjson/include/rapidjson/writer.h',
'third_party/rapidjson/include/rapidjson/error/en.h',
'third_party/rapidjson/include/rapidjson/error/error.h',
'third_party/rapidjson/include/rapidjson/internal/dtoa.h',
'third_party/rapidjson/include/rapidjson/internal/itoa.h',
'third_party/rapidjson/include/rapidjson/internal/meta.h',
'third_party/rapidjson/include/rapidjson/internal/pow10.h',
'third_party/rapidjson/include/rapidjson/internal/stack.h',
'third_party/rapidjson/include/rapidjson/internal/strfunc.h',
'third_party/rapidjson/include/rapidjson/msinttypes/inttypes.h',
'third_party/rapidjson/include/rapidjson/msinttypes/stdint.h',
],
},
'conditions':
[
# GoogleTest doesn't support WinRT
['angle_build_winrt==0',
{
'targets':
[
{
'target_name': 'angle_test_support',
'type': 'none',
'dependencies':
[
'angle_internal_gmock',
'angle_internal_gtest',
],
},
],
}],
['angle_build_winrt==0',
{
'targets':
[
# Hide these targets from Chromium, because it can't
# find our standalone copy of the gtest/gmock sources.
{
'target_name': 'angle_internal_gtest',
'type': 'static_library',
'includes': [ '../../gyp/common_defines.gypi', ],
'include_dirs':
[
'<(angle_path)/testing/gtest',
'<(angle_path)/testing/gtest/include',
],
'sources':
[
'<(angle_path)/testing/gtest/src/gtest-all.cc',
],
'defines':
[
'_VARIADIC_MAX=10',
],
'all_dependent_settings':
{
'defines':
[
'_VARIADIC_MAX=10',
],
'include_dirs':
[
'<(angle_path)/testing/gtest',
'<(angle_path)/testing/gtest/include',
],
},
},
{
'target_name': 'angle_internal_gmock',
'type': 'static_library',
'includes': [ '../../gyp/common_defines.gypi', ],
'include_dirs':
[
'<(angle_path)/testing/gmock',
'<(angle_path)/testing/gmock/include',
'<(angle_path)/testing/gtest/include',
],
'sources':
[
'<(angle_path)/testing/gmock/src/gmock-all.cc',
],
'defines':
[
'_VARIADIC_MAX=10',
],
'all_dependent_settings':
{
'defines':
[
'_VARIADIC_MAX=10',
],
'include_dirs':
[
'<(angle_path)/testing/gmock',
'<(angle_path)/testing/gmock/include',
'<(angle_path)/testing/gtest/include',
],
},
},
# These same target names exist on the Chromium side,
# which is forbidden, so we make them conditional on
# ANGLE's standalone build.
{
'target_name': 'angle_unittests',
'type': 'executable',
'includes':
[
'../../gyp/common_defines.gypi',
'angle_unittests.gypi',
],
'sources':
[
'angle_unittests_main.cpp',
],
'msvs_settings':
{
'VCLinkerTool':
{
'conditions':
[
['angle_build_winrt==1',
{
'AdditionalDependencies':
[
'runtimeobject.lib',
],
}],
],
},
},
'msvs_disabled_warnings':
[
4244, # Conversion from 'type1' to 'type2', possible loss of data
],
},
{
'target_name': 'angle_end2end_tests',
'type': 'executable',
'includes':
[
'../../gyp/common_defines.gypi',
'angle_end2end_tests.gypi',
],
'sources':
[
'angle_end2end_tests_main.cpp',
],
},
{
'target_name': 'angle_white_box_tests',
'type': 'executable',
'includes':
[
'../../gyp/common_defines.gypi',
'angle_white_box_tests.gypi',
],
'sources':
[
'angle_white_box_tests_main.cpp',
],
},
{
'target_name': 'angle_perftests',
'type': 'executable',
'includes':
[
'../../gyp/common_defines.gypi',
'angle_perftests.gypi',
],
'sources':
[
'angle_perftests_main.cpp',
],
},
],
}],
['target_os=="win"',
{
'conditions':
[
['angle_build_conformance_tests',
{
'variables':
{
'gles_conformance_tests_output_dir': '<(SHARED_INTERMEDIATE_DIR)/conformance_tests',
'gles_conformance_tests_input_dir': 'third_party/gles_conformance_tests/conform/GTF_ES/glsl/GTF',
'gles_conformance_tests_generator_script': 'gles_conformance_tests/generate_gles_conformance_tests.py',
},
'targets':
[
{
'target_name': 'angle_gles2_conformance_tests',
'type': 'executable',
'includes': [ '../../gyp/common_defines.gypi', ],
'dependencies':
[
'<(angle_path)/src/angle.gyp:libGLESv2',
'<(angle_path)/src/angle.gyp:libEGL',
'third_party/gles_conformance_tests/conform/GTF_ES/glsl/GTF/es_cts.gyp:es_cts_test_data',
'third_party/gles_conformance_tests/conform/GTF_ES/glsl/GTF/es_cts.gyp:es2_cts',
'angle_test_support',
],
'variables':
{
'gles2_conformance_tests_input_file': '<(gles_conformance_tests_input_dir)/mustpass_es20.run',
'gles2_conformance_tests_generated_file': '<(gles_conformance_tests_output_dir)/generated_gles2_conformance_tests.cpp',
},
'sources':
[
'gles_conformance_tests/gles_conformance_tests.cpp',
'gles_conformance_tests/gles_conformance_tests.h',
'gles_conformance_tests/gles_conformance_tests_main.cpp',
'<(gles2_conformance_tests_generated_file)',
],
'include_dirs':
[
'<(angle_path)/include',
'gles_conformance_tests',
],
'defines':
[
'CONFORMANCE_TESTS_TYPE=CONFORMANCE_TESTS_ES2',
],
'msvs_settings':
{
'VCCLCompilerTool':
{
# MSVS has trouble compiling this due to the obj files becoming too large.
'AdditionalOptions': [ '/bigobj' ],
},
},
'actions':
[
{
'action_name': 'generate_gles2_conformance_tests',
'message': 'Generating ES2 conformance tests...',
'msvs_cygwin_shell': 0,
'inputs':
[
'<(gles_conformance_tests_generator_script)',
'<(gles2_conformance_tests_input_file)',
],
'outputs':
[
'<(gles2_conformance_tests_generated_file)',
],
'action':
[
'python',
'<(gles_conformance_tests_generator_script)',
'<(gles2_conformance_tests_input_file)',
'<(gles_conformance_tests_input_dir)',
'<(gles2_conformance_tests_generated_file)',
],
},
],
},
{
'target_name': 'angle_gles3_conformance_tests',
'type': 'executable',
'includes': [ '../../gyp/common_defines.gypi', ],
'dependencies':
[
'<(angle_path)/src/angle.gyp:libGLESv2',
'<(angle_path)/src/angle.gyp:libEGL',
'third_party/gles_conformance_tests/conform/GTF_ES/glsl/GTF/es_cts.gyp:es_cts_test_data',
'third_party/gles_conformance_tests/conform/GTF_ES/glsl/GTF/es_cts.gyp:es3_cts',
'angle_test_support',
],
'variables':
{
'gles3_conformance_tests_input_file': '<(gles_conformance_tests_input_dir)/mustpass_es30.run',
'gles3_conformance_tests_generated_file': '<(gles_conformance_tests_output_dir)/generated_gles3_conformance_tests.cpp',
},
'sources':
[
'gles_conformance_tests/gles_conformance_tests.cpp',
'gles_conformance_tests/gles_conformance_tests.h',
'gles_conformance_tests/gles_conformance_tests_main.cpp',
'<(gles3_conformance_tests_generated_file)',
],
'include_dirs':
[
'<(angle_path)/include',
'gles_conformance_tests',
],
'defines':
[
'CONFORMANCE_TESTS_TYPE=CONFORMANCE_TESTS_ES3',
],
'msvs_settings':
{
'VCCLCompilerTool':
{
# MSVS has trouble compiling this due to the obj files becoming too large.
'AdditionalOptions': [ '/bigobj' ],
},
},
'actions':
[
{
'action_name': 'generate_gles3_conformance_tests',
'message': 'Generating ES3 conformance tests...',
'msvs_cygwin_shell': 0,
'inputs':
[
'<(gles_conformance_tests_generator_script)',
'<(gles3_conformance_tests_input_file)',
],
'outputs':
[
'<(gles3_conformance_tests_generated_file)',
],
'action':
[
'python',
'<(gles_conformance_tests_generator_script)',
'<(gles3_conformance_tests_input_file)',
'<(gles_conformance_tests_input_dir)',
'<(gles3_conformance_tests_generated_file)',
],
},
],
},
],
}],
],
}],
],
}