# Copyright 2015 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

declare_args() {
  # Set to true to compile with the OpenGL ES 2.0 conformance tests.
  internal_gles2_conform_tests = false
}

config("gles2_conform_test_warnings") {
  if (is_clang) {
    cflags = [
      "-Wno-array-bounds",
      "-Wno-implicit-function-declaration",
      "-Wno-logical-op-parentheses",

      # Many struct initializers in the GTF_ES code are missing braces.
      "-Wno-missing-braces",
      "-Wno-parentheses-equality",
      "-Wno-pointer-sign",
      "-Wno-return-type",
      "-Wno-sign-compare",
      "-Wno-sizeof-pointer-memaccess",

      # A few variables are unitialized if GLVersion != 2.0.
      "-Wno-sometimes-uninitialized",
      "-Wno-tautological-compare",

      # GTFVecBase.h contains static no-inline functions in a header :-/
      "-Wno-unused-function",
      "-Wno-unused-variable",

      # There are some implicit conversions from "int" to "char" in
      # GTFExtensionTestSurfacelessContext.c.
      "-Wno-constant-conversion",
    ]
  }
}

import("//testing/test.gni")

executable("gles2_conform_support") {
  sources = [
    "gles2_conform_support.c",
    "native/egl_native.cc",
    "native/main.cc",
  ]
  defines = [
    "GLES2_CONFORM_SUPPORT_ONLY",
    "GTF_GLES20",
    "EGLAPI=",
    "EGLAPIENTRY=",
  ]
  deps = [
    "//base",
    "//base/third_party/dynamic_annotations",
    "//build/win:default_exe_manifest",
    "//gpu/command_buffer/client:gles2_c_lib_nocheck",
    "//gpu/gles2_conform_support/egl",
    "//ui/gl",
  ]
  if (is_linux) {
    sources += [
      "native/egl_native_aura.cc",
      "native/egl_native_x11.cc",
    ]
  }
}

if (internal_gles2_conform_tests) {
  action("generate_gles2_conform_embedded_data") {
    script = "generate_gles2_embedded_data.py"
    outputs = [
      "$target_gen_dir/gles2_conform_test_embedded_data/FilesDATA.c",
      "$target_gen_dir/gles2_conform_test_embedded_data/FilesDATA.h",
      "$target_gen_dir/gles2_conform_test_embedded_data/FilesTOC.c",
    ]
    args = [
      rebase_path("//third_party/gles2_conform/GTF_ES/glsl/GTF"),
      rebase_path("$target_gen_dir/gles2_conform_test_embedded_data"),
    ]
  }
  action("generate_gles2_conform_tests") {
    script = "generate_gles2_conform_tests.py"
    outputs = [
      "$target_gen_dir/gles2_conform_test_autogen.cc",
    ]
    args = [ rebase_path("$target_gen_dir") ]
  }
  executable("gles2_conform_test_windowless") {
    testonly = true

    # Include a dummy c++ file to force linking of libstdc++.
    sources = [
      "dummy.cc",
    ]

    gtf_source = "//third_party/gles2_conform/GTF_ES/glsl/GTF/Source"
    sources += [
      # Bootstrapping files commented out. We have different bootstrapping
      # files for each platform.
      "$gtf_source/FilesTOC.h",
      "$gtf_source/GL/GTFAttDataGL.c",
      "$gtf_source/GL/GTFAttDataGL.h",
      "$gtf_source/GL/GTFDepthRangeParamGL.c",
      "$gtf_source/GL/GTFDepthRangeParamGL.h",
      "$gtf_source/GL/GTFModelDataGL.c",
      "$gtf_source/GL/GTFModelDataGL.h",
      "$gtf_source/GL/GTFPointParamGL.c",
      "$gtf_source/GL/GTFPointParamGL.h",
      "$gtf_source/GL/GTFReadPixelsGL.c",
      "$gtf_source/GL/GTFReadPixelsGL.h",
      "$gtf_source/GL/GTFShaderDataGL.c",
      "$gtf_source/GL/GTFShaderDataGL.h",
      "$gtf_source/GL/GTFShaderTextGL.c",
      "$gtf_source/GL/GTFShaderTextGL.h",
      "$gtf_source/GL/GTFStateDataGL.c",
      "$gtf_source/GL/GTFStateDataGL.h",
      "$gtf_source/GL/GTFTexDataGL.c",
      "$gtf_source/GL/GTFTexDataGL.h",
      "$gtf_source/GL/GTFTexParamGL.c",
      "$gtf_source/GL/GTFTexParamGL.h",
      "$gtf_source/GL/GTFUniDataGL.c",
      "$gtf_source/GL/GTFUniDataGL.h",

      #"$gtf_source/main.c",
      "$gtf_source/GL2ExtensionTests/GTFExtensionTestCompressedETC1RGB8Texture.c",
      "$gtf_source/GL2ExtensionTests/GTFExtensionTestCompressedETC1RGB8Texture.h",
      "$gtf_source/GL2ExtensionTests/GTFExtensionTestCompressedPalettedTexture.c",
      "$gtf_source/GL2ExtensionTests/GTFExtensionTestCompressedPalettedTexture.h",
      "$gtf_source/GL2ExtensionTests/GTFExtensionTestConditionalQuery.c",
      "$gtf_source/GL2ExtensionTests/GTFExtensionTestConditionalQuery.h",
      "$gtf_source/GL2ExtensionTests/GTFExtensionTestDataType1010102.c",
      "$gtf_source/GL2ExtensionTests/GTFExtensionTestDataType1010102.h",
      "$gtf_source/GL2ExtensionTests/GTFExtensionTestDebug.c",
      "$gtf_source/GL2ExtensionTests/GTFExtensionTestDebug.h",
      "$gtf_source/GL2ExtensionTests/GTFExtensionTestDepth24.c",
      "$gtf_source/GL2ExtensionTests/GTFExtensionTestDepth24.h",
      "$gtf_source/GL2ExtensionTests/GTFExtensionTestDepth32.c",
      "$gtf_source/GL2ExtensionTests/GTFExtensionTestDepth32.h",
      "$gtf_source/GL2ExtensionTests/GTFExtensionTestDepthTexture.c",
      "$gtf_source/GL2ExtensionTests/GTFExtensionTestDepthTexture.h",
      "$gtf_source/GL2ExtensionTests/GTFExtensionTestDepthTextureCubeMap.c",
      "$gtf_source/GL2ExtensionTests/GTFExtensionTestDepthTextureCubeMap.h",
      "$gtf_source/GL2ExtensionTests/GTFExtensionTestEGLCreateContext.c",
      "$gtf_source/GL2ExtensionTests/GTFExtensionTestEGLCreateContext.h",
      "$gtf_source/GL2ExtensionTests/GTFExtensionTestEGLImage.c",
      "$gtf_source/GL2ExtensionTests/GTFExtensionTestEGLImage.h",
      "$gtf_source/GL2ExtensionTests/GTFExtensionTestEGLImageExternal.c",
      "$gtf_source/GL2ExtensionTests/GTFExtensionTestEGLImageExternal.h",
      "$gtf_source/GL2ExtensionTests/GTFExtensionTestElementIndexUINT.c",
      "$gtf_source/GL2ExtensionTests/GTFExtensionTestElementIndexUINT.h",
      "$gtf_source/GL2ExtensionTests/GTFExtensionTestFBORenderMipmap.c",
      "$gtf_source/GL2ExtensionTests/GTFExtensionTestFBORenderMipmap.h",
      "$gtf_source/GL2ExtensionTests/GTFExtensionTestFragmentPrecisionHigh.c",
      "$gtf_source/GL2ExtensionTests/GTFExtensionTestFragmentPrecisionHigh.h",
      "$gtf_source/GL2ExtensionTests/GTFExtensionTestFramebufferObject.c",
      "$gtf_source/GL2ExtensionTests/GTFExtensionTestFramebufferObject.h",
      "$gtf_source/GL2ExtensionTests/GTFExtensionTestMapBuffer.c",
      "$gtf_source/GL2ExtensionTests/GTFExtensionTestMapBuffer.h",
      "$gtf_source/GL2ExtensionTests/GTFExtensionTestOcclusionQuery.c",
      "$gtf_source/GL2ExtensionTests/GTFExtensionTestOcclusionQuery.h",
      "$gtf_source/GL2ExtensionTests/GTFExtensionTestPackedDepthStencil.c",
      "$gtf_source/GL2ExtensionTests/GTFExtensionTestPackedDepthStencil.h",
      "$gtf_source/GL2ExtensionTests/GTFExtensionTestPointSizeArray.c",
      "$gtf_source/GL2ExtensionTests/GTFExtensionTestPointSizeArray.h",
      "$gtf_source/GL2ExtensionTests/GTFExtensionTestPointSprite.c",
      "$gtf_source/GL2ExtensionTests/GTFExtensionTestPointSprite.h",
      "$gtf_source/GL2ExtensionTests/GTFExtensionTestRGB8RGBA8.c",
      "$gtf_source/GL2ExtensionTests/GTFExtensionTestRGB8RGBA8.h",
      "$gtf_source/GL2ExtensionTests/GTFExtensionTestReadFormat.c",
      "$gtf_source/GL2ExtensionTests/GTFExtensionTestReadFormat.h",
      "$gtf_source/GL2ExtensionTests/GTFExtensionTestRequiredInternalformat.c",
      "$gtf_source/GL2ExtensionTests/GTFExtensionTestRequiredInternalformat.h",
      "$gtf_source/GL2ExtensionTests/GTFExtensionTestStencil1.c",
      "$gtf_source/GL2ExtensionTests/GTFExtensionTestStencil1.h",
      "$gtf_source/GL2ExtensionTests/GTFExtensionTestStencil4.c",
      "$gtf_source/GL2ExtensionTests/GTFExtensionTestStencil4.h",
      "$gtf_source/GL2ExtensionTests/GTFExtensionTestStencil8.c",
      "$gtf_source/GL2ExtensionTests/GTFExtensionTestStencil8.h",
      "$gtf_source/GL2ExtensionTests/GTFExtensionTestSurfacelessContext.c",
      "$gtf_source/GL2ExtensionTests/GTFExtensionTestSurfacelessContext.h",
      "$gtf_source/GL2ExtensionTests/GTFExtensionTestTexture3D.c",
      "$gtf_source/GL2ExtensionTests/GTFExtensionTestTexture3D.h",
      "$gtf_source/GL2ExtensionTests/GTFExtensionTestTextureCompressionASTCLDR.c",
      "$gtf_source/GL2ExtensionTests/GTFExtensionTestTextureCompressionASTCLDR.h",
      "$gtf_source/GL2ExtensionTests/GTFExtensionTestTextureCompressionASTCLDRVectors.h",
      "$gtf_source/GL2ExtensionTests/GTFExtensionTestTextureFloat.c",
      "$gtf_source/GL2ExtensionTests/GTFExtensionTestTextureFloat.h",
      "$gtf_source/GL2ExtensionTests/GTFExtensionTestTextureFloatLinear.c",
      "$gtf_source/GL2ExtensionTests/GTFExtensionTestTextureFloatLinear.h",
      "$gtf_source/GL2ExtensionTests/GTFExtensionTestTextureNPOT.c",
      "$gtf_source/GL2ExtensionTests/GTFExtensionTestTextureNPOT.h",
      "$gtf_source/GL2ExtensionTests/GTFExtensionTestUtilp.c",
      "$gtf_source/GL2ExtensionTests/GTFExtensionTestUtilp.h",
      "$gtf_source/GL2ExtensionTests/GTFExtensionTestVertexArrayObject.c",
      "$gtf_source/GL2ExtensionTests/GTFExtensionTestVertexArrayObject.h",
      "$gtf_source/GL2ExtensionTests/GTFExtensionTestVertexHalfFloat.c",
      "$gtf_source/GL2ExtensionTests/GTFExtensionTestVertexHalfFloat.h",
      "$gtf_source/GL2ExtensionTests/GTFExtensionTestVisibilityQuery.c",
      "$gtf_source/GL2ExtensionTests/GTFExtensionTestVisibilityQuery.h",
      "$gtf_source/GL2FixedTests/GTFFixedTestBlend.c",
      "$gtf_source/GL2FixedTests/GTFFixedTestBlend.h",
      "$gtf_source/GL2FixedTests/GTFFixedTestBufferClear.c",
      "$gtf_source/GL2FixedTests/GTFFixedTestBufferClear.h",
      "$gtf_source/GL2FixedTests/GTFFixedTestBufferColor.c",
      "$gtf_source/GL2FixedTests/GTFFixedTestBufferColor.h",
      "$gtf_source/GL2FixedTests/GTFFixedTestBufferCorners.c",
      "$gtf_source/GL2FixedTests/GTFFixedTestBufferCorners.h",
      "$gtf_source/GL2FixedTests/GTFFixedTestBufferObjects.c",
      "$gtf_source/GL2FixedTests/GTFFixedTestBufferObjects.h",
      "$gtf_source/GL2FixedTests/GTFFixedTestClip.c",
      "$gtf_source/GL2FixedTests/GTFFixedTestClip.h",
      "$gtf_source/GL2FixedTests/GTFFixedTestColorRamp.c",
      "$gtf_source/GL2FixedTests/GTFFixedTestColorRamp.h",
      "$gtf_source/GL2FixedTests/GTFFixedTestCopyTexture.c",
      "$gtf_source/GL2FixedTests/GTFFixedTestCopyTexture.h",
      "$gtf_source/GL2FixedTests/GTFFixedTestDepthBufferClear.c",
      "$gtf_source/GL2FixedTests/GTFFixedTestDepthBufferClear.h",
      "$gtf_source/GL2FixedTests/GTFFixedTestDepthBufferFunctions.c",
      "$gtf_source/GL2FixedTests/GTFFixedTestDepthBufferFunctions.h",
      "$gtf_source/GL2FixedTests/GTFFixedTestDither.c",
      "$gtf_source/GL2FixedTests/GTFFixedTestDither.h",
      "$gtf_source/GL2FixedTests/GTFFixedTestDivideByZero.c",
      "$gtf_source/GL2FixedTests/GTFFixedTestDivideByZero.h",
      "$gtf_source/GL2FixedTests/GTFFixedTestGets.c",
      "$gtf_source/GL2FixedTests/GTFFixedTestGets.h",
      "$gtf_source/GL2FixedTests/GTFFixedTestMipmapsInterpolation.c",
      "$gtf_source/GL2FixedTests/GTFFixedTestMipmapsInterpolation.h",
      "$gtf_source/GL2FixedTests/GTFFixedTestMipmapsSelection.c",
      "$gtf_source/GL2FixedTests/GTFFixedTestMipmapsSelection.h",
      "$gtf_source/GL2FixedTests/GTFFixedTestPointRasterization.c",
      "$gtf_source/GL2FixedTests/GTFFixedTestPointRasterization.h",
      "$gtf_source/GL2FixedTests/GTFFixedTestPointSprites.c",
      "$gtf_source/GL2FixedTests/GTFFixedTestPointSprites.h",
      "$gtf_source/GL2FixedTests/GTFFixedTestPolygonCull.c",
      "$gtf_source/GL2FixedTests/GTFFixedTestPolygonCull.h",
      "$gtf_source/GL2FixedTests/GTFFixedTestScissor.c",
      "$gtf_source/GL2FixedTests/GTFFixedTestScissor.h",
      "$gtf_source/GL2FixedTests/GTFFixedTestStencilPlaneClear.c",
      "$gtf_source/GL2FixedTests/GTFFixedTestStencilPlaneClear.h",
      "$gtf_source/GL2FixedTests/GTFFixedTestStencilPlaneCorners.c",
      "$gtf_source/GL2FixedTests/GTFFixedTestStencilPlaneCorners.h",
      "$gtf_source/GL2FixedTests/GTFFixedTestStencilPlaneFunction.c",
      "$gtf_source/GL2FixedTests/GTFFixedTestStencilPlaneFunction.h",
      "$gtf_source/GL2FixedTests/GTFFixedTestStencilPlaneOperation.c",
      "$gtf_source/GL2FixedTests/GTFFixedTestStencilPlaneOperation.h",
      "$gtf_source/GL2FixedTests/GTFFixedTestTextureEdgeClamp.c",
      "$gtf_source/GL2FixedTests/GTFFixedTestTextureEdgeClamp.h",
      "$gtf_source/GL2FixedTests/GTFFixedTestTransformViewport.c",
      "$gtf_source/GL2FixedTests/GTFFixedTestTransformViewport.h",
      "$gtf_source/GL2FixedTests/GTFFixedTestTriangleRasterization.c",
      "$gtf_source/GL2FixedTests/GTFFixedTestTriangleRasterization.h",
      "$gtf_source/GL2FixedTests/GTFFixedTestTriangleTiling.c",
      "$gtf_source/GL2FixedTests/GTFFixedTestTriangleTiling.h",
      "$gtf_source/GL2FixedTests/GTFFixedTestUserClipPlanes.c",
      "$gtf_source/GL2FixedTests/GTFFixedTestUserClipPlanes.h",
      "$gtf_source/GL2FixedTests/GTFFixedTestVertexOrder.c",
      "$gtf_source/GL2FixedTests/GTFFixedTestVertexOrder.h",
      "$gtf_source/GL2FixedTests/GTFFixedTestViewportClamp.c",
      "$gtf_source/GL2FixedTests/GTFFixedTestViewportClamp.h",
      "$gtf_source/GL2FixedTests/GTFFixedUtilg.c",
      "$gtf_source/GL2FixedTests/GTFFixedUtilg.h",
      "$gtf_source/GL2FixedTests/GTFFixedUtilr.c",
      "$gtf_source/GL2FixedTests/GTFFixedUtilr.h",
      "$gtf_source/GL2Tests/GTFGL2TestAttributeGL.c",
      "$gtf_source/GL2Tests/GTFGL2TestAttributeGL.h",
      "$gtf_source/GL2Tests/GTFGL2TestBindAllAttributes.c",
      "$gtf_source/GL2Tests/GTFGL2TestBindAllAttributes.h",
      "$gtf_source/GL2Tests/GTFGL2TestCreateObjectGL.c",
      "$gtf_source/GL2Tests/GTFGL2TestCreateObjectGL.h",
      "$gtf_source/GL2Tests/GTFGL2TestDetachGL.c",
      "$gtf_source/GL2Tests/GTFGL2TestDetachGL.h",
      "$gtf_source/GL2Tests/GTFGL2TestFixedDataType.c",
      "$gtf_source/GL2Tests/GTFGL2TestFixedDataType.h",
      "$gtf_source/GL2Tests/GTFGL2TestFramebufferObjects.c",
      "$gtf_source/GL2Tests/GTFGL2TestFramebufferObjects.h",
      "$gtf_source/GL2Tests/GTFGL2TestGetAttachedObjects.c",
      "$gtf_source/GL2Tests/GTFGL2TestGetAttachedObjects.h",
      "$gtf_source/GL2Tests/GTFGL2TestGetAttributeLocation.c",
      "$gtf_source/GL2Tests/GTFGL2TestGetAttributeLocation.h",
      "$gtf_source/GL2Tests/GTFGL2TestGetBIFD.c",
      "$gtf_source/GL2Tests/GTFGL2TestGetBIFD.h",
      "$gtf_source/GL2Tests/GTFGL2TestGetExtensions.c",
      "$gtf_source/GL2Tests/GTFGL2TestGetExtensions.h",
      "$gtf_source/GL2Tests/GTFGL2TestGetProgramInfoLog.c",
      "$gtf_source/GL2Tests/GTFGL2TestGetProgramInfoLog.h",
      "$gtf_source/GL2Tests/GTFGL2TestGetProgramiv.c",
      "$gtf_source/GL2Tests/GTFGL2TestGetProgramiv.h",
      "$gtf_source/GL2Tests/GTFGL2TestGetShaderInfoLog.c",
      "$gtf_source/GL2Tests/GTFGL2TestGetShaderInfoLog.h",
      "$gtf_source/GL2Tests/GTFGL2TestGetShaderiv.c",
      "$gtf_source/GL2Tests/GTFGL2TestGetShaderiv.h",
      "$gtf_source/GL2Tests/GTFGL2TestGetUniform.c",
      "$gtf_source/GL2Tests/GTFGL2TestGetUniform.h",
      "$gtf_source/GL2Tests/GTFGL2TestGetVertexAttrib.c",
      "$gtf_source/GL2Tests/GTFGL2TestGetVertexAttrib.h",
      "$gtf_source/GL2Tests/GTFGL2TestMaxVertexAttrib.c",
      "$gtf_source/GL2Tests/GTFGL2TestMaxVertexAttrib.h",
      "$gtf_source/GL2Tests/GTFGL2TestMultipleShaders.c",
      "$gtf_source/GL2Tests/GTFGL2TestMultipleShaders.h",
      "$gtf_source/GL2Tests/GTFGL2TestRelinkProgram.c",
      "$gtf_source/GL2Tests/GTFGL2TestRelinkProgram.h",
      "$gtf_source/GL2Tests/GTFGL2TestUniform.c",
      "$gtf_source/GL2Tests/GTFGL2TestUniform.h",
      "$gtf_source/GL2Tests/GTFGL2TestUniformQueryGL.c",
      "$gtf_source/GL2Tests/GTFGL2TestUniformQueryGL.h",
      "$gtf_source/GL2Tests/GTFGL2TestVertexAttribPointer.c",
      "$gtf_source/GL2Tests/GTFGL2TestVertexAttribPointer.h",
      "$gtf_source/GL2Tests/GTFGL2TestVertexAttributes.c",
      "$gtf_source/GL2Tests/GTFGL2TestVertexAttributes.h",
      "$gtf_source/GL2Tests/GTFGL2TestVertexProgramPointSize.c",
      "$gtf_source/GL2Tests/GTFGL2TestVertexProgramPointSize.h",
      "$gtf_source/GTFArguments.c",
      "$gtf_source/GTFArguments.h",
      "$gtf_source/GTFCoverageDict.c",
      "$gtf_source/GTFCoverageGL.c",
      "$gtf_source/GTFCoverageGL.h",
      "$gtf_source/GTFDict.h",
      "$gtf_source/GTFDictBase.h",
      "$gtf_source/GTFFileReader.c",
      "$gtf_source/GTFFileReader.h",
      "$gtf_source/GTFInitEGL.c",
      "$gtf_source/GTFLog.c",
      "$gtf_source/GTFLog.h",
      "$gtf_source/GTFMain.c",
      "$gtf_source/GTFMain.h",
      "$gtf_source/GTFMatrix.h",
      "$gtf_source/GTFMemFile.c",
      "$gtf_source/GTFMemFile.h",
      "$gtf_source/GTFModelData.c",
      "$gtf_source/GTFModelData.h",
      "$gtf_source/GTFPort.c",
      "$gtf_source/GTFPort.h",
      "$gtf_source/GTFString.h",
      "$gtf_source/GTFStringUtils.c",
      "$gtf_source/GTFStringUtils.h",
      "$gtf_source/GTFTest.c",
      "$gtf_source/GTFTest.h",
      "$gtf_source/GTFTestBuildGL.c",
      "$gtf_source/GTFTestBuildGL.h",
      "$gtf_source/GTFTestCompareGL.c",
      "$gtf_source/GTFTestCompareGL.h",
      "$gtf_source/GTFTestComplexityGL.c",
      "$gtf_source/GTFTestComplexityGL.h",
      "$gtf_source/GTFTestCoverageGL.c",
      "$gtf_source/GTFTestCoverageGL.h",
      "$gtf_source/GTFTestDriver.c",
      "$gtf_source/GTFTestDriver.h",
      "$gtf_source/GTFTestElement.c",
      "$gtf_source/GTFTestElement.h",
      "$gtf_source/GTFTestExtension.c",
      "$gtf_source/GTFTestExtension.h",
      "$gtf_source/GTFTestFixedGL.c",
      "$gtf_source/GTFTestFixedGL.h",
      "$gtf_source/GTFTestGL2Test.c",
      "$gtf_source/GTFTestGL2Test.h",
      "$gtf_source/GTFTestRasterizationGL.c",
      "$gtf_source/GTFTestRasterizationGL.h",
      "$gtf_source/GTFTestShaderLoadGL.c",
      "$gtf_source/GTFTestShaderLoadGL.h",
      "$gtf_source/GTFTestUtil.c",
      "$gtf_source/GTFTestUtil.h",
      "$gtf_source/GTFVec.h",
      "$gtf_source/GTFVecBase.h",
      "$gtf_source/GTFVector.h",
      "$gtf_source/GTFVersion.h",
      "$gtf_source/GTFgl.c",
      "$gtf_source/GTFgl.h",
      "$gtf_source/MIMG.c",
      "$gtf_source/MIMG.h",

      #"$gtf_source/Win32Console.h",
      "$gtf_source/XmlUtils.c",
      "$gtf_source/XmlUtils.h",

      #"$gtf_source/eglNative.c",
      "$gtf_source/eglNative.h",
      "$gtf_source/egl_config_select.c",
      "$gtf_source/egl_config_select.h",
      "$gtf_source/eglu.c",
      "$gtf_source/eglu.h",
      "$gtf_source/eglut.c",
      "$gtf_source/eglut.h",
      "$gtf_source/gl2Native.c",
      "$gtf_source/gl2Native.h",
      "$gtf_source/gl2ext_missing.h",
    ]

    # Also compile the sources generated by this action.
    sources += get_target_outputs(":generate_gles2_conform_embedded_data")

    defines = [
      "GTF_API=GTF_GLES20",
      "HKEMBEDDEDFILESYSTEM",
    ]
    include_dirs = [
      rebase_path("$target_gen_dir/gles2_conform_test_embedded_data"),
      "//third_party/gles2_conform/GTF_ES/glsl/GTF/Source",
    ]
    deps = [
      ":generate_gles2_conform_embedded_data",
      "//gpu/command_buffer/client:gles2_c_lib_nocheck",
      "//gpu/gles2_conform_support/egl",
      "//gpu/gles2_conform_support/native:windowless",
      "//third_party/expat:expat",
    ]
    configs += [
      "//build/config/compiler:no_incompatible_pointer_warnings",
      "//build/config/compiler:no_shorten_64_warnings",

      # Must be done this way for warning flags to be ordered correctly.
      ":gles2_conform_test_warnings",
    ]
    if (is_win) {
      deps += [
        "//third_party/angle:libEGL",
        "//third_party/angle:libGLESv2",
      ]
      defines += [
        "EGLAPI=",
        "EGLAPIENTRY=",
      ]
      configs -= [ "//build/config/win:nominmax" ]
      cflags = [
        "/wd4013",  # undefined function, assuming extern returning int
        "/wd4018",  # signed/unsigned mismatch
        "/wd4054",  # type cast from function pointer to data pointer
        "/wd4057",  # non-constant aggregate initializer
        "/wd4101",  # unreferenced local variable
        "/wd4189",  # local variable is initialized but not referenced
        "/wd4204",  # non-constant aggregate initializer
        "/wd4245",  # conversion between int/uint
        "/wd4389",  # signed/unsigned comparison
        "/wd4701",  # potentially uninitialized variable used
        "/wd4703",  # potentially uninitialized pointer variable used
        "/wd4706",  # assignment within conditional expression
        "/wd4715",  # not all control paths return a value
        "/wd4716",  # function must return a value
      ]
    }
    if (is_mac) {
      defines += [
        "_STDINT",
        "_STDINT_H",
      ]
    }

    #'run_as': {
    #     'conditions': [
    #       ['OS=="win"', {
    #         'action': [
    #           '$(TargetPath)',
    #           '-noimagefileio',
    #           '-run=<(DEPTH)/third_party/gles2_conform/GTF_ES/glsl/GTF/mustpass.run',
    #         ],
    #       }],
    #     ],
    #    },
  }
}

test("gles2_conform_test") {
  sources = [
    "gles2_conform_test.cc",
    "gles2_conform_test.h",
  ]
  deps = [
    "//base",
    "//base/test:test_support",
    "//gpu/config",
    "//testing/gtest",
  ]

  data = [
    "gles2_conform_test_expectations.txt",
  ]

  if (internal_gles2_conform_tests) {
    data_deps = [
      ":gles2_conform_test_windowless",
    ]
    deps += [ ":generate_gles2_conform_tests" ]
    sources += [ "$target_gen_dir/gles2_conform_test_autogen.cc" ]
    data += [ "//third_party/gles2_conform/GTF_ES/" ]
  }
}
