blob: 7c30bf8c7c468786595a4fcb8f20adea9a9d7659 [file] [log] [blame]
# Copyright 2016 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("//build/config/ozone.gni")
import("//mojo/public/tools/bindings/mojom.gni")
mojom("mojom") {
generate_java = true
sources = [
"accelerated_widget.mojom",
"buffer_types.mojom",
"ca_layer_params.mojom",
"color_space.mojom",
"delegated_ink_metadata.mojom",
"delegated_ink_point.mojom",
"delegated_ink_point_renderer.mojom",
"display_color_spaces.mojom",
"font_render_params.mojom",
"gpu_extra_info.mojom",
"gpu_fence_handle.mojom",
"hdr_metadata.mojom",
"hdr_static_metadata.mojom",
"mask_filter_info.mojom",
"overlay_priority_hint.mojom",
"overlay_transform.mojom",
"presentation_feedback.mojom",
"rrect_f.mojom",
"selection_bound.mojom",
"swap_result.mojom",
"swap_timings.mojom",
"transform.mojom",
]
public_deps = [
":native_handle_types",
"//mojo/public/mojom/base",
"//skia/public/mojom",
"//ui/gfx/geometry/mojom",
]
enabled_features = []
if (use_x11 || ozone_platform_x11) {
enabled_features += [ "enable_x11_params" ]
}
shared_cpp_typemaps = [
{
types = [
{
mojom = "gfx.mojom.BufferFormat"
cpp = "::gfx::BufferFormat"
},
{
mojom = "gfx.mojom.BufferUsage"
cpp = "::gfx::BufferUsage"
},
{
mojom = "gfx.mojom.BufferUsageAndFormat"
cpp = "::gfx::BufferUsageAndFormat"
},
{
mojom = "gfx.mojom.BufferPlane"
cpp = "::gfx::BufferPlane"
},
{
mojom = "gfx.mojom.GpuMemoryBufferHandle"
cpp = "::gfx::GpuMemoryBufferHandle"
move_only = true
nullable_is_same_type = true
},
{
mojom = "gfx.mojom.GpuMemoryBufferId"
cpp = "::gfx::GpuMemoryBufferId"
copyable_pass_by_value = true
},
{
mojom = "gfx.mojom.GpuMemoryBufferType"
cpp = "::gfx::GpuMemoryBufferType"
},
]
traits_headers = [ "buffer_types_mojom_traits.h" ]
traits_public_deps = [ ":shared_mojom_traits" ]
},
{
types = [
{
mojom = "gfx.mojom.ColorSpace"
cpp = "::gfx::ColorSpace"
},
]
traits_headers = [ "color_space_mojom_traits.h" ]
traits_public_deps = [ ":shared_mojom_traits" ]
},
{
types = [
{
mojom = "gfx.mojom.DisplayColorSpaces"
cpp = "::gfx::DisplayColorSpaces"
},
]
traits_headers = [ "display_color_spaces_mojom_traits.h" ]
traits_public_deps = [ ":shared_mojom_traits" ]
},
{
types = [
{
mojom = "gfx.mojom.GpuExtraInfo"
cpp = "::gfx::GpuExtraInfo"
},
{
mojom = "gfx.mojom.ANGLEFeature"
cpp = "::gfx::ANGLEFeature"
},
]
traits_headers = [ "gpu_extra_info_mojom_traits.h" ]
traits_public_deps = [ ":shared_mojom_traits" ]
},
{
types = [
{
mojom = "gfx.mojom.GpuFenceHandle"
cpp = "::gfx::GpuFenceHandle"
move_only = true
nullable_is_same_type = true
},
]
traits_headers = [ "gpu_fence_handle_mojom_traits.h" ]
traits_public_deps = [ ":shared_mojom_traits" ]
},
{
types = [
{
mojom = "gfx.mojom.HDRStaticMetadata"
cpp = "::gfx::HDRStaticMetadata"
},
]
traits_headers = [ "hdr_static_metadata_mojom_traits.h" ]
traits_public_deps = [ ":shared_mojom_traits" ]
},
{
types = [
{
mojom = "gfx.mojom.PresentationFeedback"
cpp = "::gfx::PresentationFeedback"
},
]
traits_headers = [ "presentation_feedback_mojom_traits.h" ]
traits_public_deps = [ "//ui/gfx" ]
},
{
types = [
{
mojom = "gfx.mojom.SelectionBound"
cpp = "::gfx::SelectionBound"
},
]
traits_headers = [ "selection_bound_mojom_traits.h" ]
traits_public_deps = [ "//ui/gfx/geometry/mojom:mojom_traits" ]
},
{
types = [
{
mojom = "gfx.mojom.SwapTimings"
cpp = "::gfx::SwapTimings"
},
]
traits_headers = [ "swap_timings_mojom_traits.h" ]
traits_public_deps = [ "//ui/gfx" ]
},
{
types = [
{
mojom = "gfx.mojom.Transform"
cpp = "::gfx::Transform"
},
]
traits_headers = [ "transform_mojom_traits.h" ]
traits_public_deps = [ "//ui/gfx" ]
},
]
cpp_typemaps = [
{
types = [
{
mojom = "gfx.mojom.AcceleratedWidget"
cpp = "::gfx::AcceleratedWidget"
copyable_pass_by_value = true
},
]
traits_headers = [ "accelerated_widget_mojom_traits.h" ]
traits_public_deps = [ "//ui/gfx" ]
},
{
types = [
{
mojom = "gfx.mojom.CALayerParams"
cpp = "::gfx::CALayerParams"
},
]
traits_sources = [ "ca_layer_params_mojom_traits.cc" ]
traits_headers = [ "ca_layer_params_mojom_traits.h" ]
traits_public_deps = [ "//ui/gfx" ]
},
{
types = [
{
mojom = "gfx.mojom.DelegatedInkMetadata"
cpp = "::std::unique_ptr<::gfx::DelegatedInkMetadata>"
move_only = true
nullable_is_same_type = true
},
]
traits_sources = [ "delegated_ink_metadata_mojom_traits.cc" ]
traits_headers = [ "delegated_ink_metadata_mojom_traits.h" ]
traits_public_deps = [ "//ui/gfx" ]
},
{
types = [
{
mojom = "gfx.mojom.DelegatedInkPoint"
cpp = "::gfx::DelegatedInkPoint"
},
]
traits_sources = [ "delegated_ink_point_mojom_traits.cc" ]
traits_headers = [ "delegated_ink_point_mojom_traits.h" ]
traits_public_deps = [ "//ui/gfx" ]
},
{
types = [
{
mojom = "gfx.mojom.ColorVolumeMetadata"
cpp = "::gfx::ColorVolumeMetadata"
},
{
mojom = "gfx.mojom.HDRMetadata"
cpp = "::gfx::HDRMetadata"
},
]
traits_headers = [ "hdr_metadata_mojom_traits.h" ]
traits_sources = [ "hdr_metadata_mojom_traits.cc" ]
traits_public_deps = [ "//ui/gfx" ]
},
{
types = [
{
mojom = "gfx.mojom.Hinting"
cpp = "::gfx::FontRenderParams::Hinting"
},
{
mojom = "gfx.mojom.SubpixelRendering"
cpp = "::gfx::FontRenderParams::SubpixelRendering"
},
]
traits_headers = [ "font_render_params_mojom_traits.h" ]
traits_public_deps = [ "//ui/gfx" ]
},
{
types = [
{
mojom = "gfx.mojom.OverlayTransform"
cpp = "::gfx::OverlayTransform"
},
]
traits_headers = [ "overlay_transform_mojom_traits.h" ]
traits_public_deps = [ "//ui/gfx" ]
},
{
types = [
{
mojom = "gfx.mojom.OverlayPriorityHint"
cpp = "::gfx::OverlayPriorityHint"
},
]
traits_headers = [ "overlay_priority_hint_mojom_traits.h" ]
traits_public_deps = [ "//ui/gfx" ]
},
{
types = [
{
mojom = "gfx.mojom.RRectF"
cpp = "::gfx::RRectF"
},
]
traits_headers = [ "rrect_f_mojom_traits.h" ]
traits_public_deps = [ "//ui/gfx/geometry/mojom:mojom_traits" ]
},
{
types = [
{
mojom = "gfx.mojom.SwapResult"
cpp = "::gfx::SwapResult"
},
]
traits_headers = [ "swap_result_mojom_traits.h" ]
traits_public_deps = [ "//ui/gfx" ]
},
{
types = [
{
mojom = "gfx.mojom.MaskFilterInfo"
cpp = "::gfx::MaskFilterInfo"
},
]
traits_sources = [ "mask_filter_info_mojom_traits.cc" ]
traits_headers = [ "mask_filter_info_mojom_traits.h" ]
traits_public_deps = [ "//ui/gfx" ]
},
]
cpp_typemaps += shared_cpp_typemaps
blink_cpp_typemaps = shared_cpp_typemaps
blink_cpp_typemaps += [
{
types = [
{
mojom = "gfx.mojom.DelegatedInkMetadata"
cpp = "::std::unique_ptr<::gfx::DelegatedInkMetadata>"
move_only = true
nullable_is_same_type = true
},
]
traits_headers = [ "delegated_ink_metadata_mojom_traits.h" ]
traits_public_deps = [ "//ui/gfx" ]
},
]
}
mojom("native_handle_types") {
sources = [ "native_handle_types.mojom" ]
if (is_linux || is_chromeos || use_ozone) {
enabled_features = [ "supports_native_pixmap" ]
}
public_deps = [ "//mojo/public/mojom/base" ]
generate_java = true
shared_cpp_typemap = {
types = [
{
mojom = "gfx.mojom.NativePixmapHandle"
cpp = "::gfx::NativePixmapHandle"
move_only = true
},
{
mojom = "gfx.mojom.NativePixmapPlane"
cpp = "::gfx::NativePixmapPlane"
move_only = true
},
]
traits_headers = [ "native_handle_types_mojom_traits.h" ]
traits_public_deps = [ ":native_handle_types_mojom_traits" ]
}
cpp_typemaps = [ shared_cpp_typemap ]
blink_cpp_typemaps = [ shared_cpp_typemap ]
}
mojom("test_interfaces") {
sources = [ "traits_test_service.mojom" ]
public_deps = [ ":mojom" ]
}
component("native_handle_types_mojom_traits") {
output_name = "gfx_native_types_shared_mojom_traits"
defines = [ "IS_GFX_NATIVE_HANDLE_TYPES_SHARED_MOJOM_TRAITS_IMPL" ]
sources = [
"native_handle_types_mojom_traits.cc",
"native_handle_types_mojom_traits.h",
]
public_deps = [
":native_handle_types_shared",
"//base",
"//mojo/public/mojom/base",
"//ui/gfx",
]
}
component("shared_mojom_traits") {
output_name = "gfx_shared_mojom_traits"
defines = [ "IS_GFX_SHARED_MOJOM_TRAITS_IMPL" ]
sources = [
"buffer_types_mojom_traits.cc",
"buffer_types_mojom_traits.h",
"color_space_mojom_traits.cc",
"color_space_mojom_traits.h",
"display_color_spaces_mojom_traits.cc",
"display_color_spaces_mojom_traits.h",
"gpu_extra_info_mojom_traits.cc",
"gpu_extra_info_mojom_traits.h",
"gpu_fence_handle_mojom_traits.cc",
"gpu_fence_handle_mojom_traits.h",
"hdr_static_metadata_mojom_traits.cc",
"hdr_static_metadata_mojom_traits.h",
]
public_deps = [
":mojom_shared",
":native_handle_types",
"//ui/gfx",
]
if (use_ozone) {
public_deps += [ "//ui/ozone:buildflags" ]
}
frameworks = [
"CoreFoundation.framework",
"IOSurface.framework",
]
}