1
0
mirror of https://github.com/dart-lang/sdk synced 2024-07-03 00:08:46 +00:00

Roll Fuchsia SDK to 18.20240208.2.1.

Sync build setup from Flutter.

Change-Id: Ic7958dc42a79b7d2acd3f5279f816333ca31299e
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/351242
Commit-Queue: Ryan Macnak <rmacnak@google.com>
Reviewed-by: Alexander Aprelev <aam@google.com>
This commit is contained in:
Ryan Macnak 2024-02-12 18:18:01 +00:00 committed by Commit Queue
parent a2574f28d3
commit 9f7dbd6b4d
4 changed files with 115 additions and 128 deletions

2
DEPS
View File

@ -84,7 +84,7 @@ vars = {
"reclient_version": "git_revision:f3883c2237b0eb9cc9524cb571b5ab8378f257e4",
# Update from https://chrome-infra-packages.appspot.com/p/fuchsia/sdk/core
"fuchsia_sdk_version": "version:17.20240105.3.1",
"fuchsia_sdk_version": "version:18.20240208.2.1",
"download_fuchsia_deps": False,
# Ninja, runs the build based on files generated by GN.

View File

@ -3,10 +3,12 @@
# Copyright 2013 The Flutter Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
""" Generate C/C++ headers and source files from the set of FIDL files specified
in the meta.json manifest.
"""
import argparse
import collections
import json
@ -14,103 +16,84 @@ import os
import subprocess
import sys
def GetFIDLFilesRecursive(libraries, sdk_base, path):
with open(path) as json_file:
parsed = json.load(json_file)
result = []
deps = parsed['deps']
for dep in deps:
dep_meta_json = os.path.abspath('%s/fidl/%s/meta.json' %
(sdk_base, dep))
GetFIDLFilesRecursive(libraries, sdk_base, dep_meta_json)
libraries[parsed['name']] = result + parsed['sources']
with open(path) as json_file:
parsed = json.load(json_file)
result = []
deps = parsed['deps']
for dep in deps:
dep_meta_json = os.path.abspath('%s/fidl/%s/meta.json' % (sdk_base, dep))
GetFIDLFilesRecursive(libraries, sdk_base, dep_meta_json)
libraries[parsed['name']] = result + parsed['sources']
def GetFIDLFilesByLibraryName(sdk_base, root):
libraries = collections.OrderedDict()
GetFIDLFilesRecursive(libraries, sdk_base, root)
return libraries
libraries = collections.OrderedDict()
GetFIDLFilesRecursive(libraries, sdk_base, root)
return libraries
def main():
parser = argparse.ArgumentParser()
parser = argparse.ArgumentParser();
parser.add_argument('--fidlc-bin',
dest='fidlc_bin',
action='store',
required=True)
parser.add_argument('--fidlgen-bin',
dest='fidlgen_bin',
action='append',
required=False)
parser.add_argument('--fidlc-bin', dest='fidlc_bin', action='store', required=True)
parser.add_argument('--fidlgen-bin', dest='fidlgen_bin', action='append', required=False)
parser.add_argument('--sdk-base',
dest='sdk_base',
action='store',
required=True)
parser.add_argument('--root', dest='root', action='store', required=True)
parser.add_argument('--json', dest='json', action='store', required=True)
parser.add_argument('--fidlgen-output-root',
dest='fidlgen_output_root',
action='store',
required=False)
parser.add_argument('--output-c-tables',
dest='output_c_tables',
action='store',
required=True)
parser.add_argument('--target-api-level',
dest='target_api_level',
action='store',
required=False)
parser.add_argument('--sdk-base', dest='sdk_base', action='store', required=True)
parser.add_argument('--root', dest='root', action='store', required=True)
parser.add_argument('--json', dest='json', action='store', required=True)
parser.add_argument('--fidlgen-output-root', dest='fidlgen_output_root', action='store', required=False)
parser.add_argument('--target-api-level', dest='target_api_level', action='store', required=False)
args = parser.parse_args()
args = parser.parse_args()
assert os.path.exists(args.fidlc_bin)
assert os.path.exists(args.fidlc_bin)
fidl_files_by_name = GetFIDLFilesByLibraryName(args.sdk_base, args.root)
fidl_files_by_name = GetFIDLFilesByLibraryName(args.sdk_base, args.root)
fidlc_command = [
args.fidlc_bin, '--tables', args.output_c_tables, '--json', args.json
fidlc_command = [
args.fidlc_bin,
'--json',
args.json
]
if args.target_api_level:
fidlc_command += [
'--available',
'fuchsia:{api_level}'.format(api_level=args.target_api_level),
]
if args.target_api_level:
fidlc_command += [
'--available',
'fuchsia:{api_level}'.format(api_level=args.target_api_level),
]
# Create an iterator that works on both python3 and python2
try:
fidl_files_by_name_iter = list(fidl_files_by_name.items())
except AttributeError:
fidl_files_by_name_iter = iter(fidl_files_by_name.items())
# Create an iterator that works on both python3 and python2
try:
fidl_files_by_name_iter = list(fidl_files_by_name.items())
except AttributeError:
fidl_files_by_name_iter = iter(fidl_files_by_name.items())
for _, fidl_files in fidl_files_by_name_iter:
fidlc_command.append('--files')
for fidl_file in fidl_files:
fidl_abspath = os.path.abspath('%s/%s' % (args.sdk_base, fidl_file))
fidlc_command.append(fidl_abspath)
for _, fidl_files in fidl_files_by_name_iter:
fidlc_command.append('--files')
for fidl_file in fidl_files:
fidl_abspath = os.path.abspath('%s/%s' % (args.sdk_base, fidl_file))
fidlc_command.append(fidl_abspath)
subprocess.check_call(fidlc_command)
subprocess.check_call(fidlc_command)
if args.fidlgen_output_root:
assert os.path.exists(args.json)
for fidlgen_bin in args.fidlgen_bin:
assert os.path.exists(fidlgen_bin)
if args.fidlgen_output_root:
assert os.path.exists(args.json)
for fidlgen_bin in args.fidlgen_bin:
assert os.path.exists(fidlgen_bin)
fidlgen_command = [
fidlgen_bin,
'-json',
args.json,
'-root',
args.fidlgen_output_root
]
fidlgen_command = [
fidlgen_bin, '-json', args.json, '-root',
args.fidlgen_output_root
]
subprocess.check_call(fidlgen_command)
else:
# --fidlgen-bin and --fidlgen-output-root should be passed in together.
assert not args.fidlgen_bin
return 0
subprocess.check_call(fidlgen_command)
else:
# --fidlgen-bin and --fidlgen-output-root should be passed in together.
assert not args.fidlgen_bin
return 0
if __name__ == '__main__':
sys.exit(main())
sys.exit(main())

View File

@ -90,7 +90,10 @@ template("fuchsia_fidl_library") {
library_name_json = "${meta_json.name}.json"
foreach(dep, meta_json.deps) {
_deps += [ ":$dep" ]
# TODO(https://fxbug.dev/42172334): Make zx less special.
if (dep != "zx") {
_deps += [ ":$dep" ]
}
}
config_name = "config_$target_name"
@ -106,8 +109,6 @@ template("fuchsia_fidl_library") {
inputs = [ invoker.meta ]
outputs = [ "$target_gen_dir/$library_name_slashes/cpp/tables.c" ]
args = [
"--fidlc-bin",
rebase_path("${_fuchsia_tools_path}/fidlc"),
@ -117,8 +118,6 @@ template("fuchsia_fidl_library") {
rebase_path(invoker.meta),
"--json",
rebase_path("$target_gen_dir/$library_name_json"),
"--output-c-tables",
rebase_path("$target_gen_dir/$library_name_slashes/cpp/tables.c"),
]
if (fuchsia_target_api_level != -1) {
@ -128,43 +127,41 @@ template("fuchsia_fidl_library") {
]
}
if (!defined(invoker.only_generate_tables) ||
!invoker.only_generate_tables) {
outputs += [
"$target_gen_dir/$library_name_slashes/cpp/fidl.cc",
"$target_gen_dir/$library_name_slashes/cpp/fidl.h",
"$target_gen_dir/$library_name_slashes/cpp/fidl_test_base.h",
outputs = [
"$target_gen_dir/$library_name_slashes/cpp/fidl.cc",
"$target_gen_dir/$library_name_slashes/cpp/fidl.h",
"$target_gen_dir/$library_name_slashes/cpp/fidl_test_base.h",
"$target_gen_dir/$library_name_slashes/cpp/tables.c",
"$target_gen_dir/fidl/$library_name/cpp/common_types.cc",
"$target_gen_dir/fidl/$library_name/cpp/common_types.h",
"$target_gen_dir/fidl/$library_name/cpp/fidl.h",
"$target_gen_dir/fidl/$library_name/cpp/hlcpp_conversion.h",
"$target_gen_dir/fidl/$library_name/cpp/markers.h",
"$target_gen_dir/fidl/$library_name/cpp/natural_messaging.cc",
"$target_gen_dir/fidl/$library_name/cpp/natural_messaging.h",
"$target_gen_dir/fidl/$library_name/cpp/natural_ostream.cc",
"$target_gen_dir/fidl/$library_name/cpp/natural_ostream.h",
"$target_gen_dir/fidl/$library_name/cpp/natural_types.cc",
"$target_gen_dir/fidl/$library_name/cpp/natural_types.h",
"$target_gen_dir/fidl/$library_name/cpp/type_conversions.cc",
"$target_gen_dir/fidl/$library_name/cpp/type_conversions.h",
"$target_gen_dir/fidl/$library_name/cpp/wire.h",
"$target_gen_dir/fidl/$library_name/cpp/wire_messaging.cc",
"$target_gen_dir/fidl/$library_name/cpp/wire_messaging.h",
"$target_gen_dir/fidl/$library_name/cpp/wire_test_base.h",
"$target_gen_dir/fidl/$library_name/cpp/wire_types.cc",
"$target_gen_dir/fidl/$library_name/cpp/wire_types.h",
]
"$target_gen_dir/fidl/$library_name/cpp/common_types.cc",
"$target_gen_dir/fidl/$library_name/cpp/common_types.h",
"$target_gen_dir/fidl/$library_name/cpp/fidl.h",
"$target_gen_dir/fidl/$library_name/cpp/hlcpp_conversion.h",
"$target_gen_dir/fidl/$library_name/cpp/markers.h",
"$target_gen_dir/fidl/$library_name/cpp/natural_messaging.cc",
"$target_gen_dir/fidl/$library_name/cpp/natural_messaging.h",
"$target_gen_dir/fidl/$library_name/cpp/natural_ostream.cc",
"$target_gen_dir/fidl/$library_name/cpp/natural_ostream.h",
"$target_gen_dir/fidl/$library_name/cpp/natural_types.cc",
"$target_gen_dir/fidl/$library_name/cpp/natural_types.h",
"$target_gen_dir/fidl/$library_name/cpp/type_conversions.cc",
"$target_gen_dir/fidl/$library_name/cpp/type_conversions.h",
"$target_gen_dir/fidl/$library_name/cpp/wire.h",
"$target_gen_dir/fidl/$library_name/cpp/wire_messaging.cc",
"$target_gen_dir/fidl/$library_name/cpp/wire_messaging.h",
"$target_gen_dir/fidl/$library_name/cpp/wire_test_base.h",
"$target_gen_dir/fidl/$library_name/cpp/wire_types.cc",
"$target_gen_dir/fidl/$library_name/cpp/wire_types.h",
]
args += [
"--fidlgen-bin",
rebase_path("${_fuchsia_tools_path}/fidlgen_cpp"),
"--fidlgen-bin",
rebase_path("${_fuchsia_tools_path}/fidlgen_hlcpp"),
"--fidlgen-output-root",
rebase_path("$target_gen_dir"),
]
}
args += [
"--fidlgen-bin",
rebase_path("${_fuchsia_tools_path}/fidlgen_cpp"),
"--fidlgen-bin",
rebase_path("${_fuchsia_tools_path}/fidlgen_hlcpp"),
"--fidlgen-output-root",
rebase_path("$target_gen_dir"),
]
}
source_set(target_name) {
@ -218,6 +215,14 @@ template("_fuchsia_cc_source_library") {
_deps += [ "../fidl:$dep" ]
}
foreach(binding_dep, meta_json.fidl_binding_deps) {
# No need to check "binding_deps.binding_type" because we always
# generate both hlcpp and natural bindings.
foreach(dep, binding_dep.deps) {
_deps += [ "../fidl:$dep" ]
}
}
source_set(target_name) {
output_name = _output_name
public = _public_headers
@ -309,12 +314,11 @@ template("fuchsia_sdk") {
meta = part_meta_rebased
}
} else if (part_type == "fidl_library") {
fuchsia_fidl_library(subtarget_name) {
meta = part_meta_rebased
# TODO(fxbug.dev/90838): Remove the zx special-case when generic
# option is available.
only_generate_tables = subtarget_name == "zx"
# TODO(https://fxbug.dev/42172334): Make zx less special.
if (subtarget_name != "zx") {
fuchsia_fidl_library(subtarget_name) {
meta = part_meta_rebased
}
}
} else if (part_type == "cc_prebuilt_library") {
_fuchsia_cc_prebuilt_library(subtarget_name) {
@ -334,7 +338,7 @@ template("fuchsia_repo") {
assert(defined(invoker.repo), "The location of the repo should be specified.")
action(target_name) {
script = "//tools/fuchsia/gen_repo.py"
script = "//flutter/tools/fuchsia/gen_repo.py"
pm_binary = rebase_path("${_fuchsia_tools_path}/pm")
repo_directory = invoker.repo

View File

@ -235,7 +235,7 @@ def ToGnArgs(args, mode, arch, target_os, sanitizer, verify_sdk_hash,
gn_args['arm_float_abi'] = floatabi
gn_args['arm_use_neon'] = True
if gn_args['target_os'] == 'fuchsia':
gn_args['fuchsia_target_api_level'] = 15
gn_args['fuchsia_target_api_level'] = 16
gn_args['is_debug'] = mode == 'debug'
gn_args['is_release'] = mode == 'release'