# Copyright (c) 2010 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.

{
    'target_defaults':
    {
        'dependencies':
        [
            '../gyp/warnings.gyp:gyp_deprecation',
        ],
    },

    'targets':
    [
        {
            'target_name': 'shader_translator',
            'type': 'executable',
            'includes': [ '../gyp/common_defines.gypi', ],
            'dependencies': [ '../src/angle.gyp:translator', ],
            'include_dirs': [ '../include', ],
            'sources': [ 'shader_translator/shader_translator.cpp' ],
        },
        {
            'target_name': 'sample_util',
            'type': 'static_library',
            'includes': [ '../gyp/common_defines.gypi', ],
            'dependencies':
            [
                '<(angle_path)/src/angle.gyp:angle_common',
                '<(angle_path)/src/angle.gyp:libEGL',
                '<(angle_path)/src/angle.gyp:libGLESv2',
                '<(angle_path)/util/util.gyp:angle_util',
            ],
            'export_dependent_settings':
            [
                '<(angle_path)/src/angle.gyp:angle_common',
                '<(angle_path)/util/util.gyp:angle_util',
            ],
            'include_dirs':
            [
                '<(angle_path)/include',
                'sample_util',
            ],
            'sources':
            [
                'sample_util/SampleApplication.cpp',
                'sample_util/SampleApplication.h',
                'sample_util/texture_utils.cpp',
                'sample_util/texture_utils.h',
                'sample_util/tga_utils.cpp',
                'sample_util/tga_utils.h',
            ],
            'defines':
            [
                'GL_GLEXT_PROTOTYPES',
                'EGL_EGLEXT_PROTOTYPES',
            ],
            'msvs_disabled_warnings': [ 4201 ],
            'direct_dependent_settings':
            {
                'msvs_disabled_warnings': [ 4201 ],
                'include_dirs':
                [
                    'sample_util',
                ],
                'defines':
                [
                    'GL_GLEXT_PROTOTYPES',
                    'EGL_EGLEXT_PROTOTYPES',
                ],
            },
        },
        {
            'target_name': 'hello_triangle',
            'type': 'executable',
            'dependencies': [ 'sample_util' ],
            'includes': [ '../gyp/common_defines.gypi', ],
            'sources': [ 'hello_triangle/HelloTriangle.cpp', ],
        },
        {
            'target_name': 'mip_map_2d',
            'type': 'executable',
            'dependencies': [ 'sample_util' ],
            'includes': [ '../gyp/common_defines.gypi', ],
            'sources': [ 'mip_map_2d/MipMap2D.cpp', ],
        },
        {
            'target_name': 'multi_texture',
            'type': 'executable',
            'dependencies': [ 'sample_util' ],
            'includes': [ '../gyp/common_defines.gypi', ],
            'sources': [ 'multi_texture/MultiTexture.cpp', ],
            'copies':
            [
                {
                    'destination': '<(PRODUCT_DIR)',
                    'files':
                    [
                        'multi_texture/basemap.tga',
                        'multi_texture/lightmap.tga',
                    ],
                },
            ]
        },

        {
            'target_name': 'multi_window',
            'type': 'executable',
            'dependencies': [ 'sample_util' ],
            'includes': [ '../gyp/common_defines.gypi', ],
            'sources': [ 'multi_window/MultiWindow.cpp', ],
        },

        {
            'target_name': 'multiple_draw_buffers',
            'type': 'executable',
            'dependencies': [ 'sample_util' ],
            'includes': [ '../gyp/common_defines.gypi', ],
            'sources': [ 'multiple_draw_buffers/MultipleDrawBuffers.cpp', ],
            'copies':
            [
                {
                    'destination': '<(PRODUCT_DIR)',
                    'files':
                    [
                        'multiple_draw_buffers/multiple_draw_buffers_copy_fs.glsl',
                        'multiple_draw_buffers/multiple_draw_buffers_fs.glsl',
                        'multiple_draw_buffers/multiple_draw_buffers_vs.glsl',
                    ],
                }
            ]
        },
        
        {
            'target_name': 'multiview',
            'type': 'executable',
            'dependencies': [ 'sample_util' ],
            'includes': [ '../gyp/common_defines.gypi', ],
            'sources': [ 'multiview/Multiview.cpp', ],
        },
        
        {
            'target_name': 'particle_system',
            'type': 'executable',
            'dependencies': [ 'sample_util' ],
            'includes': [ '../gyp/common_defines.gypi', ],
            'sources': [ 'particle_system/ParticleSystem.cpp', ],
            'copies':
            [
                {
                    'destination': '<(PRODUCT_DIR)',
                    'files':
                    [
                        'particle_system/smoke.tga',
                    ],
                }
            ]
        },
        {
            'target_name': 'post_sub_buffer',
            'type': 'executable',
            'dependencies': [ 'sample_util' ],
            'includes': [ '../gyp/common_defines.gypi', ],
            'sources': [ 'post_sub_buffer/PostSubBuffer.cpp', ],
        },

        {
            'target_name': 'simple_instancing',
            'type': 'executable',
            'dependencies': [ 'sample_util' ],
            'includes': [ '../gyp/common_defines.gypi', ],
            'sources': [ 'simple_instancing/SimpleInstancing.cpp', ],
        },

        {
            'target_name': 'simple_texture_2d',
            'type': 'executable',
            'dependencies': [ 'sample_util' ],
            'includes': [ '../gyp/common_defines.gypi', ],
            'sources': [ 'simple_texture_2d/SimpleTexture2D.cpp', ],
        },

        {
            'target_name': 'simple_texture_cubemap',
            'type': 'executable',
            'dependencies': [ 'sample_util' ],
            'includes': [ '../gyp/common_defines.gypi', ],
            'sources': [ 'simple_texture_cubemap/SimpleTextureCubemap.cpp', ],
        },

        {
            'target_name': 'simple_vertex_shader',
            'type': 'executable',
            'dependencies': [ 'sample_util' ],
            'includes': [ '../gyp/common_defines.gypi', ],
            'sources': [ 'simple_vertex_shader/SimpleVertexShader.cpp', ],
        },

        {
            'target_name': 'stencil_operations',
            'type': 'executable',
            'dependencies': [ 'sample_util' ],
            'includes': [ '../gyp/common_defines.gypi', ],
            'sources': [ 'stencil_operations/StencilOperations.cpp', ],
        },

        {
            'target_name': 'tex_redef_microbench',
            'type': 'executable',
            'dependencies': [ 'sample_util' ],
            'includes': [ '../gyp/common_defines.gypi', ],
            'sources': [ 'tex_redef_microbench/TexRedefMicroBench.cpp', ],
        },

        {
            'target_name': 'texture_wrap',
            'type': 'executable',
            'dependencies': [ 'sample_util' ],
            'includes': [ '../gyp/common_defines.gypi', ],
            'sources': [ 'texture_wrap/TextureWrap.cpp', ],
        },

        {
            'target_name': 'tri_fan_microbench',
            'type': 'executable',
            'dependencies': [ 'sample_util' ],
            'includes': [ '../gyp/common_defines.gypi', ],
            'sources': [ 'tri_fan_microbench/TriFanMicroBench.cpp', ],
        },

        {
            'target_name': 'window_test',
            'type': 'executable',
            'dependencies': [ 'sample_util' ],
            'includes': [ '../gyp/common_defines.gypi', ],
            'sources': [ 'WindowTest/WindowTest.cpp', ],
        },
    ],
}
