# Copyright 2014 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")

source_set("cc") {
  sources = [
    "debug/frame_timing_request.cc",
    "debug/frame_timing_request.h",
    "debug/lap_timer.cc",
    "debug/lap_timer.h",
    "debug/paint_time_counter.cc",
    "debug/paint_time_counter.h",
    "debug/rendering_stats.cc",
    "debug/rendering_stats.h",
    "debug/rendering_stats_instrumentation.cc",
    "debug/rendering_stats_instrumentation.h",
    "debug/ring_buffer.h",
    "debug/traced_value.cc",
    "debug/traced_value.h",
    "output/begin_frame_args.cc",
    "output/begin_frame_args.h",
    "output/bsp_tree.cc",
    "output/bsp_tree.h",
    "output/bsp_walk_action.cc",
    "output/bsp_walk_action.h",
    "output/compositor_frame.cc",
    "output/compositor_frame.h",
    "output/compositor_frame_ack.cc",
    "output/compositor_frame_ack.h",
    "output/compositor_frame_metadata.cc",
    "output/compositor_frame_metadata.h",
    "output/context_provider.cc",
    "output/context_provider.h",
    "output/copy_output_request.cc",
    "output/copy_output_request.h",
    "output/copy_output_result.cc",
    "output/copy_output_result.h",
    "output/delegated_frame_data.cc",
    "output/delegated_frame_data.h",
    "output/delegating_renderer.cc",
    "output/delegating_renderer.h",
    "output/direct_renderer.cc",
    "output/direct_renderer.h",
    "output/dynamic_geometry_binding.cc",
    "output/dynamic_geometry_binding.h",
    "output/filter_operation.cc",
    "output/filter_operation.h",
    "output/filter_operations.cc",
    "output/filter_operations.h",
    "output/geometry_binding.cc",
    "output/geometry_binding.h",
    "output/gl_frame_data.cc",
    "output/gl_frame_data.h",
    "output/gl_renderer.cc",
    "output/gl_renderer.h",
    "output/gl_renderer_draw_cache.cc",
    "output/gl_renderer_draw_cache.h",
    "output/output_surface.cc",
    "output/output_surface.h",
    "output/output_surface_client.h",
    "output/overlay_candidate.cc",
    "output/overlay_candidate.h",
    "output/overlay_candidate_validator.h",
    "output/overlay_processor.cc",
    "output/overlay_processor.h",
    "output/overlay_strategy_single_on_top.cc",
    "output/overlay_strategy_single_on_top.h",
    "output/program_binding.cc",
    "output/program_binding.h",
    "output/render_surface_filters.cc",
    "output/render_surface_filters.h",
    "output/renderer.cc",
    "output/renderer.h",
    "output/renderer_capabilities.cc",
    "output/renderer_capabilities.h",
    "output/renderer_settings.cc",
    "output/renderer_settings.h",
    "output/shader.cc",
    "output/shader.h",
    "output/software_frame_data.cc",
    "output/software_frame_data.h",
    "output/software_output_device.cc",
    "output/software_output_device.h",
    "output/software_renderer.cc",
    "output/software_renderer.h",
    "output/static_geometry_binding.cc",
    "output/static_geometry_binding.h",
    "output/vsync_parameter_observer.h",
    "quads/checkerboard_draw_quad.cc",
    "quads/checkerboard_draw_quad.h",
    "quads/content_draw_quad_base.cc",
    "quads/content_draw_quad_base.h",
    "quads/debug_border_draw_quad.cc",
    "quads/debug_border_draw_quad.h",
    "quads/draw_polygon.cc",
    "quads/draw_polygon.h",
    "quads/draw_quad.cc",
    "quads/draw_quad.h",
    "quads/io_surface_draw_quad.cc",
    "quads/io_surface_draw_quad.h",
    "quads/largest_draw_quad.cc",
    "quads/largest_draw_quad.h",
    "quads/list_container.cc",
    "quads/list_container.h",
    "quads/render_pass.cc",
    "quads/render_pass.h",
    "quads/render_pass_draw_quad.cc",
    "quads/render_pass_draw_quad.h",
    "quads/render_pass_id.cc",
    "quads/render_pass_id.h",
    "quads/shared_quad_state.cc",
    "quads/shared_quad_state.h",
    "quads/solid_color_draw_quad.cc",
    "quads/solid_color_draw_quad.h",
    "quads/stream_video_draw_quad.cc",
    "quads/stream_video_draw_quad.h",
    "quads/surface_draw_quad.cc",
    "quads/surface_draw_quad.h",
    "quads/texture_draw_quad.cc",
    "quads/texture_draw_quad.h",
    "quads/tile_draw_quad.cc",
    "quads/tile_draw_quad.h",
    "quads/yuv_video_draw_quad.cc",
    "quads/yuv_video_draw_quad.h",
    "resources/layer_quad.cc",
    "resources/layer_quad.h",
    "resources/platform_color.h",
    "resources/release_callback.h",
    "resources/resource.cc",
    "resources/resource.h",
    "resources/resource_format.cc",
    "resources/resource_format.h",
    "resources/resource_pool.cc",
    "resources/resource_pool.h",
    "resources/resource_provider.cc",
    "resources/resource_provider.h",
    "resources/returned_resource.h",
    "resources/scoped_resource.cc",
    "resources/scoped_resource.h",
    "resources/shared_bitmap.cc",
    "resources/shared_bitmap.h",
    "resources/shared_bitmap_manager.h",
    "resources/single_release_callback.cc",
    "resources/single_release_callback.h",
    "resources/single_release_callback_impl.cc",
    "resources/single_release_callback_impl.h",
    "resources/texture_compressor.cc",
    "resources/texture_compressor.h",
    "resources/texture_compressor_etc1.cc",
    "resources/texture_compressor_etc1.h",
    "resources/texture_mailbox.cc",
    "resources/texture_mailbox.h",
    "resources/texture_mailbox_deleter.cc",
    "resources/texture_mailbox_deleter.h",
    "resources/texture_uploader.cc",
    "resources/texture_uploader.h",
    "resources/transferable_resource.cc",
    "resources/transferable_resource.h",
    "scheduler/begin_frame_source.cc",
    "scheduler/begin_frame_source.h",
    "scheduler/commit_earlyout_reason.h",
    "scheduler/delay_based_time_source.cc",
    "scheduler/delay_based_time_source.h",
    "scheduler/draw_result.h",
    "scheduler/scheduler.cc",
    "scheduler/scheduler.h",
    "scheduler/scheduler_settings.cc",
    "scheduler/scheduler_settings.h",
    "scheduler/scheduler_state_machine.cc",
    "scheduler/scheduler_state_machine.h",
  ]

  # TODO(jschuh): crbug.com/167187 fix size_t to int truncations.
  configs += [ "//build/config/compiler:no_size_t_to_int_warning" ]

  public_deps = [
    "//cc/base",
    "//skia",
  ]
  deps = [
    "//base",
    "//base/third_party/dynamic_annotations",
    "//cc/surfaces:surface_id",
    "//gpu",
    "//gpu/command_buffer/client:gles2_interface",
    "//gpu/command_buffer/client:gpu_memory_buffer_manager",
    "//ui/events:events_base",
    "//ui/gfx",
    "//ui/gfx/geometry",
  ]

  defines = [ "CC_IMPLEMENTATION=1" ]

  if (!is_debug && (is_win || is_android)) {
    configs -= [ "//build/config/compiler:optimize" ]
    configs += [ "//build/config/compiler:optimize_max" ]
  }
}

source_set("test_support") {
  testonly = true
  sources = [
    "test/begin_frame_args_test.cc",
    "test/begin_frame_args_test.h",
    "test/failure_output_surface.cc",
    "test/failure_output_surface.h",
    "test/fake_external_begin_frame_source.cc",
    "test/fake_external_begin_frame_source.h",
    "test/fake_output_surface.cc",
    "test/fake_output_surface.h",
    "test/fake_output_surface_client.cc",
    "test/fake_output_surface_client.h",
    "test/fake_renderer_client.cc",
    "test/fake_renderer_client.h",
    "test/geometry_test_utils.cc",
    "test/geometry_test_utils.h",
    "test/mock_occlusion_tracker.h",
    "test/ordered_simple_task_runner.cc",
    "test/ordered_simple_task_runner.h",
    "test/ordered_texture_map.cc",
    "test/ordered_texture_map.h",
    "test/paths.cc",
    "test/paths.h",
    "test/pixel_comparator.cc",
    "test/pixel_comparator.h",
    "test/pixel_test.cc",
    "test/pixel_test.h",
    "test/pixel_test_output_surface.cc",
    "test/pixel_test_output_surface.h",
    "test/pixel_test_software_output_device.cc",
    "test/pixel_test_software_output_device.h",
    "test/pixel_test_utils.cc",
    "test/pixel_test_utils.h",
    "test/render_pass_test_common.cc",
    "test/render_pass_test_common.h",
    "test/render_pass_test_utils.cc",
    "test/render_pass_test_utils.h",
    "test/scheduler_test_common.cc",
    "test/scheduler_test_common.h",
    "test/skia_common.cc",
    "test/skia_common.h",
    "test/test_context_provider.cc",
    "test/test_context_provider.h",
    "test/test_context_support.cc",
    "test/test_context_support.h",
    "test/test_gles2_interface.cc",
    "test/test_gles2_interface.h",
    "test/test_gpu_memory_buffer_manager.cc",
    "test/test_gpu_memory_buffer_manager.h",
    "test/test_image_factory.cc",
    "test/test_image_factory.h",
    "test/test_in_process_context_provider.cc",
    "test/test_in_process_context_provider.h",
    "test/test_now_source.cc",
    "test/test_now_source.h",
    "test/test_occlusion_tracker.h",
    "test/test_shared_bitmap_manager.cc",
    "test/test_shared_bitmap_manager.h",
    "test/test_task_graph_runner.cc",
    "test/test_task_graph_runner.h",
    "test/test_texture.cc",
    "test/test_texture.h",
  ]

  configs += [ "//build/config/compiler:no_size_t_to_int_warning" ]

  include_dirs = [
    ".",
    "test",
  ]

  public_deps = [
    ":cc",
    "//gpu:test_support",
  ]
  deps = [
    "//base",
    "//base/test:test_support",
    "//base/third_party/dynamic_annotations",
    "//gpu/command_buffer/client:gles2_c_lib",
    "//gpu/command_buffer/client:gles2_implementation",
    "//gpu/command_buffer/client:gpu_memory_buffer_manager",
    "//gpu/command_buffer/client:gl_in_process_context",
    "//gpu/command_buffer/common:gles2_utils",
    "//gpu/skia_bindings",
    "//skia",
    "//testing/gmock",
    "//testing/gtest",
    "//ui/gfx",
    "//ui/gfx/geometry",
    "//ui/gfx:test_support",
    "//ui/gl",
  ]

  if (!is_android) {  # TODO(GYP) Enable on Android when osmesa links.
    deps += [ "//third_party/mesa:osmesa" ]
  }
}

test("cc_unittests") {
  sources = [
    "base/float_quad_unittest.cc",
    "base/math_util_unittest.cc",
    "base/scoped_ptr_vector_unittest.cc",
    "base/util_unittest.cc",
    "output/begin_frame_args_unittest.cc",
    "output/delegating_renderer_unittest.cc",
    "output/filter_operations_unittest.cc",
    "output/gl_renderer_unittest.cc",
    "output/output_surface_unittest.cc",
    "output/overlay_unittest.cc",
    "output/renderer_pixeltest.cc",
    "output/renderer_unittest.cc",
    "output/shader_unittest.cc",
    "output/software_renderer_unittest.cc",
    "quads/draw_quad_unittest.cc",
    "quads/list_container_unittest.cc",
    "quads/render_pass_unittest.cc",
    "resources/platform_color_unittest.cc",
    "resources/resource_provider_unittest.cc",
    "scheduler/begin_frame_source_unittest.cc",
    "scheduler/delay_based_time_source_unittest.cc",
    "scheduler/scheduler_state_machine_unittest.cc",
    "scheduler/scheduler_unittest.cc",

    # Surfaces test files.
    "surfaces/surface_aggregator_test_helpers.cc",
    "surfaces/surface_aggregator_test_helpers.h",
    "surfaces/surface_aggregator_unittest.cc",
    "surfaces/surface_unittest.cc",
    "surfaces/surfaces_pixeltest.cc",

    # Setup.
    "test/cc_test_suite.cc",
    "test/run_all_unittests.cc",
  ]

  configs += [ "//build/config/compiler:no_size_t_to_int_warning" ]

  deps = [
    ":cc",
    ":test_support",
    "//base/test:test_support",
    "//cc/surfaces",
    "//cc/surfaces:surface_id",
    "//gpu",
    "//gpu:test_support",
    "//gpu/command_buffer/client:gles2_interface",
    "//gpu/command_buffer/common:gles2_utils",
    "//testing/gmock",
    "//testing/gtest",
    "//ui/events:events_base",
    "//ui/gfx",
    "//ui/gfx/geometry",
    "//ui/gfx:test_support",
    "//ui/gl",
  ]
}

test("cc_perftests") {
  sources = [
    "resources/texture_compressor_perftest.cc",
    "test/cc_test_suite.cc",
    "test/run_all_perftests.cc",
  ]

  configs += [ "//build/config/compiler:no_size_t_to_int_warning" ]

  deps = [
    ":cc",
    ":test_support",
    "//base",
    "//base/test:test_support",
    "//gpu",
    "//gpu:test_support",
    "//gpu/command_buffer/common:gles2_utils",
    "//skia",
    "//testing/gmock",
    "//testing/gtest",
    "//testing/perf",
    "//ui/gfx",
    "//ui/gfx/geometry",
    "//ui/gl",
  ]
}
