diff --git a/.gitignore b/.gitignore index 1819e6c63..80193fd7c 100644 --- a/.gitignore +++ b/.gitignore @@ -43,6 +43,7 @@ /third_party/colorama/src /third_party/depot_tools /third_party/EGL-Registry/src +/third_party/flatbuffers/src /third_party/fuchsia-sdk /third_party/gles1_conform /third_party/glmark2/src diff --git a/DEPS b/DEPS index 89e7cd0ec..465f8e93d 100644 --- a/DEPS +++ b/DEPS @@ -43,7 +43,7 @@ vars = { 'checkout_angle_mesa': False, # Version of Chromium our Chromium-based DEPS are mirrored from. - 'chromium_revision': 'c8d10c0b09aba42a2849e283bfea79db014d2ac5', + 'chromium_revision': '2c98c5af6539d7ffc10fbe83d3e76216b7e01186', # We never want to checkout chromium, # but need a dummy DEPS entry for the autoroller 'dummy_checkout_chromium': False, @@ -88,16 +88,16 @@ vars = { # Three lines of non-changing comments so that # the commit queue can handle CLs rolling catapult # and whatever else without interference from each other. - 'catapult_revision': 'b049f00cff9843f42aa34303111616424071e543', + 'catapult_revision': '3ffa6b222803f54188a7b249383b2f092a24d19a', # the commit queue can handle CLs rolling Fuchsia sdk # and whatever else without interference from each other. - 'fuchsia_version': 'version:10.20221018.0.1', + 'fuchsia_version': 'version:10.20221102.0.1', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling luci-go # and whatever else without interference from each other. - 'luci_go': 'git_revision:0b4ca85948120a9e07c81e06386c031a693724c4', + 'luci_go': 'git_revision:765f51c332c38e9b8d7981f23640b9df59371cd5', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling android_sdk_build-tools_version @@ -136,12 +136,12 @@ vars = { deps = { 'build': { - 'url': '{chromium_git}/chromium/src/build.git@ef3d15e613dbaa597dfb82566160513bbce2cec4', + 'url': '{chromium_git}/chromium/src/build.git@f75f7c95033fa5ec091da6e6c29af8f2b6b69b68', 'condition': 'not build_with_chromium', }, 'buildtools': { - 'url': '{chromium_git}/chromium/src/buildtools.git@5c1eeb871551d70bae66ef920055327b4f9b66f4', + 'url': '{chromium_git}/chromium/src/buildtools.git@33b52eafd539278600d34cd9ba23550d28c933d2', 'condition': 'not build_with_chromium', }, @@ -154,7 +154,7 @@ deps = { 'packages': [ { 'package': 'gn/gn/linux-${{arch}}', - 'version': 'git_revision:57c352b2b03461c24b19c678c61d7aeacc6981f4', + 'version': 'git_revision:a4d67be044b42963de801001e7146f9657c7fad4', } ], 'dep_type': 'cipd', @@ -165,7 +165,7 @@ deps = { 'packages': [ { 'package': 'gn/gn/mac-${{arch}}', - 'version': 'git_revision:57c352b2b03461c24b19c678c61d7aeacc6981f4', + 'version': 'git_revision:a4d67be044b42963de801001e7146f9657c7fad4', } ], 'dep_type': 'cipd', @@ -173,17 +173,17 @@ deps = { }, 'buildtools/third_party/libc++/trunk': { - 'url': '{chromium_git}/external/github.com/llvm/llvm-project/libcxx.git@888eff8ec2bc534f13d17254089d93f73220d81f', + 'url': '{chromium_git}/external/github.com/llvm/llvm-project/libcxx.git@fc6bbc5eb039769b5ed2de84444a3c6f9b45a598', 'condition': 'not build_with_chromium', }, 'buildtools/third_party/libc++abi/trunk': { - 'url': '{chromium_git}/external/github.com/llvm/llvm-project/libcxxabi.git@685c4ad257da543bdf9e3a391c28b3e4ac1f8aac', + 'url': '{chromium_git}/external/github.com/llvm/llvm-project/libcxxabi.git@8dd405113a4f3694e910b79785dd7fb7535a888a', 'condition': 'not build_with_chromium', }, 'buildtools/third_party/libunwind/trunk': { - 'url': '{chromium_git}/external/github.com/llvm/llvm-project/libunwind.git@1f633d41a035b91bbff4cb02f7f549a856dee6fa', + 'url': '{chromium_git}/external/github.com/llvm/llvm-project/libunwind.git@aabcd8753678f1536e15eb6385a948470debdae4', 'condition': 'not build_with_chromium', }, @@ -191,7 +191,7 @@ deps = { 'packages': [ { 'package': 'gn/gn/windows-amd64', - 'version': 'git_revision:57c352b2b03461c24b19c678c61d7aeacc6981f4', + 'version': 'git_revision:a4d67be044b42963de801001e7146f9657c7fad4', } ], 'dep_type': 'cipd', @@ -199,17 +199,17 @@ deps = { }, 'testing': { - 'url': '{chromium_git}/chromium/src/testing@50f814ce031770ded2eb9a9e80d0f1101adcb3ca', + 'url': '{chromium_git}/chromium/src/testing@1a1a839b38ea3631ff248ec01d90fccadc9b948e', 'condition': 'not build_with_chromium', }, 'third_party/abseil-cpp': { - 'url': '{chromium_git}/chromium/src/third_party/abseil-cpp@3027824279196af3649130aacd8a349dae31c1a0', + 'url': '{chromium_git}/chromium/src/third_party/abseil-cpp@8fb5a04597f3e8a396a818deb788f7a911d2ce69', 'condition': 'not build_with_chromium', }, 'third_party/android_build_tools': { - 'url': '{chromium_git}/chromium/src/third_party/android_build_tools@4f07dd5cca809fc897a85fa5aa69ba0793febf37', + 'url': '{chromium_git}/chromium/src/third_party/android_build_tools@216373bd26306c30254dd101f5294b99a3f20750', 'condition': 'checkout_android and not build_with_chromium', }, @@ -239,7 +239,7 @@ deps = { 'packages': [ { 'package': 'chromium/third_party/android_build_tools/bundletool', - 'version': 'sSBNyeRs5Px7nKXDLyQpz24T_OV9_rUkzqgXRNEaH0kC', + 'version': 'JUxLsQLBkNG0ylmbHz6FGBtYyK1PNDZ04pMCii90Bd4C', }, ], 'condition': 'checkout_android and not build_with_chromium', @@ -250,7 +250,7 @@ deps = { 'packages': [ { 'package': 'chromium/third_party/android_build_tools/lint', - 'version': 'PgXTfxO_ExRhHwuAVaMUh48zDVj5bqVPSjecGWZ8TQIC', + 'version': 'oJIo5mCU1gyxTf-EnMPZXg_GG2-3YOE_xUWXtmwO96IC', }, ], 'condition': 'checkout_android and not build_with_chromium', @@ -261,7 +261,7 @@ deps = { 'packages': [ { 'package': 'chromium/third_party/android_build_tools/manifest_merger', - 'version': 'lgqr-qkYSNJxPdYaRg1beYU6to-4LBuHBw3WVO7_ancC', + 'version': 'xd-wXGBtd-G1FJXc_owo3j_wxWs4YxgOfQ-tKWHwN5AC', }, ], 'condition': 'checkout_android and not build_with_chromium', @@ -269,7 +269,7 @@ deps = { }, 'third_party/android_deps': { - 'url': '{chromium_git}/chromium/src/third_party/android_deps@94f116919220300aa64bce9d5bda8458ee2929d3', + 'url': '{chromium_git}/chromium/src/third_party/android_deps@e8b385d860c19bd4809070aca25ecd83f98ce215', 'condition': 'checkout_android and not build_with_chromium', }, @@ -372,7 +372,7 @@ deps = { }, 'third_party/depot_tools': { - 'url': '{chromium_git}/chromium/tools/depot_tools.git@64b61755572b1d03b3a43f1a29b617dcae3a3fe0', + 'url': '{chromium_git}/chromium/tools/depot_tools.git@1adbbff2c0a0df872cce7adb9e86bbaa68444028', 'condition': 'not build_with_chromium', }, @@ -388,6 +388,11 @@ deps = { 'condition': 'not build_with_chromium', }, + 'third_party/flatbuffers/src': { + 'url': '{chromium_git}/external/github.com/google/flatbuffers.git@e3017029647a88eb6f509ee9744012fffeb0d371', + 'condition': 'checkout_android and not build_with_chromium', + }, + 'third_party/fuchsia-sdk/sdk': { 'packages': [ { @@ -460,7 +465,7 @@ deps = { }, 'third_party/jinja2': { - 'url': '{chromium_git}/chromium/src/third_party/jinja2@ee69aa00ee8536f61db6a451f3858745cf587de6', + 'url': '{chromium_git}/chromium/src/third_party/jinja2@4633bf431193690c3491244f5a0acbe9ac776233', 'condition': 'checkout_android and not build_with_chromium', }, @@ -470,7 +475,7 @@ deps = { }, 'third_party/markupsafe': { - 'url': '{chromium_git}/chromium/src/third_party/markupsafe@1b882ef6372b58bfd55a3285f37ed801be9137cd', + 'url': '{chromium_git}/chromium/src/third_party/markupsafe@13f4e8c9e206567eeb13bf585406ddc574005748', 'condition': 'checkout_android and not build_with_chromium', }, @@ -487,7 +492,7 @@ deps = { }, 'third_party/nasm': { - 'url': '{chromium_git}/chromium/deps/nasm.git@5fd9246276814b5ebb7e56b821cedeecab9b674d', + 'url': '{chromium_git}/chromium/deps/nasm.git@fc8e0bd892ae133602f5a6f7a9a6840aa1b75989', 'condition': 'not build_with_chromium', }, @@ -534,7 +539,7 @@ deps = { }, 'third_party/Python-Markdown': { - 'url': '{chromium_git}/chromium/src/third_party/Python-Markdown@872ba9e68a6c698ede103b32265c265c026b8fee', + 'url': '{chromium_git}/chromium/src/third_party/Python-Markdown@4838827d1231be5903916ca442180ccbde1e1cf9', 'condition': 'not build_with_chromium', }, @@ -578,7 +583,7 @@ deps = { 'packages': [ { 'package': 'chromium/third_party/r8', - 'version': '9PJITrOEIl2U8mvr44d5e9XjOdvzRPuF774VA3jWOsYC', + 'version': 'qGtBu6TtxyR5XNy4cmsslb7c946YtkZF5_QCjVP-wc8C', }, ], 'condition': 'checkout_android and not build_with_chromium', @@ -608,7 +613,7 @@ deps = { 'packages': [ { 'package': 'chromium/third_party/turbine', - 'version': 'rrpgWQ-uylo8c5IPgUVP464LwcVOmt29MqwsR59O_zkC', + 'version': 'HqLybI_r3dCgRJywsqJ3xkp2D6vQAI4-8D7zdqNiyxcC', }, ], 'condition': 'checkout_android and not build_with_chromium', @@ -635,7 +640,7 @@ deps = { }, 'third_party/zlib': { - 'url': '{chromium_git}/chromium/src/third_party/zlib@d689fca54d7b43154f7cf77f785d19f2628fa133', + 'url': '{chromium_git}/chromium/src/third_party/zlib@cff720848d7ddad191354f153f7acbb43af09b74', 'condition': 'not build_with_chromium', }, @@ -645,7 +650,7 @@ deps = { }, 'tools/clang': { - 'url': '{chromium_git}/chromium/src/tools/clang.git@2619cde247bf037c2afa19b0913cccddac12ccbd', + 'url': '{chromium_git}/chromium/src/tools/clang.git@b147cbb71c13c6fec5da3d91b99f3a408c5eb07c', 'condition': 'not build_with_chromium', }, @@ -676,22 +681,22 @@ deps = { }, 'tools/mb': { - 'url': '{chromium_git}/chromium/src/tools/mb@cac69ccc9036fe012b06e502f7a939517ebb125a', + 'url': '{chromium_git}/chromium/src/tools/mb@88b57677799a460a75263d5bc9d54688501da466', 'condition': 'not build_with_chromium', }, 'tools/md_browser': { - 'url': '{chromium_git}/chromium/src/tools/md_browser@7ff27244f2bd5b950ed6a25495766eccdcfca6eb', + 'url': '{chromium_git}/chromium/src/tools/md_browser@de79b55b74901acef7fe9f9e5832210ebd0ce8b1', 'condition': 'not build_with_chromium', }, 'tools/memory': { - 'url': '{chromium_git}/chromium/src/tools/memory@98140a69489b05f65f7a4649b9949e074fc2da8a', + 'url': '{chromium_git}/chromium/src/tools/memory@8581381d92045707a699f1fc14525cac75a802e0', 'condition': 'not build_with_chromium', }, 'tools/perf': { - 'url': '{chromium_git}/chromium/src/tools/perf@7ab82e1fdc13012f8bb8dab688ad94204556371d', + 'url': '{chromium_git}/chromium/src/tools/perf@fe7aa52821972e7e56e6c1fd79e5016b6b867d3f', 'condition': 'not build_with_chromium', }, @@ -709,7 +714,7 @@ deps = { 'packages': [ { 'package': 'skia/tools/goldctl/linux-amd64', - 'version': 't3TPrZYHYFYj-Uycz4891UuvI29G25cnOuAXx4YKTJEC', + 'version': '96rKSNFMICaC-zy3dzFRxE3xkMm8mIPbR6pxbfHXZysC', }, ], 'dep_type': 'cipd', @@ -720,7 +725,7 @@ deps = { 'packages': [ { 'package': 'skia/tools/goldctl/windows-amd64', - 'version': '-y4QQFDzRbkTKhmiP7CqEhagCHKtWFdfxwAK6anUvfAC', + 'version': 'IffTHOl24SBx-1fnxVM5kaNaOA8mS_3urxANjmbsZWUC', }, ], 'dep_type': 'cipd', @@ -731,7 +736,7 @@ deps = { 'packages': [ { 'package': 'skia/tools/goldctl/mac-amd64', - 'version': 'pkodJRDmOHJK-oKhKr3YyRBH-aZDOifqq2f39tyYYkwC', + 'version': 'BTXwaBdnwpgPkzCAT5gTk0xV0_vzeR2q_icN_le7NBIC', }, ], 'dep_type': 'cipd', @@ -742,7 +747,7 @@ deps = { 'packages': [ { 'package': 'skia/tools/goldctl/mac-arm64', - 'version': 'MGH9P0-cwU4UFOV-4rkxKLBFEVtXIE8vtynMsKM4O4UC', + 'version': 'r0TJJDCO6SDuVGZoUBvAzDe7hACLXwX3fWH6tvNkYAAC', }, ], 'dep_type': 'cipd', @@ -3598,17 +3603,6 @@ deps = { 'dep_type': 'cipd', }, - 'third_party/android_deps/libs/com_google_flatbuffers_flatbuffers_java': { - 'packages': [ - { - 'package': 'chromium/third_party/android_deps/libs/com_google_flatbuffers_flatbuffers_java', - 'version': 'version:2@2.0.3.cr1', - }, - ], - 'condition': 'checkout_android and not build_with_chromium', - 'dep_type': 'cipd', - }, - 'third_party/android_deps/libs/com_google_googlejavaformat_google_java_format': { 'packages': [ { diff --git a/build_overrides/build.gni b/build_overrides/build.gni index d97d8f505..0a7128a18 100644 --- a/build_overrides/build.gni +++ b/build_overrides/build.gni @@ -32,3 +32,6 @@ enable_java_templates = true # Build with fewer Android dependencies limit_android_deps = true + +# Use C++17 instead of C++20 in MSVC builds +msvc_use_cxx17 = true diff --git a/scripts/code_generation_hashes/Test_spec_JSON.json b/scripts/code_generation_hashes/Test_spec_JSON.json index b70a21f00..203e20e89 100644 --- a/scripts/code_generation_hashes/Test_spec_JSON.json +++ b/scripts/code_generation_hashes/Test_spec_JSON.json @@ -16,5 +16,5 @@ "testing/buildbot/generate_buildbot_json.py": "3d6b529f4d5624e7bff882aa3be64c92", "testing/buildbot/mixins.pyl": - "73a6755d6bd3326c3d6c7f9163489966" + "79863da3f552bd81ad49c49d6bf8182c" } \ No newline at end of file diff --git a/scripts/roll_chromium_deps.py b/scripts/roll_chromium_deps.py index 6f229d776..e8e4ce6bc 100755 --- a/scripts/roll_chromium_deps.py +++ b/scripts/roll_chromium_deps.py @@ -59,7 +59,6 @@ ANGLE_CHROMIUM_DEPS = [ 'third_party/catapult', 'third_party/colorama/src', 'third_party/depot_tools', - 'third_party/flatbuffers', 'third_party/flatbuffers/src', 'third_party/fuchsia-sdk/sdk', 'third_party/ijar', diff --git a/third_party/flatbuffers/BUILD.gn b/third_party/flatbuffers/BUILD.gn new file mode 100644 index 000000000..53f540707 --- /dev/null +++ b/third_party/flatbuffers/BUILD.gn @@ -0,0 +1,239 @@ +# Copyright 2016 The Chromium Authors +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. + +import("//testing/test.gni") +import("//third_party/flatbuffers/flatbuffer.gni") + +config("flatbuffers_config") { + include_dirs = [ "src/include" ] + + # Required to prevent static initialization of locale + # in util.cpp + defines = [ "FLATBUFFERS_LOCALE_INDEPENDENT=0" ] +} + +# The part of FlatBuffers that Chrome is interested in. +source_set("flatbuffers") { + public = [ + "src/include/flatbuffers/base.h", + "src/include/flatbuffers/flatbuffers.h", + "src/include/flatbuffers/stl_emulation.h", + + # Required for tflite. + "src/include/flatbuffers/flexbuffers.h", + "src/include/flatbuffers/util.h", + ] + + if (is_win) { + data_deps = [ "//build/win:runtime_libs" ] + } + + configs -= [ "//build/config/compiler:chromium_code" ] + configs += [ "//build/config/compiler:no_chromium_code" ] + + public_configs = [ ":flatbuffers_config" ] +} + +# The complete FlatBuffers library, as required to build the flatc compiler and +# some of the tests. +source_set("compiler_files") { + include_dirs = [ "src/grpc" ] + sources = [ + "src/grpc/src/compiler/cpp_generator.cc", + "src/grpc/src/compiler/cpp_generator.h", + "src/grpc/src/compiler/go_generator.cc", + "src/grpc/src/compiler/go_generator.h", + "src/grpc/src/compiler/java_generator.cc", + "src/grpc/src/compiler/java_generator.h", + "src/grpc/src/compiler/python_generator.cc", + "src/grpc/src/compiler/python_generator.h", + "src/grpc/src/compiler/schema_interface.h", + "src/grpc/src/compiler/swift_generator.cc", + "src/grpc/src/compiler/swift_generator.h", + "src/grpc/src/compiler/ts_generator.cc", + "src/grpc/src/compiler/ts_generator.h", + "src/include/flatbuffers/bfbs_generator.h", + "src/include/flatbuffers/code_generators.h", + "src/include/flatbuffers/flatc.h", + "src/include/flatbuffers/grpc.h", + "src/include/flatbuffers/hash.h", + "src/include/flatbuffers/idl.h", + "src/include/flatbuffers/minireflect.h", + "src/include/flatbuffers/reflection.h", + "src/include/flatbuffers/reflection_generated.h", + "src/include/flatbuffers/registry.h", + "src/src/annotated_binary_text_gen.cpp", + "src/src/annotated_binary_text_gen.h", + "src/src/bfbs_gen.h", + "src/src/bfbs_gen_lua.cpp", + "src/src/bfbs_gen_lua.h", + "src/src/binary_annotator.cpp", + "src/src/binary_annotator.h", + "src/src/code_generators.cpp", + "src/src/flatc.cpp", + "src/src/idl_gen_cpp.cpp", + "src/src/idl_gen_csharp.cpp", + "src/src/idl_gen_dart.cpp", + "src/src/idl_gen_fbs.cpp", + "src/src/idl_gen_go.cpp", + "src/src/idl_gen_grpc.cpp", + "src/src/idl_gen_java.cpp", + "src/src/idl_gen_json_schema.cpp", + "src/src/idl_gen_kotlin.cpp", + "src/src/idl_gen_lobster.cpp", + "src/src/idl_gen_lua.cpp", + "src/src/idl_gen_php.cpp", + "src/src/idl_gen_python.cpp", + "src/src/idl_gen_rust.cpp", + "src/src/idl_gen_swift.cpp", + "src/src/idl_gen_text.cpp", + "src/src/idl_gen_ts.cpp", + "src/src/idl_parser.cpp", + "src/src/reflection.cpp", + "src/src/util.cpp", + ] + configs -= [ "//build/config/compiler:chromium_code" ] + configs += [ "//build/config/compiler:no_chromium_code" ] + visibility = [ ":*" ] + deps = [ ":flatbuffers" ] +} + +executable("flatc") { + sources = [ "src/src/flatc_main.cpp" ] + deps = [ + ":compiler_files", + ":flatbuffers", + ] +} + +# The following is just for testing. + +flatbuffer("flatbuffers_samplebuffer") { + testonly = true + sources = [ + "src/tests/alignment_test.fbs", + "src/tests/arrays_test.fbs", + "src/tests/include_test/include_test1.fbs", + "src/tests/include_test/sub/include_test2.fbs", + "src/tests/monster_extra.fbs", + "src/tests/monster_test.fbs", + "src/tests/namespace_test/namespace_test1.fbs", + "src/tests/namespace_test/namespace_test2.fbs", + "src/tests/native_inline_table_test.fbs", + "src/tests/native_type_test.fbs", + "src/tests/optional_scalars.fbs", + ] + flatc_include_dirs = [ "src/tests/include_test" ] +} + +# This combines sources, "flatbuffers" and "flatbuffers_test", specified in the +# public github repo required to build the unittests. This must be separate +# from ":compiler_files". +source_set("flatbuffers_test_files") { + include_dirs = [ "src/grpc" ] + sources = [ + "src/include/flatbuffers/base.h", + "src/include/flatbuffers/code_generators.h", + "src/include/flatbuffers/flatbuffers.h", + "src/include/flatbuffers/flexbuffers.h", + "src/include/flatbuffers/grpc.h", + "src/include/flatbuffers/hash.h", + "src/include/flatbuffers/idl.h", + "src/include/flatbuffers/minireflect.h", + "src/include/flatbuffers/reflection.h", + "src/include/flatbuffers/reflection_generated.h", + "src/include/flatbuffers/registry.h", + "src/include/flatbuffers/stl_emulation.h", + "src/include/flatbuffers/util.h", + "src/src/code_generators.cpp", + "src/src/idl_gen_fbs.cpp", + "src/src/idl_gen_text.cpp", + "src/src/idl_parser.cpp", + "src/src/reflection.cpp", + "src/src/util.cpp", + ] + + configs -= [ "//build/config/compiler:chromium_code" ] + configs += [ "//build/config/compiler:no_chromium_code" ] + deps = [ ":flatbuffers" ] +} + +test("flatbuffers_unittests") { + sources = [ + "src/tests/alignment_test.cpp", + "src/tests/alignment_test.h", + "src/tests/evolution_test.cpp", + "src/tests/flexbuffers_test.cpp", + "src/tests/fuzz_test.cpp", + "src/tests/json_test.cpp", + "src/tests/monster_test.cpp", + "src/tests/native_type_test_impl.cpp", + "src/tests/optional_scalars_test.cpp", + "src/tests/parser_test.cpp", + "src/tests/proto_test.cpp", + "src/tests/reflection_test.cpp", + "src/tests/test.cpp", + "src/tests/test_assert.cpp", + "src/tests/test_builder.cpp", + "src/tests/util_test.cpp", + ] + deps = [ + ":flatbuffers", + ":flatbuffers_samplebuffer", + ":flatbuffers_test_files", + ] + data = [ + "src/tests/", + + "//testing/scripts/run_flatbuffers_unittests.py", + ] + + data_deps = [ "//testing:test_scripts_shared" ] + + defines = [ + "FLATBUFFERS_TRACK_VERIFIER_BUFFER_SIZE", + + # Careful, this test suite needs to be run in the actual out/ + # directory. + "FLATBUFFERS_TEST_PATH_PREFIX=" + + rebase_path("//third_party/flatbuffers/src/", root_build_dir), + ] + configs -= [ "//build/config/compiler:chromium_code" ] + configs += [ "//build/config/compiler:no_chromium_code" ] + libs = [ "log" ] +} + +if (is_android) { + import("//build/config/android/rules.gni") + + android_library("flatbuffers_java") { + chromium_code = false + sources = [ + "src/java/src/main/java/com/google/flatbuffers/ArrayReadWriteBuf.java", + "src/java/src/main/java/com/google/flatbuffers/BaseVector.java", + "src/java/src/main/java/com/google/flatbuffers/BooleanVector.java", + "src/java/src/main/java/com/google/flatbuffers/ByteBufferReadWriteBuf.java", + "src/java/src/main/java/com/google/flatbuffers/ByteBufferUtil.java", + "src/java/src/main/java/com/google/flatbuffers/ByteVector.java", + "src/java/src/main/java/com/google/flatbuffers/Constants.java", + "src/java/src/main/java/com/google/flatbuffers/DoubleVector.java", + "src/java/src/main/java/com/google/flatbuffers/FlatBufferBuilder.java", + "src/java/src/main/java/com/google/flatbuffers/FlexBuffers.java", + "src/java/src/main/java/com/google/flatbuffers/FlexBuffersBuilder.java", + "src/java/src/main/java/com/google/flatbuffers/FloatVector.java", + "src/java/src/main/java/com/google/flatbuffers/IntVector.java", + "src/java/src/main/java/com/google/flatbuffers/LongVector.java", + "src/java/src/main/java/com/google/flatbuffers/ReadBuf.java", + "src/java/src/main/java/com/google/flatbuffers/ReadWriteBuf.java", + "src/java/src/main/java/com/google/flatbuffers/ShortVector.java", + "src/java/src/main/java/com/google/flatbuffers/StringVector.java", + "src/java/src/main/java/com/google/flatbuffers/Struct.java", + "src/java/src/main/java/com/google/flatbuffers/Table.java", + "src/java/src/main/java/com/google/flatbuffers/UnionVector.java", + "src/java/src/main/java/com/google/flatbuffers/Utf8.java", + "src/java/src/main/java/com/google/flatbuffers/Utf8Old.java", + "src/java/src/main/java/com/google/flatbuffers/Utf8Safe.java", + ] + } +} diff --git a/third_party/flatbuffers/DIR_METADATA b/third_party/flatbuffers/DIR_METADATA new file mode 100644 index 000000000..637eb4dc7 --- /dev/null +++ b/third_party/flatbuffers/DIR_METADATA @@ -0,0 +1,3 @@ +monorail { + component: "Platform>Extensions>API" +} diff --git a/third_party/flatbuffers/LICENSE b/third_party/flatbuffers/LICENSE new file mode 100644 index 000000000..a4c5efd82 --- /dev/null +++ b/third_party/flatbuffers/LICENSE @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright 2014 Google Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/third_party/flatbuffers/OWNERS b/third_party/flatbuffers/OWNERS new file mode 100644 index 000000000..94966f0a5 --- /dev/null +++ b/third_party/flatbuffers/OWNERS @@ -0,0 +1,3 @@ +battre@chromium.org +csharrison@chromium.org +engedy@chromium.org diff --git a/third_party/flatbuffers/README.chromium b/third_party/flatbuffers/README.chromium new file mode 100644 index 000000000..4bfe164c4 --- /dev/null +++ b/third_party/flatbuffers/README.chromium @@ -0,0 +1,14 @@ +Name: FlatBuffers +Short Name: flatbuffers +URL: https://github.com/google/flatbuffers +Version: e3017029647a88eb6f509ee9744012fffeb0d371 +Date: 2022-10-21 +License: Apache 2.0 +License File: LICENSE +Security Critical: yes + +Description: +FlatBuffers is an efficient cross platform serialization library for games and +other memory constrained apps. It allows you to directly access serialized data +without unpacking/parsing it first, while still having great forwards/backwards +compatibility. diff --git a/third_party/flatbuffers/flatbuffer.gni b/third_party/flatbuffers/flatbuffer.gni new file mode 100644 index 000000000..ad1440040 --- /dev/null +++ b/third_party/flatbuffers/flatbuffer.gni @@ -0,0 +1,150 @@ +# Copyright 2016 The Chromium Authors +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. + +# Compile a flatbuffer. +# +# flatc_out_dir (optional) +# Specifies the path suffix that output files are generated under. This +# path will be appended to root_gen_dir. +# +# Targets that depend on the flatbuffer target will be able to include +# the resulting FlatBuffers header with an include like: +# #include "dir/for/my_flatbuffer/buffer_generated.h" +# If undefined, this defaults to matchign the input directory for each +# .fbs file (you should almost always use the default mode). +# +# flatc_include_dirs (optional) +# Specifies the directories which FlatBuffers compiler uses to find +# included .fbs files in. Almost always should be empty. +# +# The list always has an implicit first item corresponding to the root of +# the source tree. This enables including .fbs files by absolute path. +# +# The compiler will try the directories in the order given, and if all +# fail it will try to load relative to the directory of the schema file +# being parsed. +# +# mutable (optional) +# Boolean to compile flatbuffers with the "--gen-mutable" argument, which +# generates non-const accessors for mutating FlatBuffers in-place. +# +# deps (optional) +# Additional dependencies. +# +# Parameters for compiling the generated code: +# +# defines (optional) +# Defines to supply to the source set that compiles the generated source +# code. +# +# extra_configs (optional) +# A list of config labels that will be appended to the configs applying +# to the source set. +# +# testonly (optional) +# Boolean to indicate whether the generated source sets should be labeled +# as testonly. +# +# Example: +# flatbuffer("mylib") { +# sources = [ +# "foo.fbs", +# ] +# } + +import("//build/compiled_action.gni") + +template("flatbuffer") { + assert(defined(invoker.sources), "Need sources for flatbuffers_library") + + action_name = "${target_name}_gen" + source_set_name = target_name + compiled_action_foreach(action_name) { + visibility = [ ":$source_set_name" ] + + tool = "//third_party/flatbuffers:flatc" + + sources = invoker.sources + deps = [] + + if (defined(invoker.flatc_out_dir)) { + out_dir = "$root_gen_dir/" + invoker.flatc_out_dir + } else { + out_dir = "{{source_gen_dir}}" + } + + outputs = [ "$out_dir/{{source_name_part}}_generated.h" ] + + args = [ + "-c", + "--keep-prefix", + "-o", + "$out_dir", + "-I", + rebase_path("//", root_build_dir), + ] + + if (defined(invoker.flatc_include_dirs)) { + foreach(include_dir, invoker.flatc_include_dirs) { + args += [ + "-I", + rebase_path(include_dir, root_build_dir), + ] + } + } + + if (defined(invoker.mutable) && invoker.mutable) { + args += [ "--gen-mutable" ] + } + + if (defined(invoker.args)) { + args += invoker.args + } + + args += [ "{{source}}" ] + + # The deps may have steps that have to run before running flatc. + if (defined(invoker.deps)) { + deps += invoker.deps + } + } + + source_set(target_name) { + forward_variables_from(invoker, + [ + "visibility", + "defines", + ]) + + sources = get_target_outputs(":$action_name") + + if (defined(invoker.extra_configs)) { + configs += invoker.extra_configs + } + + if (defined(invoker.testonly)) { + testonly = invoker.testonly + } + + public_configs = [ "//third_party/flatbuffers:flatbuffers_config" ] + + public_deps = [ + # The generated headers reference headers within FlatBuffers, so + # dependencies must be able to find those headers too. + ":$action_name", + "//third_party/flatbuffers", + ] + + # This will link any libraries in the deps (the use of invoker.deps in the + # action won't link it). + if (defined(invoker.deps)) { + deps += invoker.deps + } + + # Same for public_deps. + if (defined(invoker.public_deps)) { + public_deps += invoker.public_deps + } + } +}