mirror of
https://github.com/dart-lang/sdk
synced 2024-10-04 16:54:55 +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:
parent
a2574f28d3
commit
9f7dbd6b4d
2
DEPS
2
DEPS
|
@ -84,7 +84,7 @@ vars = {
|
||||||
"reclient_version": "git_revision:f3883c2237b0eb9cc9524cb571b5ab8378f257e4",
|
"reclient_version": "git_revision:f3883c2237b0eb9cc9524cb571b5ab8378f257e4",
|
||||||
|
|
||||||
# Update from https://chrome-infra-packages.appspot.com/p/fuchsia/sdk/core
|
# 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,
|
"download_fuchsia_deps": False,
|
||||||
|
|
||||||
# Ninja, runs the build based on files generated by GN.
|
# Ninja, runs the build based on files generated by GN.
|
||||||
|
|
|
@ -3,10 +3,12 @@
|
||||||
# Copyright 2013 The Flutter Authors. All rights reserved.
|
# Copyright 2013 The Flutter Authors. All rights reserved.
|
||||||
# Use of this source code is governed by a BSD-style license that can be
|
# Use of this source code is governed by a BSD-style license that can be
|
||||||
# found in the LICENSE file.
|
# found in the LICENSE file.
|
||||||
|
|
||||||
""" Generate C/C++ headers and source files from the set of FIDL files specified
|
""" Generate C/C++ headers and source files from the set of FIDL files specified
|
||||||
in the meta.json manifest.
|
in the meta.json manifest.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
|
||||||
import argparse
|
import argparse
|
||||||
import collections
|
import collections
|
||||||
import json
|
import json
|
||||||
|
@ -14,103 +16,84 @@ import os
|
||||||
import subprocess
|
import subprocess
|
||||||
import sys
|
import sys
|
||||||
|
|
||||||
|
|
||||||
def GetFIDLFilesRecursive(libraries, sdk_base, path):
|
def GetFIDLFilesRecursive(libraries, sdk_base, path):
|
||||||
with open(path) as json_file:
|
with open(path) as json_file:
|
||||||
parsed = json.load(json_file)
|
parsed = json.load(json_file)
|
||||||
result = []
|
result = []
|
||||||
deps = parsed['deps']
|
deps = parsed['deps']
|
||||||
for dep in deps:
|
for dep in deps:
|
||||||
dep_meta_json = os.path.abspath('%s/fidl/%s/meta.json' %
|
dep_meta_json = os.path.abspath('%s/fidl/%s/meta.json' % (sdk_base, dep))
|
||||||
(sdk_base, dep))
|
GetFIDLFilesRecursive(libraries, sdk_base, dep_meta_json)
|
||||||
GetFIDLFilesRecursive(libraries, sdk_base, dep_meta_json)
|
libraries[parsed['name']] = result + parsed['sources']
|
||||||
libraries[parsed['name']] = result + parsed['sources']
|
|
||||||
|
|
||||||
|
|
||||||
def GetFIDLFilesByLibraryName(sdk_base, root):
|
def GetFIDLFilesByLibraryName(sdk_base, root):
|
||||||
libraries = collections.OrderedDict()
|
libraries = collections.OrderedDict()
|
||||||
GetFIDLFilesRecursive(libraries, sdk_base, root)
|
GetFIDLFilesRecursive(libraries, sdk_base, root)
|
||||||
return libraries
|
return libraries
|
||||||
|
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
parser = argparse.ArgumentParser()
|
parser = argparse.ArgumentParser();
|
||||||
|
|
||||||
parser.add_argument('--fidlc-bin',
|
parser.add_argument('--fidlc-bin', dest='fidlc_bin', action='store', required=True)
|
||||||
dest='fidlc_bin',
|
parser.add_argument('--fidlgen-bin', dest='fidlgen_bin', action='append', required=False)
|
||||||
action='store',
|
|
||||||
required=True)
|
|
||||||
parser.add_argument('--fidlgen-bin',
|
|
||||||
dest='fidlgen_bin',
|
|
||||||
action='append',
|
|
||||||
required=False)
|
|
||||||
|
|
||||||
parser.add_argument('--sdk-base',
|
parser.add_argument('--sdk-base', dest='sdk_base', action='store', required=True)
|
||||||
dest='sdk_base',
|
parser.add_argument('--root', dest='root', action='store', required=True)
|
||||||
action='store',
|
parser.add_argument('--json', dest='json', action='store', required=True)
|
||||||
required=True)
|
parser.add_argument('--fidlgen-output-root', dest='fidlgen_output_root', action='store', required=False)
|
||||||
parser.add_argument('--root', dest='root', action='store', required=True)
|
parser.add_argument('--target-api-level', dest='target_api_level', action='store', required=False)
|
||||||
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)
|
|
||||||
|
|
||||||
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 = [
|
fidlc_command = [
|
||||||
args.fidlc_bin, '--tables', args.output_c_tables, '--json', args.json
|
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:
|
# Create an iterator that works on both python3 and python2
|
||||||
fidlc_command += [
|
try:
|
||||||
'--available',
|
fidl_files_by_name_iter = list(fidl_files_by_name.items())
|
||||||
'fuchsia:{api_level}'.format(api_level=args.target_api_level),
|
except AttributeError:
|
||||||
]
|
fidl_files_by_name_iter = iter(fidl_files_by_name.items())
|
||||||
|
|
||||||
# Create an iterator that works on both python3 and python2
|
for _, fidl_files in fidl_files_by_name_iter:
|
||||||
try:
|
fidlc_command.append('--files')
|
||||||
fidl_files_by_name_iter = list(fidl_files_by_name.items())
|
for fidl_file in fidl_files:
|
||||||
except AttributeError:
|
fidl_abspath = os.path.abspath('%s/%s' % (args.sdk_base, fidl_file))
|
||||||
fidl_files_by_name_iter = iter(fidl_files_by_name.items())
|
fidlc_command.append(fidl_abspath)
|
||||||
|
|
||||||
for _, fidl_files in fidl_files_by_name_iter:
|
subprocess.check_call(fidlc_command)
|
||||||
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)
|
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:
|
fidlgen_command = [
|
||||||
assert os.path.exists(args.json)
|
fidlgen_bin,
|
||||||
for fidlgen_bin in args.fidlgen_bin:
|
'-json',
|
||||||
assert os.path.exists(fidlgen_bin)
|
args.json,
|
||||||
|
'-root',
|
||||||
|
args.fidlgen_output_root
|
||||||
|
]
|
||||||
|
|
||||||
fidlgen_command = [
|
subprocess.check_call(fidlgen_command)
|
||||||
fidlgen_bin, '-json', args.json, '-root',
|
else:
|
||||||
args.fidlgen_output_root
|
# --fidlgen-bin and --fidlgen-output-root should be passed in together.
|
||||||
]
|
assert not args.fidlgen_bin
|
||||||
|
|
||||||
subprocess.check_call(fidlgen_command)
|
|
||||||
else:
|
|
||||||
# --fidlgen-bin and --fidlgen-output-root should be passed in together.
|
|
||||||
assert not args.fidlgen_bin
|
|
||||||
|
|
||||||
return 0
|
|
||||||
|
|
||||||
|
return 0
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
sys.exit(main())
|
sys.exit(main())
|
||||||
|
|
|
@ -90,7 +90,10 @@ template("fuchsia_fidl_library") {
|
||||||
library_name_json = "${meta_json.name}.json"
|
library_name_json = "${meta_json.name}.json"
|
||||||
|
|
||||||
foreach(dep, meta_json.deps) {
|
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"
|
config_name = "config_$target_name"
|
||||||
|
@ -106,8 +109,6 @@ template("fuchsia_fidl_library") {
|
||||||
|
|
||||||
inputs = [ invoker.meta ]
|
inputs = [ invoker.meta ]
|
||||||
|
|
||||||
outputs = [ "$target_gen_dir/$library_name_slashes/cpp/tables.c" ]
|
|
||||||
|
|
||||||
args = [
|
args = [
|
||||||
"--fidlc-bin",
|
"--fidlc-bin",
|
||||||
rebase_path("${_fuchsia_tools_path}/fidlc"),
|
rebase_path("${_fuchsia_tools_path}/fidlc"),
|
||||||
|
@ -117,8 +118,6 @@ template("fuchsia_fidl_library") {
|
||||||
rebase_path(invoker.meta),
|
rebase_path(invoker.meta),
|
||||||
"--json",
|
"--json",
|
||||||
rebase_path("$target_gen_dir/$library_name_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) {
|
if (fuchsia_target_api_level != -1) {
|
||||||
|
@ -128,43 +127,41 @@ template("fuchsia_fidl_library") {
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!defined(invoker.only_generate_tables) ||
|
outputs = [
|
||||||
!invoker.only_generate_tables) {
|
"$target_gen_dir/$library_name_slashes/cpp/fidl.cc",
|
||||||
outputs += [
|
"$target_gen_dir/$library_name_slashes/cpp/fidl.h",
|
||||||
"$target_gen_dir/$library_name_slashes/cpp/fidl.cc",
|
"$target_gen_dir/$library_name_slashes/cpp/fidl_test_base.h",
|
||||||
"$target_gen_dir/$library_name_slashes/cpp/fidl.h",
|
"$target_gen_dir/$library_name_slashes/cpp/tables.c",
|
||||||
"$target_gen_dir/$library_name_slashes/cpp/fidl_test_base.h",
|
|
||||||
|
|
||||||
"$target_gen_dir/fidl/$library_name/cpp/common_types.cc",
|
"$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/common_types.h",
|
||||||
"$target_gen_dir/fidl/$library_name/cpp/fidl.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/hlcpp_conversion.h",
|
||||||
"$target_gen_dir/fidl/$library_name/cpp/markers.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.cc",
|
||||||
"$target_gen_dir/fidl/$library_name/cpp/natural_messaging.h",
|
"$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.cc",
|
||||||
"$target_gen_dir/fidl/$library_name/cpp/natural_ostream.h",
|
"$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.cc",
|
||||||
"$target_gen_dir/fidl/$library_name/cpp/natural_types.h",
|
"$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.cc",
|
||||||
"$target_gen_dir/fidl/$library_name/cpp/type_conversions.h",
|
"$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.h",
|
||||||
"$target_gen_dir/fidl/$library_name/cpp/wire_messaging.cc",
|
"$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_messaging.h",
|
||||||
"$target_gen_dir/fidl/$library_name/cpp/wire_test_base.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.cc",
|
||||||
"$target_gen_dir/fidl/$library_name/cpp/wire_types.h",
|
"$target_gen_dir/fidl/$library_name/cpp/wire_types.h",
|
||||||
]
|
]
|
||||||
|
|
||||||
args += [
|
args += [
|
||||||
"--fidlgen-bin",
|
"--fidlgen-bin",
|
||||||
rebase_path("${_fuchsia_tools_path}/fidlgen_cpp"),
|
rebase_path("${_fuchsia_tools_path}/fidlgen_cpp"),
|
||||||
"--fidlgen-bin",
|
"--fidlgen-bin",
|
||||||
rebase_path("${_fuchsia_tools_path}/fidlgen_hlcpp"),
|
rebase_path("${_fuchsia_tools_path}/fidlgen_hlcpp"),
|
||||||
"--fidlgen-output-root",
|
"--fidlgen-output-root",
|
||||||
rebase_path("$target_gen_dir"),
|
rebase_path("$target_gen_dir"),
|
||||||
]
|
]
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
source_set(target_name) {
|
source_set(target_name) {
|
||||||
|
@ -218,6 +215,14 @@ template("_fuchsia_cc_source_library") {
|
||||||
_deps += [ "../fidl:$dep" ]
|
_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) {
|
source_set(target_name) {
|
||||||
output_name = _output_name
|
output_name = _output_name
|
||||||
public = _public_headers
|
public = _public_headers
|
||||||
|
@ -309,12 +314,11 @@ template("fuchsia_sdk") {
|
||||||
meta = part_meta_rebased
|
meta = part_meta_rebased
|
||||||
}
|
}
|
||||||
} else if (part_type == "fidl_library") {
|
} else if (part_type == "fidl_library") {
|
||||||
fuchsia_fidl_library(subtarget_name) {
|
# TODO(https://fxbug.dev/42172334): Make zx less special.
|
||||||
meta = part_meta_rebased
|
if (subtarget_name != "zx") {
|
||||||
|
fuchsia_fidl_library(subtarget_name) {
|
||||||
# TODO(fxbug.dev/90838): Remove the zx special-case when generic
|
meta = part_meta_rebased
|
||||||
# option is available.
|
}
|
||||||
only_generate_tables = subtarget_name == "zx"
|
|
||||||
}
|
}
|
||||||
} else if (part_type == "cc_prebuilt_library") {
|
} else if (part_type == "cc_prebuilt_library") {
|
||||||
_fuchsia_cc_prebuilt_library(subtarget_name) {
|
_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.")
|
assert(defined(invoker.repo), "The location of the repo should be specified.")
|
||||||
|
|
||||||
action(target_name) {
|
action(target_name) {
|
||||||
script = "//tools/fuchsia/gen_repo.py"
|
script = "//flutter/tools/fuchsia/gen_repo.py"
|
||||||
|
|
||||||
pm_binary = rebase_path("${_fuchsia_tools_path}/pm")
|
pm_binary = rebase_path("${_fuchsia_tools_path}/pm")
|
||||||
repo_directory = invoker.repo
|
repo_directory = invoker.repo
|
||||||
|
|
|
@ -235,7 +235,7 @@ def ToGnArgs(args, mode, arch, target_os, sanitizer, verify_sdk_hash,
|
||||||
gn_args['arm_float_abi'] = floatabi
|
gn_args['arm_float_abi'] = floatabi
|
||||||
gn_args['arm_use_neon'] = True
|
gn_args['arm_use_neon'] = True
|
||||||
if gn_args['target_os'] == 'fuchsia':
|
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_debug'] = mode == 'debug'
|
||||||
gn_args['is_release'] = mode == 'release'
|
gn_args['is_release'] = mode == 'release'
|
||||||
|
|
Loading…
Reference in a new issue