# 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.

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

declare_args() {
  internal_khronos_glcts_tests = false
}

if (internal_khronos_glcts_tests) {
  glcts_gtf_runfiles =
      [ "//third_party/khronos_glcts/GTF_ES/glsl/GTF/mustpass_es20.run" ]

  copy("glcts_resources") {
    sources = [ "//third_party/khronos_glcts/cts/data" ]
    outputs = [ "$root_out_dir/khronos_glcts_data/gl_cts/{{source_file_part}}" ]
  }

  copy("glcts_gtf_resources") {
    sources = [
                "//third_party/khronos_glcts/GTF_ES/glsl/GTF/GL",
                "//third_party/khronos_glcts/GTF_ES/glsl/GTF/GL2ExtensionTests",
                "//third_party/khronos_glcts/GTF_ES/glsl/GTF/GL2FixedTests",
                "//third_party/khronos_glcts/GTF_ES/glsl/GTF/GL2Tests",
                "//third_party/khronos_glcts/GTF_ES/glsl/GTF/GLCoverage",
              ] + glcts_gtf_runfiles
    outputs =
        [ "$root_out_dir/khronos_glcts_data/gl_cts/GTF/{{source_file_part}}" ]
  }

  action("generate_khronos_glcts_tests") {
    script = "generate_khronos_glcts_tests.py"
    sources = [ "khronos_glcts_test.h" ] + glcts_gtf_runfiles
    outputs = [ "$target_gen_dir/khronos_glcts_test_autogen.cc" ]
    args = [ "--outdir=" + rebase_path("$target_gen_dir") ] + glcts_gtf_runfiles
  }

  config("defaults_config") {
    defines = [
      "DEQP_TARGET_NAME=\"chrome-gpu-command-buffer\"",
      "DEQP_SUPPORT_GLES2=1",
      "DEQP_SUPPORT_EGL=1",
      "GTF_API=GTF_GLES20",
    ]

    if (is_linux) {
      defines += [ "_XOPEN_SOURCE=500" ]
    }
  }

  config("debase_config") {
    include_dirs = [ "//third_party/khronos_glcts/framework/delibs/debase" ]
  }
  source_set("debase") {
    sources = [
      "//third_party/khronos_glcts/framework/delibs/debase/deDefs.c",
      "//third_party/khronos_glcts/framework/delibs/debase/deDefs.h",
      "//third_party/khronos_glcts/framework/delibs/debase/deFloat16.c",
      "//third_party/khronos_glcts/framework/delibs/debase/deFloat16.h",
      "//third_party/khronos_glcts/framework/delibs/debase/deInt32.c",
      "//third_party/khronos_glcts/framework/delibs/debase/deInt32.h",
      "//third_party/khronos_glcts/framework/delibs/debase/deInt32Test.c",
      "//third_party/khronos_glcts/framework/delibs/debase/deMath.c",
      "//third_party/khronos_glcts/framework/delibs/debase/deMath.h",
      "//third_party/khronos_glcts/framework/delibs/debase/deMemory.c",
      "//third_party/khronos_glcts/framework/delibs/debase/deMemory.h",
      "//third_party/khronos_glcts/framework/delibs/debase/deRandom.c",
      "//third_party/khronos_glcts/framework/delibs/debase/deRandom.h",
      "//third_party/khronos_glcts/framework/delibs/debase/deString.c",
      "//third_party/khronos_glcts/framework/delibs/debase/deString.h",
    ]

    configs += [ ":defaults_config" ]
    configs -= [ "//build/config/compiler:chromium_code" ]
    configs += [ "//build/config/compiler:no_chromium_code" ]
    configs -= [ "//build/config/compiler:no_rtti" ]
    configs += [ "//build/config/compiler:rtti" ]

    public_configs = [ ":debase_config" ]

    if (is_linux) {
      cflags_c = [ "-Wno-implicit-function-declaration" ]
    }
  }

  config("depool_config") {
    include_dirs = [ "//third_party/khronos_glcts/framework/delibs/depool" ]
  }
  source_set("depool") {
    sources = [
      "//third_party/khronos_glcts/framework/delibs/depool/deMemPool.c",
      "//third_party/khronos_glcts/framework/delibs/depool/deMemPool.h",
      "//third_party/khronos_glcts/framework/delibs/depool/dePoolArray.c",
      "//third_party/khronos_glcts/framework/delibs/depool/dePoolArray.h",
      "//third_party/khronos_glcts/framework/delibs/depool/dePoolHash.c",
      "//third_party/khronos_glcts/framework/delibs/depool/dePoolHash.h",
      "//third_party/khronos_glcts/framework/delibs/depool/dePoolHashArray.c",
      "//third_party/khronos_glcts/framework/delibs/depool/dePoolHashArray.h",
      "//third_party/khronos_glcts/framework/delibs/depool/dePoolHashSet.c",
      "//third_party/khronos_glcts/framework/delibs/depool/dePoolHashSet.h",
      "//third_party/khronos_glcts/framework/delibs/depool/dePoolHeap.c",
      "//third_party/khronos_glcts/framework/delibs/depool/dePoolHeap.h",
      "//third_party/khronos_glcts/framework/delibs/depool/dePoolMultiSet.c",
      "//third_party/khronos_glcts/framework/delibs/depool/dePoolMultiSet.h",
      "//third_party/khronos_glcts/framework/delibs/depool/dePoolSet.c",
      "//third_party/khronos_glcts/framework/delibs/depool/dePoolSet.h",
      "//third_party/khronos_glcts/framework/delibs/depool/dePoolStringBuilder.c",
      "//third_party/khronos_glcts/framework/delibs/depool/dePoolStringBuilder.h",
      "//third_party/khronos_glcts/framework/delibs/depool/dePoolTest.c",
      "//third_party/khronos_glcts/framework/delibs/depool/dePoolTest.h",
    ]

    deps = [ ":debase" ]

    configs += [ ":defaults_config" ]
    configs -= [ "//build/config/compiler:chromium_code" ]
    configs += [ "//build/config/compiler:no_chromium_code" ]
    configs -= [ "//build/config/compiler:no_rtti" ]
    configs += [ "//build/config/compiler:rtti" ]

    public_configs = [ ":depool_config" ]
  }

  config("dethread_config") {
    include_dirs = [ "//third_party/khronos_glcts/framework/delibs/dethread" ]
  }
  source_set("dethread") {
    sources = [
      "//third_party/khronos_glcts/framework/delibs/dethread/deAtomic.c",
      "//third_party/khronos_glcts/framework/delibs/dethread/deAtomic.h",
      "//third_party/khronos_glcts/framework/delibs/dethread/deMutex.h",
      "//third_party/khronos_glcts/framework/delibs/dethread/deSemaphore.h",
      "//third_party/khronos_glcts/framework/delibs/dethread/deThread.h",
      "//third_party/khronos_glcts/framework/delibs/dethread/deThreadLocal.h",
      "//third_party/khronos_glcts/framework/delibs/dethread/deThreadTest.c",
      "//third_party/khronos_glcts/framework/delibs/dethread/deThreadTest.h",
    ]

    deps = [ ":debase" ]

    configs += [ ":defaults_config" ]
    configs -= [ "//build/config/compiler:chromium_code" ]
    configs += [ "//build/config/compiler:no_chromium_code" ]
    configs -= [ "//build/config/compiler:no_rtti" ]
    configs += [ "//build/config/compiler:rtti" ]

    public_configs = [ ":dethread_config" ]

    if (is_linux) {
      sources += [
        "//third_party/khronos_glcts/framework/delibs/dethread/unix/deMutexUnix.c",
        "//third_party/khronos_glcts/framework/delibs/dethread/unix/deSemaphoreUnix.c",
        "//third_party/khronos_glcts/framework/delibs/dethread/unix/deThreadLocalUnix.c",
        "//third_party/khronos_glcts/framework/delibs/dethread/unix/deThreadUnix.c",
      ]
    }
  }

  config("deutil_config") {
    include_dirs = [ "//third_party/khronos_glcts/framework/delibs/deutil" ]
  }
  source_set("deutil") {
    sources = [
      "//third_party/khronos_glcts/framework/delibs/deutil/deClock.c",
      "//third_party/khronos_glcts/framework/delibs/deutil/deClock.h",
      "//third_party/khronos_glcts/framework/delibs/deutil/deCommandLine.c",
      "//third_party/khronos_glcts/framework/delibs/deutil/deCommandLine.h",
      "//third_party/khronos_glcts/framework/delibs/deutil/deDynamicLibrary.c",
      "//third_party/khronos_glcts/framework/delibs/deutil/deDynamicLibrary.h",
      "//third_party/khronos_glcts/framework/delibs/deutil/deFile.c",
      "//third_party/khronos_glcts/framework/delibs/deutil/deFile.h",
      "//third_party/khronos_glcts/framework/delibs/deutil/deProcess.c",
      "//third_party/khronos_glcts/framework/delibs/deutil/deProcess.h",
      "//third_party/khronos_glcts/framework/delibs/deutil/deSocket.c",
      "//third_party/khronos_glcts/framework/delibs/deutil/deSocket.h",
      "//third_party/khronos_glcts/framework/delibs/deutil/deTimer.c",
      "//third_party/khronos_glcts/framework/delibs/deutil/deTimer.h",
      "//third_party/khronos_glcts/framework/delibs/deutil/deTimerTest.c",
      "//third_party/khronos_glcts/framework/delibs/deutil/deTimerTest.h",
    ]

    deps = [
      ":debase",
      ":depool",
      ":dethread",
    ]

    configs += [ ":defaults_config" ]
    configs -= [ "//build/config/compiler:chromium_code" ]
    configs += [ "//build/config/compiler:no_chromium_code" ]
    configs -= [ "//build/config/compiler:no_rtti" ]
    configs += [ "//build/config/compiler:rtti" ]

    public_configs = [ ":deutil_config" ]

    if (is_linux) {
      cflags_c = [ "-Wno-string-conversion" ]
    }
  }

  config("decpp_config") {
    include_dirs = [ "//third_party/khronos_glcts/framework/delibs/decpp" ]
  }
  source_set("decpp") {
    sources = [
      "//third_party/khronos_glcts/framework/delibs/decpp/deBlockBuffer.cpp",
      "//third_party/khronos_glcts/framework/delibs/decpp/deBlockBuffer.hpp",
      "//third_party/khronos_glcts/framework/delibs/decpp/deDefs.cpp",
      "//third_party/khronos_glcts/framework/delibs/decpp/deDefs.hpp",
      "//third_party/khronos_glcts/framework/delibs/decpp/deDirectoryIterator.cpp",
      "//third_party/khronos_glcts/framework/delibs/decpp/deDirectoryIterator.hpp",
      "//third_party/khronos_glcts/framework/delibs/decpp/deDynamicLibrary.cpp",
      "//third_party/khronos_glcts/framework/delibs/decpp/deDynamicLibrary.hpp",
      "//third_party/khronos_glcts/framework/delibs/decpp/deFilePath.cpp",
      "//third_party/khronos_glcts/framework/delibs/decpp/deFilePath.hpp",
      "//third_party/khronos_glcts/framework/delibs/decpp/deMemPool.cpp",
      "//third_party/khronos_glcts/framework/delibs/decpp/deMemPool.hpp",
      "//third_party/khronos_glcts/framework/delibs/decpp/deMutex.cpp",
      "//third_party/khronos_glcts/framework/delibs/decpp/deMutex.hpp",
      "//third_party/khronos_glcts/framework/delibs/decpp/dePoolArray.cpp",
      "//third_party/khronos_glcts/framework/delibs/decpp/dePoolArray.hpp",
      "//third_party/khronos_glcts/framework/delibs/decpp/dePoolString.cpp",
      "//third_party/khronos_glcts/framework/delibs/decpp/dePoolString.hpp",
      "//third_party/khronos_glcts/framework/delibs/decpp/deRandom.cpp",
      "//third_party/khronos_glcts/framework/delibs/decpp/deRandom.hpp",
      "//third_party/khronos_glcts/framework/delibs/decpp/deRingBuffer.cpp",
      "//third_party/khronos_glcts/framework/delibs/decpp/deRingBuffer.hpp",
      "//third_party/khronos_glcts/framework/delibs/decpp/deSemaphore.cpp",
      "//third_party/khronos_glcts/framework/delibs/decpp/deSemaphore.hpp",
      "//third_party/khronos_glcts/framework/delibs/decpp/deSharedPtr.cpp",
      "//third_party/khronos_glcts/framework/delibs/decpp/deSharedPtr.hpp",
      "//third_party/khronos_glcts/framework/delibs/decpp/deSocket.cpp",
      "//third_party/khronos_glcts/framework/delibs/decpp/deSocket.hpp",
      "//third_party/khronos_glcts/framework/delibs/decpp/deStringUtil.cpp",
      "//third_party/khronos_glcts/framework/delibs/decpp/deStringUtil.hpp",
      "//third_party/khronos_glcts/framework/delibs/decpp/deThread.cpp",
      "//third_party/khronos_glcts/framework/delibs/decpp/deThread.hpp",
      "//third_party/khronos_glcts/framework/delibs/decpp/deThreadSafeRingBuffer.cpp",
      "//third_party/khronos_glcts/framework/delibs/decpp/deThreadSafeRingBuffer.hpp",
      "//third_party/khronos_glcts/framework/delibs/decpp/deUniquePtr.cpp",
      "//third_party/khronos_glcts/framework/delibs/decpp/deUniquePtr.hpp",
    ]

    deps = [
      ":debase",
      ":depool",
      ":dethread",
      ":deutil",
    ]

    configs += [ ":defaults_config" ]
    configs -= [ "//build/config/compiler:chromium_code" ]
    configs += [ "//build/config/compiler:no_chromium_code" ]
    configs -= [ "//build/config/compiler:no_rtti" ]
    configs += [ "//build/config/compiler:rtti" ]
    configs -= [ "//build/config/compiler:no_exceptions" ]
    configs += [ "//build/config/compiler:exceptions" ]

    public_configs = [ ":decpp_config" ]
  }

  group("delibs") {
    public_deps = [
      ":debase",
      ":decpp",
      ":depool",
      ":dethread",
      ":deutil",
    ]
  }

  config("qphelper_config") {
    include_dirs = [ "//third_party/khronos_glcts/framework/qphelper" ]
  }
  source_set("qphelper") {
    sources = [
      "//third_party/khronos_glcts/framework/qphelper/qpCommandLine.c",
      "//third_party/khronos_glcts/framework/qphelper/qpCommandLine.h",
      "//third_party/khronos_glcts/framework/qphelper/qpCrashHandler.c",
      "//third_party/khronos_glcts/framework/qphelper/qpCrashHandler.h",
      "//third_party/khronos_glcts/framework/qphelper/qpDebugOut.c",
      "//third_party/khronos_glcts/framework/qphelper/qpDebugOut.h",
      "//third_party/khronos_glcts/framework/qphelper/qpInfo.c",
      "//third_party/khronos_glcts/framework/qphelper/qpInfo.h",
      "//third_party/khronos_glcts/framework/qphelper/qpTestLog.c",
      "//third_party/khronos_glcts/framework/qphelper/qpTestLog.h",
      "//third_party/khronos_glcts/framework/qphelper/qpWatchDog.c",
      "//third_party/khronos_glcts/framework/qphelper/qpWatchDog.h",
      "//third_party/khronos_glcts/framework/qphelper/qpXmlWriter.c",
      "//third_party/khronos_glcts/framework/qphelper/qpXmlWriter.h",
    ]

    defines = [ "QP_SUPPORT_PNG" ]

    deps = [
      ":delibs",
      "//third_party/libpng:libpng",
    ]

    configs += [ ":defaults_config" ]
    configs -= [ "//build/config/compiler:chromium_code" ]
    configs += [ "//build/config/compiler:no_chromium_code" ]
    configs -= [ "//build/config/compiler:no_rtti" ]
    configs += [ "//build/config/compiler:rtti" ]

    public_configs = [ ":qphelper_config" ]

    if (is_linux) {
      cflags_c = [ "-Wno-string-conversion" ]
    }
  }

  config("tcutil_config") {
    include_dirs = [ "//third_party/khronos_glcts/framework/common" ]
  }
  source_set("tcutil") {
    sources = [
      "//third_party/khronos_glcts/framework/common/tcuApp.cpp",
      "//third_party/khronos_glcts/framework/common/tcuApp.hpp",
      "//third_party/khronos_glcts/framework/common/tcuCommandLine.cpp",
      "//third_party/khronos_glcts/framework/common/tcuCommandLine.hpp",
      "//third_party/khronos_glcts/framework/common/tcuCompressedTexture.cpp",
      "//third_party/khronos_glcts/framework/common/tcuCompressedTexture.hpp",
      "//third_party/khronos_glcts/framework/common/tcuDefs.cpp",
      "//third_party/khronos_glcts/framework/common/tcuDefs.hpp",
      "//third_party/khronos_glcts/framework/common/tcuFloat.hpp",
      "//third_party/khronos_glcts/framework/common/tcuFormatUtil.hpp",
      "//third_party/khronos_glcts/framework/common/tcuFuzzyImageCompare.cpp",
      "//third_party/khronos_glcts/framework/common/tcuFuzzyImageCompare.hpp",
      "//third_party/khronos_glcts/framework/common/tcuImageCompare.cpp",
      "//third_party/khronos_glcts/framework/common/tcuImageCompare.hpp",
      "//third_party/khronos_glcts/framework/common/tcuImageIO.cpp",
      "//third_party/khronos_glcts/framework/common/tcuImageIO.hpp",
      "//third_party/khronos_glcts/framework/common/tcuMatrix.hpp",
      "//third_party/khronos_glcts/framework/common/tcuMatrixUtil.hpp",
      "//third_party/khronos_glcts/framework/common/tcuPixelFormat.hpp",
      "//third_party/khronos_glcts/framework/common/tcuPlatform.cpp",
      "//third_party/khronos_glcts/framework/common/tcuPlatform.hpp",
      "//third_party/khronos_glcts/framework/common/tcuRGBA.cpp",
      "//third_party/khronos_glcts/framework/common/tcuRGBA.hpp",
      "//third_party/khronos_glcts/framework/common/tcuRandomValueIterator.cpp",
      "//third_party/khronos_glcts/framework/common/tcuRandomValueIterator.hpp",
      "//third_party/khronos_glcts/framework/common/tcuRenderTarget.cpp",
      "//third_party/khronos_glcts/framework/common/tcuRenderTarget.hpp",
      "//third_party/khronos_glcts/framework/common/tcuResource.cpp",
      "//third_party/khronos_glcts/framework/common/tcuResource.hpp",
      "//third_party/khronos_glcts/framework/common/tcuStringTemplate.cpp",
      "//third_party/khronos_glcts/framework/common/tcuStringTemplate.hpp",
      "//third_party/khronos_glcts/framework/common/tcuSurface.cpp",
      "//third_party/khronos_glcts/framework/common/tcuSurface.hpp",
      "//third_party/khronos_glcts/framework/common/tcuTestCase.cpp",
      "//third_party/khronos_glcts/framework/common/tcuTestCase.hpp",
      "//third_party/khronos_glcts/framework/common/tcuTestCaseWrapper.cpp",
      "//third_party/khronos_glcts/framework/common/tcuTestCaseWrapper.hpp",
      "//third_party/khronos_glcts/framework/common/tcuTestContext.cpp",
      "//third_party/khronos_glcts/framework/common/tcuTestContext.hpp",
      "//third_party/khronos_glcts/framework/common/tcuTestExecutor.cpp",
      "//third_party/khronos_glcts/framework/common/tcuTestExecutor.hpp",
      "//third_party/khronos_glcts/framework/common/tcuTestLog.cpp",
      "//third_party/khronos_glcts/framework/common/tcuTestLog.hpp",
      "//third_party/khronos_glcts/framework/common/tcuTestPackage.cpp",
      "//third_party/khronos_glcts/framework/common/tcuTestPackage.hpp",
      "//third_party/khronos_glcts/framework/common/tcuTexture.cpp",
      "//third_party/khronos_glcts/framework/common/tcuTexture.hpp",
      "//third_party/khronos_glcts/framework/common/tcuTextureUtil.cpp",
      "//third_party/khronos_glcts/framework/common/tcuTextureUtil.hpp",
      "//third_party/khronos_glcts/framework/common/tcuVector.hpp",
      "//third_party/khronos_glcts/framework/common/tcuVectorType.hpp",
      "//third_party/khronos_glcts/framework/common/tcuVectorUtil.hpp",

      # Not used by anything...
      #"//third_party/khronos_glcts/framework/common/tcuZipResource.cpp",
      #"//third_party/khronos_glcts/framework/common/tcuZipResource.hpp",
    ]

    deps = [
      ":delibs",
      "//third_party/libpng:libpng",
    ]

    public_deps = [ ":qphelper" ]

    include_dirs =
        [ "//third_party/khronos_glcts/framework/delibs/libpng" ]  # png.hpp

    configs += [ ":defaults_config" ]
    configs -= [ "//build/config/compiler:chromium_code" ]
    configs += [ "//build/config/compiler:no_chromium_code" ]
    configs -= [ "//build/config/compiler:no_rtti" ]
    configs += [ "//build/config/compiler:rtti" ]
    configs -= [ "//build/config/compiler:no_exceptions" ]
    configs += [ "//build/config/compiler:exceptions" ]

    public_configs = [ ":tcutil_config" ]

    if (is_linux) {
      cflags_cc = [ "-Wno-int-to-pointer-cast" ]
    }
  }

  config("glwrapper_config") {
    include_dirs = [ "//third_party/khronos_glcts/framework/opengl/wrapper" ]
  }
  source_set("glwrapper") {
    sources = [
      "//third_party/khronos_glcts/framework/opengl/wrapper/glw.h",
      "//third_party/khronos_glcts/framework/opengl/wrapper/glwDefs.cpp",
      "//third_party/khronos_glcts/framework/opengl/wrapper/glwDefs.hpp",
      "//third_party/khronos_glcts/framework/opengl/wrapper/glwEnums.hpp",
      "//third_party/khronos_glcts/framework/opengl/wrapper/glwFunctionLoader.hpp",
      "//third_party/khronos_glcts/framework/opengl/wrapper/glwFunctions.cpp",
      "//third_party/khronos_glcts/framework/opengl/wrapper/glwFunctions.hpp",
      "//third_party/khronos_glcts/framework/opengl/wrapper/glwInitES20Direct.cpp",
      "//third_party/khronos_glcts/framework/opengl/wrapper/glwInitES20Direct.hpp",
      "//third_party/khronos_glcts/framework/opengl/wrapper/glwInitFunctions.cpp",
      "//third_party/khronos_glcts/framework/opengl/wrapper/glwInitFunctions.hpp",
      "//third_party/khronos_glcts/framework/opengl/wrapper/glwWrapper.cpp",
      "//third_party/khronos_glcts/framework/opengl/wrapper/glwWrapper.hpp",
    ]

    deps = [
      ":delibs",
      "//gpu/command_buffer/client:gles2_c_lib_nocheck",
    ]

    configs += [ ":defaults_config" ]
    configs -= [ "//build/config/compiler:chromium_code" ]
    configs += [ "//build/config/compiler:no_chromium_code" ]
    configs -= [ "//build/config/compiler:no_rtti" ]
    configs += [ "//build/config/compiler:rtti" ]
    configs -= [ "//build/config/compiler:no_exceptions" ]
    configs += [ "//build/config/compiler:exceptions" ]

    public_configs = [ ":glwrapper_config" ]
  }

  config("glutil_config") {
    include_dirs = [ "//third_party/khronos_glcts/framework/opengl" ]
  }
  source_set("glutil") {
    sources = [
      "//third_party/khronos_glcts/framework/opengl/gluCallLogWrapper.cpp",
      "//third_party/khronos_glcts/framework/opengl/gluCallLogWrapper.hpp",
      "//third_party/khronos_glcts/framework/opengl/gluContextInfo.cpp",
      "//third_party/khronos_glcts/framework/opengl/gluContextInfo.hpp",
      "//third_party/khronos_glcts/framework/opengl/gluDefs.cpp",
      "//third_party/khronos_glcts/framework/opengl/gluDefs.hpp",
      "//third_party/khronos_glcts/framework/opengl/gluDrawUtil.cpp",
      "//third_party/khronos_glcts/framework/opengl/gluDrawUtil.hpp",
      "//third_party/khronos_glcts/framework/opengl/gluFboRenderContext.cpp",
      "//third_party/khronos_glcts/framework/opengl/gluFboRenderContext.hpp",
      "//third_party/khronos_glcts/framework/opengl/gluPixelTransfer.cpp",
      "//third_party/khronos_glcts/framework/opengl/gluPixelTransfer.hpp",
      "//third_party/khronos_glcts/framework/opengl/gluPlatform.hpp",
      "//third_party/khronos_glcts/framework/opengl/gluProgram.cpp",
      "//third_party/khronos_glcts/framework/opengl/gluProgram.hpp",
      "//third_party/khronos_glcts/framework/opengl/gluRenderContext.cpp",
      "//third_party/khronos_glcts/framework/opengl/gluRenderContext.hpp",
      "//third_party/khronos_glcts/framework/opengl/gluShaderUtil.cpp",
      "//third_party/khronos_glcts/framework/opengl/gluShaderUtil.hpp",
      "//third_party/khronos_glcts/framework/opengl/gluStateReset.cpp",
      "//third_party/khronos_glcts/framework/opengl/gluStateReset.hpp",
      "//third_party/khronos_glcts/framework/opengl/gluStrUtil.cpp",
      "//third_party/khronos_glcts/framework/opengl/gluStrUtil.hpp",
      "//third_party/khronos_glcts/framework/opengl/gluTexture.cpp",
      "//third_party/khronos_glcts/framework/opengl/gluTexture.hpp",
      "//third_party/khronos_glcts/framework/opengl/gluTextureUtil.cpp",
      "//third_party/khronos_glcts/framework/opengl/gluTextureUtil.hpp",
      "//third_party/khronos_glcts/framework/opengl/gluVarType.cpp",
      "//third_party/khronos_glcts/framework/opengl/gluVarType.hpp",
      "//third_party/khronos_glcts/framework/opengl/gluVarTypeUtil.cpp",
      "//third_party/khronos_glcts/framework/opengl/gluVarTypeUtil.hpp",
    ]

    public_deps = [ ":glwrapper" ]

    deps = [
      ":delibs",
      ":tcutil",
    ]

    configs += [ ":defaults_config" ]
    configs -= [ "//build/config/compiler:chromium_code" ]
    configs += [ "//build/config/compiler:no_chromium_code" ]
    configs -= [ "//build/config/compiler:no_rtti" ]
    configs += [ "//build/config/compiler:rtti" ]
    configs -= [ "//build/config/compiler:no_exceptions" ]
    configs += [ "//build/config/compiler:exceptions" ]

    public_configs = [ ":glutil_config" ]
  }

  config("tcutil_egl_config") {
    include_dirs = [ "//third_party/khronos_glcts/framework/egl" ]
  }
  source_set("tcutil_egl") {
    sources = [
      "//third_party/khronos_glcts/framework/egl/tcuEgl.cpp",
      "//third_party/khronos_glcts/framework/egl/tcuEgl.hpp",
      "//third_party/khronos_glcts/framework/egl/tcuEglCallLogWrapper.cpp",
      "//third_party/khronos_glcts/framework/egl/tcuEglCallLogWrapper.hpp",
      "//third_party/khronos_glcts/framework/egl/tcuEglConfigFilter.cpp",
      "//third_party/khronos_glcts/framework/egl/tcuEglConfigFilter.hpp",
      "//third_party/khronos_glcts/framework/egl/tcuEglConfigInfo.cpp",
      "//third_party/khronos_glcts/framework/egl/tcuEglConfigInfo.hpp",
      "//third_party/khronos_glcts/framework/egl/tcuEglPlatform.cpp",
      "//third_party/khronos_glcts/framework/egl/tcuEglPlatform.hpp",
      "//third_party/khronos_glcts/framework/egl/tcuEglStrUtil.cpp",
      "//third_party/khronos_glcts/framework/egl/tcuEglStrUtil.hpp",
    ]

    deps = [
      ":delibs",
      ":glwrapper",
      ":tcutil",
      "//gpu/gles2_conform_support/egl",
    ]

    include_dirs = [ "//third_party/khronos_glcts/framework/opengl" ]

    configs += [ ":defaults_config" ]
    configs -= [ "//build/config/compiler:chromium_code" ]
    configs += [ "//build/config/compiler:no_chromium_code" ]
    configs -= [ "//build/config/compiler:no_rtti" ]
    configs += [ "//build/config/compiler:rtti" ]
    configs -= [ "//build/config/compiler:no_exceptions" ]
    configs += [ "//build/config/compiler:exceptions" ]

    public_configs = [
      ":tcutil_egl_config",
      "//third_party/khronos:khronos_headers",
    ]

    if (is_linux) {
      cflags_cc = [ "-Wno-int-to-void-pointer-cast" ]
    }
  }

  group("khronos_glcts_framework") {
    public_deps = [
      ":delibs",
      ":glutil",
      ":qphelper",
      ":tcutil",
      ":tcutil_egl",
    ]
  }

  config("glcts_common_config") {
    include_dirs = [ "//third_party/khronos_glcts/cts/common" ]
  }
  source_set("glcts_common") {
    sources = [
      "//third_party/khronos_glcts/cts/common/glcConfigList.cpp",
      "//third_party/khronos_glcts/cts/common/glcConfigList.hpp",
      "//third_party/khronos_glcts/cts/common/glcConfigListCase.cpp",
      "//third_party/khronos_glcts/cts/common/glcConfigListCase.hpp",
      "//third_party/khronos_glcts/cts/common/glcConfigPackage.cpp",
      "//third_party/khronos_glcts/cts/common/glcConfigPackage.hpp",
      "//third_party/khronos_glcts/cts/common/glcContext.cpp",
      "//third_party/khronos_glcts/cts/common/glcContext.hpp",
      "//third_party/khronos_glcts/cts/common/glcFragDepthTests.cpp",
      "//third_party/khronos_glcts/cts/common/glcFragDepthTests.hpp",
      "//third_party/khronos_glcts/cts/common/glcInfoTests.cpp",
      "//third_party/khronos_glcts/cts/common/glcInfoTests.hpp",
      "//third_party/khronos_glcts/cts/common/glcShaderIndexingTests.cpp",
      "//third_party/khronos_glcts/cts/common/glcShaderIndexingTests.hpp",
      "//third_party/khronos_glcts/cts/common/glcShaderIntegerMixTests.cpp",
      "//third_party/khronos_glcts/cts/common/glcShaderIntegerMixTests.hpp",
      "//third_party/khronos_glcts/cts/common/glcShaderLibrary.cpp",
      "//third_party/khronos_glcts/cts/common/glcShaderLibrary.hpp",
      "//third_party/khronos_glcts/cts/common/glcShaderLibraryCase.cpp",
      "//third_party/khronos_glcts/cts/common/glcShaderLibraryCase.hpp",
      "//third_party/khronos_glcts/cts/common/glcShaderLoopTests.cpp",
      "//third_party/khronos_glcts/cts/common/glcShaderLoopTests.hpp",
      "//third_party/khronos_glcts/cts/common/glcShaderRenderCase.cpp",
      "//third_party/khronos_glcts/cts/common/glcShaderRenderCase.hpp",
      "//third_party/khronos_glcts/cts/common/glcShaderStructTests.cpp",
      "//third_party/khronos_glcts/cts/common/glcShaderStructTests.hpp",
      "//third_party/khronos_glcts/cts/common/glcShaderSwitchTests.cpp",
      "//third_party/khronos_glcts/cts/common/glcShaderSwitchTests.hpp",
      "//third_party/khronos_glcts/cts/common/glcTestCase.cpp",
      "//third_party/khronos_glcts/cts/common/glcTestCase.hpp",
      "//third_party/khronos_glcts/cts/common/glcTestCaseWrapper.cpp",
      "//third_party/khronos_glcts/cts/common/glcTestCaseWrapper.hpp",
      "//third_party/khronos_glcts/cts/common/glcTestPackage.cpp",
      "//third_party/khronos_glcts/cts/common/glcTestPackage.hpp",
      "//third_party/khronos_glcts/cts/common/glcTestSubcase.cpp",
      "//third_party/khronos_glcts/cts/common/glcTestSubcase.hpp",
      "//third_party/khronos_glcts/cts/common/glcUniformBlockCase.cpp",
      "//third_party/khronos_glcts/cts/common/glcUniformBlockCase.hpp",
      "//third_party/khronos_glcts/cts/common/glcUniformBlockTests.cpp",
      "//third_party/khronos_glcts/cts/common/glcUniformBlockTests.hpp",
    ]

    deps = [
      ":delibs",
      ":glutil",
      ":tcutil",
      ":tcutil_egl",
    ]

    configs += [ ":defaults_config" ]
    configs -= [ "//build/config/compiler:chromium_code" ]
    configs += [ "//build/config/compiler:no_chromium_code" ]
    configs -= [ "//build/config/compiler:no_rtti" ]
    configs += [ "//build/config/compiler:rtti" ]
    configs -= [ "//build/config/compiler:no_exceptions" ]
    configs += [ "//build/config/compiler:exceptions" ]

    public_configs = [ ":glcts_common_config" ]

    if (is_linux) {
      cflags_cc = [ "-Wno-string-conversion" ]
    }
  }

  config("glcts_gtf_wrapper_config") {
    include_dirs = [ "//third_party/khronos_glcts/cts/gtf" ]
  }
  source_set("glcts_gtf_wrapper") {
    sources = [
      "//third_party/khronos_glcts/cts/gtf/gtfTestContext.cpp",
      "//third_party/khronos_glcts/cts/gtf/gtfTestContext.hpp",
      "//third_party/khronos_glcts/cts/gtf/gtfWrapper.cpp",
      "//third_party/khronos_glcts/cts/gtf/gtfWrapper.h",
    ]

    deps = [
      ":delibs",
      ":glcts_common",
      ":glutil",
      ":tcutil",
      ":tcutil_egl",
    ]

    include_dirs = [ "//third_party/khronos_glcts/GTF_ES/glsl/GTF/Source" ]

    configs += [ ":defaults_config" ]
    configs -= [ "//build/config/compiler:chromium_code" ]
    configs += [ "//build/config/compiler:no_chromium_code" ]
    configs -= [ "//build/config/compiler:no_rtti" ]
    configs += [ "//build/config/compiler:rtti" ]
    configs -= [ "//build/config/compiler:no_exceptions" ]
    configs += [ "//build/config/compiler:exceptions" ]

    public_configs = [ ":glcts_gtf_wrapper_config" ]
  }

  config("gtf_es_config") {
    include_dirs = [ "//third_party/khronos_glcts/GTF_ES/glsl/GTF/Source" ]
  }
  source_set("gtf_es") {
    sources = [
      "//third_party/khronos_glcts/GTF_ES/glsl/GTF/Source/GL/GTFAttDataGL.c",
      "//third_party/khronos_glcts/GTF_ES/glsl/GTF/Source/GL/GTFDepthRangeParamGL.c",
      "//third_party/khronos_glcts/GTF_ES/glsl/GTF/Source/GL/GTFModelDataGL.c",
      "//third_party/khronos_glcts/GTF_ES/glsl/GTF/Source/GL/GTFPointParamGL.c",
      "//third_party/khronos_glcts/GTF_ES/glsl/GTF/Source/GL/GTFReadPixelsGL.c",
      "//third_party/khronos_glcts/GTF_ES/glsl/GTF/Source/GL/GTFShaderDataGL.c",
      "//third_party/khronos_glcts/GTF_ES/glsl/GTF/Source/GL/GTFShaderTextGL.c",
      "//third_party/khronos_glcts/GTF_ES/glsl/GTF/Source/GL/GTFStateDataGL.c",
      "//third_party/khronos_glcts/GTF_ES/glsl/GTF/Source/GL/GTFTestTextureFloatBase.c",
      "//third_party/khronos_glcts/GTF_ES/glsl/GTF/Source/GL/GTFTexDataGL.c",
      "//third_party/khronos_glcts/GTF_ES/glsl/GTF/Source/GL/GTFTexParamGL.c",
      "//third_party/khronos_glcts/GTF_ES/glsl/GTF/Source/GL/GTFUniDataGL.c",
      "//third_party/khronos_glcts/GTF_ES/glsl/GTF/Source/GTFArguments.c",
      "//third_party/khronos_glcts/GTF_ES/glsl/GTF/Source/GTFFileReader.c",
      "//third_party/khronos_glcts/GTF_ES/glsl/GTF/Source/GTFLog.c",
      "//third_party/khronos_glcts/GTF_ES/glsl/GTF/Source/GTFMemFile.c",
      "//third_party/khronos_glcts/GTF_ES/glsl/GTF/Source/GTFModelData.c",
      "//third_party/khronos_glcts/GTF_ES/glsl/GTF/Source/GTFPort.c",
      "//third_party/khronos_glcts/GTF_ES/glsl/GTF/Source/GTFStringUtils.c",
      "//third_party/khronos_glcts/GTF_ES/glsl/GTF/Source/GTFTest.c",
      "//third_party/khronos_glcts/GTF_ES/glsl/GTF/Source/GTFTestCompareGL.c",
      "//third_party/khronos_glcts/GTF_ES/glsl/GTF/Source/GTFTestDriver.c",
      "//third_party/khronos_glcts/GTF_ES/glsl/GTF/Source/GTFTestElement.c",
      "//third_party/khronos_glcts/GTF_ES/glsl/GTF/Source/GTFTestUtil.c",
      "//third_party/khronos_glcts/GTF_ES/glsl/GTF/Source/GTFgl.c",
      "//third_party/khronos_glcts/GTF_ES/glsl/GTF/Source/MIMG.c",
      "//third_party/khronos_glcts/GTF_ES/glsl/GTF/Source/XmlUtils.c",
      "//third_party/khronos_glcts/GTF_ES/glsl/GTF/Source/eglu.c",
      "//third_party/khronos_glcts/GTF_ES/glsl/GTF/Source/eglut.c",
      "//third_party/khronos_glcts/GTF_ES/glsl/GTF/Source/gl2Native.c",

      # Base
      "//third_party/khronos_glcts/GTF_ES/glsl/GTF/Source/GL2Tests/GTFGL2TestAttributeGL.c",
      "//third_party/khronos_glcts/GTF_ES/glsl/GTF/Source/GL2Tests/GTFGL2TestBindAllAttributes.c",
      "//third_party/khronos_glcts/GTF_ES/glsl/GTF/Source/GL2Tests/GTFGL2TestCreateObjectGL.c",
      "//third_party/khronos_glcts/GTF_ES/glsl/GTF/Source/GL2Tests/GTFGL2TestDetachGL.c",
      "//third_party/khronos_glcts/GTF_ES/glsl/GTF/Source/GL2Tests/GTFGL2TestFixedDataType.c",
      "//third_party/khronos_glcts/GTF_ES/glsl/GTF/Source/GL2Tests/GTFGL2TestFramebufferObjects.c",
      "//third_party/khronos_glcts/GTF_ES/glsl/GTF/Source/GL2Tests/GTFGL2TestGetAttachedObjects.c",
      "//third_party/khronos_glcts/GTF_ES/glsl/GTF/Source/GL2Tests/GTFGL2TestGetAttributeLocation.c",
      "//third_party/khronos_glcts/GTF_ES/glsl/GTF/Source/GL2Tests/GTFGL2TestGetBIFD.c",
      "//third_party/khronos_glcts/GTF_ES/glsl/GTF/Source/GL2Tests/GTFGL2TestGetExtensions.c",
      "//third_party/khronos_glcts/GTF_ES/glsl/GTF/Source/GL2Tests/GTFGL2TestGetProgramInfoLog.c",
      "//third_party/khronos_glcts/GTF_ES/glsl/GTF/Source/GL2Tests/GTFGL2TestGetProgramiv.c",
      "//third_party/khronos_glcts/GTF_ES/glsl/GTF/Source/GL2Tests/GTFGL2TestGetShaderInfoLog.c",
      "//third_party/khronos_glcts/GTF_ES/glsl/GTF/Source/GL2Tests/GTFGL2TestGetShaderiv.c",
      "//third_party/khronos_glcts/GTF_ES/glsl/GTF/Source/GL2Tests/GTFGL2TestGetUniform.c",
      "//third_party/khronos_glcts/GTF_ES/glsl/GTF/Source/GL2Tests/GTFGL2TestGetVertexAttrib.c",
      "//third_party/khronos_glcts/GTF_ES/glsl/GTF/Source/GL2Tests/GTFGL2TestMaxVertexAttrib.c",
      "//third_party/khronos_glcts/GTF_ES/glsl/GTF/Source/GL2Tests/GTFGL2TestMultipleShaders.c",
      "//third_party/khronos_glcts/GTF_ES/glsl/GTF/Source/GL2Tests/GTFGL2TestRelinkProgram.c",
      "//third_party/khronos_glcts/GTF_ES/glsl/GTF/Source/GL2Tests/GTFGL2TestUniform.c",
      "//third_party/khronos_glcts/GTF_ES/glsl/GTF/Source/GL2Tests/GTFGL2TestUniformQueryGL.c",
      "//third_party/khronos_glcts/GTF_ES/glsl/GTF/Source/GL2Tests/GTFGL2TestVertexAttribPointer.c",
      "//third_party/khronos_glcts/GTF_ES/glsl/GTF/Source/GL2Tests/GTFGL2TestVertexAttributes.c",
      "//third_party/khronos_glcts/GTF_ES/glsl/GTF/Source/GL2Tests/GTFGL2TestVertexProgramPointSize.c",
      "//third_party/khronos_glcts/GTF_ES/glsl/GTF/Source/GTFTestGL2Test.c",

      # Build
      "//third_party/khronos_glcts/GTF_ES/glsl/GTF/Source/GTFTestBuildGL.c",

      # Shader load
      "//third_party/khronos_glcts/GTF_ES/glsl/GTF/Source/GTFTestShaderLoadGL.c",

      # Rasterization
      "//third_party/khronos_glcts/GTF_ES/glsl/GTF/Source/GTFTestRasterizationGL.c",

      # Complexity
      "//third_party/khronos_glcts/GTF_ES/glsl/GTF/Source/GTFTestComplexityGL.c",

      # Coverage
      "//third_party/khronos_glcts/GTF_ES/glsl/GTF/Source/GTFCoverageDict.c",
      "//third_party/khronos_glcts/GTF_ES/glsl/GTF/Source/GTFCoverageGL.c",
      "//third_party/khronos_glcts/GTF_ES/glsl/GTF/Source/GTFTestCoverageGL.c",

      # Fixed-function
      "//third_party/khronos_glcts/GTF_ES/glsl/GTF/Source/GL2FixedTests/GTFFixedTestBlend.c",
      "//third_party/khronos_glcts/GTF_ES/glsl/GTF/Source/GL2FixedTests/GTFFixedTestBufferClear.c",
      "//third_party/khronos_glcts/GTF_ES/glsl/GTF/Source/GL2FixedTests/GTFFixedTestBufferColor.c",
      "//third_party/khronos_glcts/GTF_ES/glsl/GTF/Source/GL2FixedTests/GTFFixedTestBufferCorners.c",
      "//third_party/khronos_glcts/GTF_ES/glsl/GTF/Source/GL2FixedTests/GTFFixedTestBufferObjects.c",
      "//third_party/khronos_glcts/GTF_ES/glsl/GTF/Source/GL2FixedTests/GTFFixedTestClip.c",
      "//third_party/khronos_glcts/GTF_ES/glsl/GTF/Source/GL2FixedTests/GTFFixedTestColorRamp.c",
      "//third_party/khronos_glcts/GTF_ES/glsl/GTF/Source/GL2FixedTests/GTFFixedTestCopyTexture.c",
      "//third_party/khronos_glcts/GTF_ES/glsl/GTF/Source/GL2FixedTests/GTFFixedTestDepthBufferClear.c",
      "//third_party/khronos_glcts/GTF_ES/glsl/GTF/Source/GL2FixedTests/GTFFixedTestDepthBufferFunctions.c",
      "//third_party/khronos_glcts/GTF_ES/glsl/GTF/Source/GL2FixedTests/GTFFixedTestDither.c",
      "//third_party/khronos_glcts/GTF_ES/glsl/GTF/Source/GL2FixedTests/GTFFixedTestDivideByZero.c",
      "//third_party/khronos_glcts/GTF_ES/glsl/GTF/Source/GL2FixedTests/GTFFixedTestGets.c",
      "//third_party/khronos_glcts/GTF_ES/glsl/GTF/Source/GL2FixedTests/GTFFixedTestMipmapsInterpolation.c",
      "//third_party/khronos_glcts/GTF_ES/glsl/GTF/Source/GL2FixedTests/GTFFixedTestMipmapsSelection.c",
      "//third_party/khronos_glcts/GTF_ES/glsl/GTF/Source/GL2FixedTests/GTFFixedTestPointRasterization.c",
      "//third_party/khronos_glcts/GTF_ES/glsl/GTF/Source/GL2FixedTests/GTFFixedTestPointSprites.c",
      "//third_party/khronos_glcts/GTF_ES/glsl/GTF/Source/GL2FixedTests/GTFFixedTestPolygonCull.c",
      "//third_party/khronos_glcts/GTF_ES/glsl/GTF/Source/GL2FixedTests/GTFFixedTestScissor.c",
      "//third_party/khronos_glcts/GTF_ES/glsl/GTF/Source/GL2FixedTests/GTFFixedTestStencilPlaneClear.c",
      "//third_party/khronos_glcts/GTF_ES/glsl/GTF/Source/GL2FixedTests/GTFFixedTestStencilPlaneCorners.c",
      "//third_party/khronos_glcts/GTF_ES/glsl/GTF/Source/GL2FixedTests/GTFFixedTestStencilPlaneFunction.c",
      "//third_party/khronos_glcts/GTF_ES/glsl/GTF/Source/GL2FixedTests/GTFFixedTestStencilPlaneOperation.c",
      "//third_party/khronos_glcts/GTF_ES/glsl/GTF/Source/GL2FixedTests/GTFFixedTestTextureEdgeClamp.c",
      "//third_party/khronos_glcts/GTF_ES/glsl/GTF/Source/GL2FixedTests/GTFFixedTestTransformViewport.c",
      "//third_party/khronos_glcts/GTF_ES/glsl/GTF/Source/GL2FixedTests/GTFFixedTestTriangleRasterization.c",
      "//third_party/khronos_glcts/GTF_ES/glsl/GTF/Source/GL2FixedTests/GTFFixedTestTriangleTiling.c",
      "//third_party/khronos_glcts/GTF_ES/glsl/GTF/Source/GL2FixedTests/GTFFixedTestUserClipPlanes.c",
      "//third_party/khronos_glcts/GTF_ES/glsl/GTF/Source/GL2FixedTests/GTFFixedTestVertexOrder.c",
      "//third_party/khronos_glcts/GTF_ES/glsl/GTF/Source/GL2FixedTests/GTFFixedTestViewportClamp.c",
      "//third_party/khronos_glcts/GTF_ES/glsl/GTF/Source/GL2FixedTests/GTFFixedUtilg.c",
      "//third_party/khronos_glcts/GTF_ES/glsl/GTF/Source/GL2FixedTests/GTFFixedUtilr.c",
      "//third_party/khronos_glcts/GTF_ES/glsl/GTF/Source/GTFTestFixedGL.c",

      # Extensions
      "//third_party/khronos_glcts/GTF_ES/glsl/GTF/Source/GL2ExtensionTests/GTFExtensionTestConditionalQuery.c",
      "//third_party/khronos_glcts/GTF_ES/glsl/GTF/Source/GL2ExtensionTests/GTFExtensionTestDataType1010102.c",
      "//third_party/khronos_glcts/GTF_ES/glsl/GTF/Source/GL2ExtensionTests/GTFExtensionTestDebug.c",
      "//third_party/khronos_glcts/GTF_ES/glsl/GTF/Source/GL2ExtensionTests/GTFExtensionTestDepth24.c",
      "//third_party/khronos_glcts/GTF_ES/glsl/GTF/Source/GL2ExtensionTests/GTFExtensionTestDepth32.c",
      "//third_party/khronos_glcts/GTF_ES/glsl/GTF/Source/GL2ExtensionTests/GTFExtensionTestDepthTexture.c",
      "//third_party/khronos_glcts/GTF_ES/glsl/GTF/Source/GL2ExtensionTests/GTFExtensionTestDepthTextureCubeMap.c",
      "//third_party/khronos_glcts/GTF_ES/glsl/GTF/Source/GL2ExtensionTests/GTFExtensionTestElementIndexUINT.c",
      "//third_party/khronos_glcts/GTF_ES/glsl/GTF/Source/GL2ExtensionTests/GTFExtensionTestFBORenderMipmap.c",
      "//third_party/khronos_glcts/GTF_ES/glsl/GTF/Source/GL2ExtensionTests/GTFExtensionTestFragmentPrecisionHigh.c",
      "//third_party/khronos_glcts/GTF_ES/glsl/GTF/Source/GL2ExtensionTests/GTFExtensionTestFramebufferObject.c",
      "//third_party/khronos_glcts/GTF_ES/glsl/GTF/Source/GL2ExtensionTests/GTFExtensionTestMapBuffer.c",
      "//third_party/khronos_glcts/GTF_ES/glsl/GTF/Source/GL2ExtensionTests/GTFExtensionTestOcclusionQuery.c",
      "//third_party/khronos_glcts/GTF_ES/glsl/GTF/Source/GL2ExtensionTests/GTFExtensionTestPackedDepthStencil.c",
      "//third_party/khronos_glcts/GTF_ES/glsl/GTF/Source/GL2ExtensionTests/GTFExtensionTestPointSizeArray.c",
      "//third_party/khronos_glcts/GTF_ES/glsl/GTF/Source/GL2ExtensionTests/GTFExtensionTestPointSprite.c",
      "//third_party/khronos_glcts/GTF_ES/glsl/GTF/Source/GL2ExtensionTests/GTFExtensionTestReadFormat.c",
      "//third_party/khronos_glcts/GTF_ES/glsl/GTF/Source/GL2ExtensionTests/GTFExtensionTestStencil1.c",
      "//third_party/khronos_glcts/GTF_ES/glsl/GTF/Source/GL2ExtensionTests/GTFExtensionTestStencil4.c",
      "//third_party/khronos_glcts/GTF_ES/glsl/GTF/Source/GL2ExtensionTests/GTFExtensionTestStencil8.c",
      "//third_party/khronos_glcts/GTF_ES/glsl/GTF/Source/GL2ExtensionTests/GTFExtensionTestTexture3D.c",
      "//third_party/khronos_glcts/GTF_ES/glsl/GTF/Source/GL2ExtensionTests/GTFExtensionTestTextureCompressionASTCLDR.c",
      "//third_party/khronos_glcts/GTF_ES/glsl/GTF/Source/GL2ExtensionTests/GTFExtensionTestTextureFloat.c",
      "//third_party/khronos_glcts/GTF_ES/glsl/GTF/Source/GL2ExtensionTests/GTFExtensionTestTextureFloatLinear.c",
      "//third_party/khronos_glcts/GTF_ES/glsl/GTF/Source/GL2ExtensionTests/GTFExtensionTestTextureNPOT.c",
      "//third_party/khronos_glcts/GTF_ES/glsl/GTF/Source/GL2ExtensionTests/GTFExtensionTestUtilp.c",
      "//third_party/khronos_glcts/GTF_ES/glsl/GTF/Source/GL2ExtensionTests/GTFExtensionTestVertexArrayObject.c",
      "//third_party/khronos_glcts/GTF_ES/glsl/GTF/Source/GL2ExtensionTests/GTFExtensionTestVertexHalfFloat.c",
      "//third_party/khronos_glcts/GTF_ES/glsl/GTF/Source/GTFTestExtension.c",

      # ES only.
      "//third_party/khronos_glcts/GTF_ES/glsl/GTF/Source/GL2ExtensionTests/GTFExtensionTestCompressedETC1RGB8Texture.c",
      "//third_party/khronos_glcts/GTF_ES/glsl/GTF/Source/GL2ExtensionTests/GTFExtensionTestCompressedPalettedTexture.c",
      "//third_party/khronos_glcts/GTF_ES/glsl/GTF/Source/GL2ExtensionTests/GTFExtensionTestEGLCreateContext.c",
      "//third_party/khronos_glcts/GTF_ES/glsl/GTF/Source/GL2ExtensionTests/GTFExtensionTestEGLImage.c",
      "//third_party/khronos_glcts/GTF_ES/glsl/GTF/Source/GL2ExtensionTests/GTFExtensionTestEGLImageExternal.c",
      "//third_party/khronos_glcts/GTF_ES/glsl/GTF/Source/GL2ExtensionTests/GTFExtensionTestRGB8RGBA8.c",
      "//third_party/khronos_glcts/GTF_ES/glsl/GTF/Source/GL2ExtensionTests/GTFExtensionTestRequiredInternalformat.c",
      "//third_party/khronos_glcts/GTF_ES/glsl/GTF/Source/GL2ExtensionTests/GTFExtensionTestSurfacelessContext.c",
    ]

    deps = [
      ":debase",
      ":glcts_gtf_wrapper",
      "//third_party/expat",
    ]

    configs += [ ":defaults_config" ]
    configs -= [ "//build/config/compiler:chromium_code" ]
    configs += [ "//build/config/compiler:no_chromium_code" ]
    configs -= [ "//build/config/compiler:no_rtti" ]
    configs += [ "//build/config/compiler:rtti" ]

    public_configs = [ ":gtf_es_config" ]

    if (is_linux) {
      cflags_c = [
        "-Wno-pointer-sign",
        "-Wno-incompatible-pointer-types",
        "-Wno-return-type",
        "-Wno-parentheses-equality",
        "-Wno-tautological-compare",
      ]
    }
  }

  config("glcts_gtf_config") {
    include_dirs = [ "//third_party/khronos_glcts/cts/gtf" ]
  }
  source_set("glcts_gtf") {
    sources = [
      "//third_party/khronos_glcts/cts/gtf/gtfTestCase.cpp",
      "//third_party/khronos_glcts/cts/gtf/gtfTestCase.hpp",
      "//third_party/khronos_glcts/cts/gtf/gtfTestGroup.cpp",
      "//third_party/khronos_glcts/cts/gtf/gtfTestGroup.hpp",
    ]

    deps = [
      ":delibs",
      ":glcts_common",
      ":glcts_gtf_wrapper",
      ":glutil",
      ":gtf_es",
      ":tcutil",
    ]

    configs += [ ":defaults_config" ]
    configs -= [ "//build/config/compiler:chromium_code" ]
    configs += [ "//build/config/compiler:no_chromium_code" ]
    configs -= [ "//build/config/compiler:no_rtti" ]
    configs += [ "//build/config/compiler:rtti" ]
    configs -= [ "//build/config/compiler:no_exceptions" ]
    configs += [ "//build/config/compiler:exceptions" ]

    public_configs = [ ":glcts_gtf_config" ]
  }

  config("glcts_es2_config") {
    include_dirs = [ "//third_party/khronos_glcts/cts/gles2" ]
  }
  source_set("glcts_es2") {
    sources = [
      "//third_party/khronos_glcts/cts/gles2/es2cTestPackage.cpp",
      "//third_party/khronos_glcts/cts/gles2/es2cTestPackage.hpp",
    ]

    public_deps = [ ":glcts_common" ]

    deps = [
      ":delibs",
      ":glcts_gtf",
      ":glutil",
      ":tcutil",
    ]

    configs += [ ":defaults_config" ]
    configs -= [ "//build/config/compiler:chromium_code" ]
    configs += [ "//build/config/compiler:no_chromium_code" ]
    configs -= [ "//build/config/compiler:no_rtti" ]
    configs += [ "//build/config/compiler:rtti" ]
    configs -= [ "//build/config/compiler:no_exceptions" ]
    configs += [ "//build/config/compiler:exceptions" ]

    public_configs = [ ":glcts_es2_config" ]
  }

  source_set("tcutil_platform_windowless") {
    sources = [ "native/egl_native_windowless.cc" ]

    deps = [ ":khronos_glcts_framework" ]

    configs -= [ "//build/config/compiler:no_rtti" ]
    configs += [ "//build/config/compiler:rtti" ]
  }

  executable("khronos_glcts_test_windowless") {
    sources = [
      "//third_party/khronos_glcts/cts/glcTestPackageEntry.cpp",
      "//third_party/khronos_glcts/cts/glcTestPackageRegistry.cpp",
      "//third_party/khronos_glcts/cts/glcTestPackageRegistry.hpp",
      "native/main.cc",
    ]

    deps = [
      ":glcts_es2",
      ":glcts_gtf_resources",
      ":glcts_resources",
      ":khronos_glcts_framework",
      ":tcutil_platform_windowless",
    ]

    configs += [ ":defaults_config" ]
    configs -= [ "//build/config/compiler:chromium_code" ]
    configs += [ "//build/config/compiler:no_chromium_code" ]
    configs -= [ "//build/config/compiler:no_exceptions" ]
    configs += [ "//build/config/compiler:exceptions" ]
  }
}

if (!is_android) {
  test("khronos_glcts_test") {
    sources = [
      "khronos_glcts_test.cc",
      "khronos_glcts_test.h",
    ]

    deps = [
      "//base",
      "//gpu",
      "//testing/gtest",
    ]

    data = [ "khronos_glcts_test_expectations.txt" ]

    if (internal_khronos_glcts_tests) {
      sources += [ "$target_gen_dir/khronos_glcts_test_autogen.cc" ]
      deps += [
        ":generate_khronos_glcts_tests",
        ":khronos_glcts_test_windowless",
      ]
    }
  }
}
