blob: 61bb72a61831422395b9442b86ef5b2b2f3045e0 [file] [log] [blame]
# Copyright 2018 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("//mojo/public/tools/bindings/mojom.gni")
mojom_component("base") {
generate_java = true
sources = [
"application_state.mojom",
"big_buffer.mojom",
"big_string.mojom",
"binder.mojom",
"file.mojom",
"file_error.mojom",
"file_info.mojom",
"file_path.mojom",
"generic_pending_receiver.mojom",
"memory_allocator_dump_cross_process_uid.mojom",
"memory_pressure_level.mojom",
"message_pump_type.mojom",
"process_id.mojom",
"read_only_buffer.mojom",
"ref_counted_memory.mojom",
"shared_memory.mojom",
"string16.mojom",
"text_direction.mojom",
"thread_priority.mojom",
"time.mojom",
"token.mojom",
"unguessable_token.mojom",
"values.mojom",
]
if (is_win) {
sources += [ "logfont_win.mojom" ]
}
enabled_features = []
if (is_win) {
enabled_features += [ "file_path_is_string16" ]
} else {
enabled_features += [ "file_path_is_string" ]
}
output_prefix = "mojo_base_mojom"
macro_prefix = "MOJO_BASE_MOJOM"
common_typemaps = [
{
types = [
{
mojom = "mojo_base.mojom.BigBuffer"
cpp = "::mojo_base::BigBuffer"
move_only = true
},
]
traits_headers = [ "//mojo/public/cpp/base/big_buffer_mojom_traits.h" ]
traits_public_deps = [
"//mojo/public/cpp/base",
"//mojo/public/cpp/base:shared_typemap_traits",
]
},
{
types = [
{
mojom = "mojo_base.mojom.FileError"
cpp = "::base::File::Error"
},
]
traits_headers = [ "//mojo/public/cpp/base/file_error_mojom_traits.h" ]
traits_sources = [ "//mojo/public/cpp/base/file_error_mojom_traits.h" ]
traits_public_deps = [
":base_shared",
"//base",
]
},
{
types = [
{
mojom = "mojo_base.mojom.FileInfo"
cpp = "::base::File::Info"
},
]
traits_headers = [ "//mojo/public/cpp/base/file_info_mojom_traits.h" ]
traits_public_deps = [
"//base",
"//mojo/public/cpp/base",
"//mojo/public/cpp/base:shared_typemap_traits",
]
},
{
types = [
{
mojom = "mojo_base.mojom.FilePath"
cpp = "::base::FilePath"
},
]
traits_headers = [ "//mojo/public/cpp/base/file_path_mojom_traits.h" ]
traits_public_deps = [
"//base",
"//mojo/public/cpp/base",
"//mojo/public/cpp/base:shared_typemap_traits",
]
},
{
types = [
{
mojom = "mojo_base.mojom.File"
cpp = "::base::File"
move_only = true
nullable_is_same_type = true
},
]
traits_headers = [ "//mojo/public/cpp/base/file_mojom_traits.h" ]
traits_public_deps = [
"//base",
"//mojo/public/cpp/base",
"//mojo/public/cpp/base:shared_typemap_traits",
]
},
{
types = [
{
mojom = "mojo_base.mojom.GenericPendingReceiver"
cpp = "::mojo::GenericPendingReceiver"
move_only = true
nullable_is_same_type = true
},
]
traits_headers =
[ "//mojo/public/cpp/base/generic_pending_receiver_mojom_traits.h" ]
traits_public_deps = [
"//mojo/public/cpp/base:shared_typemap_traits",
"//mojo/public/cpp/bindings",
]
},
{
types = [
{
mojom = "mojo_base.mojom.ReadOnlyBuffer"
cpp = "::base::span<const ::uint8_t>"
copyable_pass_by_value = true
force_serialize = true
},
]
traits_headers =
[ "//mojo/public/cpp/base/read_only_buffer_mojom_traits.h" ]
traits_public_deps = [
"//base",
"//mojo/public/cpp/base:shared_typemap_traits",
]
},
{
types = [
{
mojom = "mojo_base.mojom.PlatformSharedMemoryHandle"
cpp =
"::base::subtle::PlatformSharedMemoryRegion::ScopedPlatformHandle"
move_only = true
},
{
mojom = "mojo_base.mojom.PlatformSharedMemoryRegion"
cpp = "::base::subtle::PlatformSharedMemoryRegion"
move_only = true
},
{
mojom = "mojo_base.mojom.ReadOnlySharedMemoryRegion"
cpp = "::base::ReadOnlySharedMemoryRegion"
move_only = true
nullable_is_same_type = true
},
{
mojom = "mojo_base.mojom.UnsafeSharedMemoryRegion"
cpp = "::base::UnsafeSharedMemoryRegion"
move_only = true
nullable_is_same_type = true
},
{
mojom = "mojo_base.mojom.WritableSharedMemoryRegion"
cpp = "::base::WritableSharedMemoryRegion"
move_only = true
nullable_is_same_type = true
},
]
traits_headers = [ "//mojo/public/cpp/base/shared_memory_mojom_traits.h" ]
traits_public_deps = [
"//base",
"//mojo/public/cpp/base:shared_typemap_traits",
]
},
{
types = [
{
mojom = "mojo_base.mojom.Time"
cpp = "::base::Time"
copyable_pass_by_value = true
},
{
mojom = "mojo_base.mojom.TimeDelta"
cpp = "::base::TimeDelta"
copyable_pass_by_value = true
},
{
mojom = "mojo_base.mojom.TimeTicks"
cpp = "::base::TimeTicks"
copyable_pass_by_value = true
},
]
traits_headers = [ "//mojo/public/cpp/base/time_mojom_traits.h" ]
traits_public_deps = [
"//base",
"//mojo/public/cpp/base:shared_typemap_traits",
]
},
{
types = [
{
mojom = "mojo_base.mojom.Token"
cpp = "::base::Token"
},
]
traits_headers = [ "//mojo/public/cpp/base/token_mojom_traits.h" ]
traits_public_deps = [
"//base",
"//mojo/public/cpp/base:shared_typemap_traits",
]
},
{
types = [
{
mojom = "mojo_base.mojom.UnguessableToken"
cpp = "::base::UnguessableToken"
},
]
traits_headers =
[ "//mojo/public/cpp/base/unguessable_token_mojom_traits.h" ]
traits_public_deps = [
"//base",
"//mojo/public/cpp/base:shared_typemap_traits",
]
},
{
types = [
{
mojom = "mojo_base.mojom.Value"
cpp = "::base::Value"
move_only = true
},
{
mojom = "mojo_base.mojom.ListValue"
cpp = "::base::Value"
move_only = true
},
{
mojom = "mojo_base.mojom.DictionaryValue"
cpp = "::base::Value"
move_only = true
},
]
traits_headers = [ "//mojo/public/cpp/base/values_mojom_traits.h" ]
traits_public_deps = [
"//base",
"//mojo/public/cpp/base:shared_typemap_traits",
]
},
{
types = [
{
mojom = "mojo_base.mojom.TextDirection"
cpp = "::base::i18n::TextDirection"
},
]
traits_headers =
[ "//mojo/public/cpp/base/text_direction_mojom_traits.h" ]
traits_public_deps = [
"//base:i18n",
"//mojo/public/cpp/base:typemap_traits",
]
},
]
cpp_typemaps = common_typemaps
cpp_typemaps += [
{
types = [
{
mojom = "mojo_base.mojom.BigString"
cpp = "::std::string"
},
]
traits_headers = [ "//mojo/public/cpp/base/big_string_mojom_traits.h" ]
traits_public_deps = [
"//mojo/public/cpp/base",
"//mojo/public/cpp/base:typemap_traits",
]
},
{
types = [
{
mojom = "mojom_base.mojom.MemoryAllocatorDumpCrossProcessUid"
cpp = "::base::trace_event::MemoryAllocatorDumpGuid"
},
]
traits_headers = [ "//mojo/public/cpp/base/memory_allocator_dump_cross_process_uid_mojom_traits.h" ]
traits_public_deps = [
"//base",
"//mojo/public/cpp/base:typemap_traits",
]
},
{
types = [
{
mojom = "mojo_base.mojom.MemoryPressureLevel"
cpp = "::base::MemoryPressureListener::MemoryPressureLevel"
},
]
traits_headers =
[ "//mojo/public/cpp/base/memory_pressure_level_mojom_traits.h" ]
traits_public_deps = [
"//base",
"//mojo/public/cpp/base:typemap_traits",
]
},
{
types = [
{
mojom = "mojo_base.mojom.MessagePumpType"
cpp = "::base::MessagePumpType"
},
]
traits_headers =
[ "//mojo/public/cpp/base/message_pump_type_mojom_traits.h" ]
traits_public_deps = [
"//base",
"//mojo/public/cpp/base:typemap_traits",
]
},
{
types = [
{
mojom = "mojo_base.mojom.RefCountedMemory"
cpp = "::scoped_refptr<::base::RefCountedMemory>"
copyable_pass_by_value = true
nullable_is_same_type = true
},
]
traits_headers =
[ "//mojo/public/cpp/base/ref_counted_memory_mojom_traits.h" ]
traits_public_deps = [
"//base",
"//mojo/public/cpp/base:typemap_traits",
]
},
{
types = [
{
mojom = "mojo_base.mojom.ProcessId"
cpp = "::base::ProcessId"
copyable_pass_by_value = true
},
]
traits_headers = [ "//mojo/public/cpp/base/process_id_mojom_traits.h" ]
traits_public_deps = [
"//base",
"//mojo/public/cpp/base:typemap_traits",
]
},
{
types = [
{
mojom = "mojo_base.mojom.String16"
cpp = "::base::string16"
},
{
mojom = "mojo_base.mojom.BigString16"
cpp = "::base::string16"
},
]
traits_headers = [ "//mojo/public/cpp/base/string16_mojom_traits.h" ]
traits_public_deps = [
"//base",
"//mojo/public/cpp/base:typemap_traits",
]
},
{
types = [
{
mojom = "mojo_base.mojom.ThreadPriority"
cpp = "::base::ThreadPriority"
},
]
traits_headers =
[ "//mojo/public/cpp/base/thread_priority_mojom_traits.h" ]
traits_public_deps = [
"//base",
"//mojo/public/cpp/base:typemap_traits",
]
},
]
if (is_android) {
cpp_typemaps += [
{
types = [
{
mojom = "mojo_base.mojom.ApplicationState"
cpp = "::base::android::ApplicationState"
},
]
traits_headers =
[ "//mojo/public/cpp/base/application_state_mojom_traits.h" ]
traits_public_deps = [
"//base",
"//mojo/public/cpp/base:typemap_traits",
]
},
]
}
if (is_win) {
cpp_typemaps += [
{
types = [
{
mojom = "mojo_base.mojom.LOGFONT"
cpp = "::LOGFONT"
},
]
traits_headers = [
"//base/win/windows_full.h",
"//mojo/public/cpp/base/logfont_win_mojom_traits.h",
]
traits_public_deps = [
"//base",
"//mojo/public/cpp/base:typemap_traits",
]
},
]
}
blink_cpp_typemaps = common_typemaps
blink_cpp_typemaps += [
{
types = [
{
mojom = "mojo_base.mojom.BigString"
cpp = "::WTF::String"
nullable_is_same_type = true
},
]
traits_headers = [
"//third_party/blink/renderer/platform/mojo/big_string_mojom_traits.h",
"//third_party/blink/renderer/platform/wtf/text/wtf_string.h",
]
traits_public_deps = [ "//mojo/public/cpp/base" ]
},
{
types = [
{
mojom = "mojo_base.mojom.BigString16"
cpp = "::WTF::String"
nullable_is_same_type = true
force_serialize = true
},
{
mojom = "mojo_base.mojom.String16"
cpp = "::WTF::String"
nullable_is_same_type = true
force_serialize = true
},
]
traits_headers = [
"//third_party/blink/renderer/platform/mojo/string16_mojom_traits.h",
]
},
]
}