diff --git a/DEPS b/DEPS index 746d9f6cdeb..99c585b4fb3 100644 --- a/DEPS +++ b/DEPS @@ -700,7 +700,7 @@ Var("dart_root") + "/third_party/pkg/tar": "packages": [ { "package": "chromium/fuchsia/test-scripts", - "version": "version:2@49064713a73ae92d8c28164938b97869afd336aa", + "version": "EAdD2YcYwVrhF2q_zR6xUvPkcKlPb1tJyM_6_oOc84kC", } ], "condition": 'download_fuchsia_deps', @@ -711,7 +711,7 @@ Var("dart_root") + "/third_party/pkg/tar": "packages": [ { "package": "chromium/fuchsia/gn-sdk", - "version": "version:2@7f1f23fce153ca079a77492d9d47d803d60b774e", + "version": "RgErspyYHapUO2SpcW-vo2p8yaRUMUrq0eWjRVPfQjoC", } ], "condition": 'download_fuchsia_deps', @@ -836,6 +836,16 @@ hooks = [ Var('emsdk_ver')], 'condition': 'download_emscripten' }, + { + 'name': 'Erase arch/ from fuchsia sdk', + 'pattern': '.', + 'action': [ + 'rm', + '-rf', + 'sdk/third_party/fuchsia/sdk/linux/arch', + ], + 'condition': 'download_fuchsia_deps' + }, { 'name': 'Download Fuchsia system images', 'pattern': '.', @@ -847,4 +857,14 @@ hooks = [ ], 'condition': 'download_fuchsia_deps' }, + { + 'name': 'Generate Fuchsia GN build rules', + 'pattern': '.', + 'action': [ + 'python3', + 'sdk/build/fuchsia/with_envs.py', + 'sdk/third_party/fuchsia/test_scripts/gen_build_defs.py', + ], + 'condition': 'download_fuchsia_deps' + }, ] diff --git a/build/config/BUILDCONFIG.gn b/build/config/BUILDCONFIG.gn index 51eb4c212f7..65b305fa11b 100644 --- a/build/config/BUILDCONFIG.gn +++ b/build/config/BUILDCONFIG.gn @@ -257,9 +257,7 @@ if (is_win) { "//build/config/win:winver", ] if (is_clang) { - _native_compiler_configs += [ - "//build/config/win:relative_paths", - ] + _native_compiler_configs += [ "//build/config/win:relative_paths" ] } } if (is_posix) { @@ -270,8 +268,8 @@ if (is_posix) { } if (is_fuchsia) { _native_compiler_configs += [ - "//build/config/fuchsia:compiler", - "//build/config/fuchsia:runtime_library", + "//third_party/fuchsia/gn-sdk/src/config:compiler", + "//third_party/fuchsia/gn-sdk/src/config:runtime_library", ] } @@ -450,8 +448,8 @@ foreach(_target_type, } if (is_fuchsia) { deps += [ - "//build/config/fuchsia:runtime_library_group", "//build/fuchsia/config/clang:c++-runtime-deps", + "//third_party/fuchsia/gn-sdk/src/config:runtime_library_group", ] } } diff --git a/build/config/fuchsia/BUILD.gn b/build/config/fuchsia/BUILD.gn deleted file mode 100644 index 555c2c2c687..00000000000 --- a/build/config/fuchsia/BUILD.gn +++ /dev/null @@ -1,89 +0,0 @@ -# Copyright 2019 The Fuchsia 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/fuchsia/gn_configs.gni") - -config("compiler") { - sdk_version = "${fuchsia_sdk_id}" - defines = [ - # To force full builds after SDK updates in case of ABI changes. - "FUCHSIA_SDK_VERSION=$sdk_version", - ] - cflags = [] - ldflags = [] - if (current_cpu == "arm64") { - cflags += [ "--target=aarch64-fuchsia" ] - } else if (current_cpu == "x64") { - cflags += [ "--target=x86_64-fuchsia" ] - } else { - assert(false, "Unsupported architecture") - } - - # Pass the target API level to the compiler if specified. - if (fuchsia_target_api_level != -1) { - cflags += [ "-ffuchsia-api-level=${fuchsia_target_api_level}" ] - } - - # Add libfdio by default. This may change in future versions - # in order to move away from POSIX applications and towards - # the Fuchsia programming model. - ldflags += [ - # We always want fdio or else e.g. stdio wouldn't be initialized if fdio - # happens to not be directly referenced. The common POSIX-y compiler setup - # uses -Wl,--as-needed which drops it if it's simply "-lfdio" from a libs - # setting. Disable --as-needed, add fdio, and then set back to --as-needed. - "-Wl,--no-as-needed", - "-lfdio", - "-Wl,--as-needed", - ] - - lib_dirs = [ "${fuchsia_sdk}/arch/${current_cpu}/lib" ] - - libs = [ "zircon" ] - - ldflags += cflags - asmflags = cflags -} - -# This should be applied to all targets. -config("runtime_library") { - asmflags = [] - cflags = [] - cflags_c = [] - cflags_cc = [] - cflags_objc = [] - cflags_objcc = [] - defines = [] - ldflags = [] - - sysroot = "${fuchsia_sdk}/arch/$current_cpu/sysroot" - - # Pass the sysroot to all C compiler variants, the assembler, and linker. - cflags = [ "--sysroot=" + rebase_path(sysroot, root_build_dir) ] - ldflags = cflags - asmflags = cflags -} - -# Copy the loader to place it at the expected path in the final package. -copy("sysroot_dist_libs") { - sources = [ "${fuchsia_sdk}/arch/${target_cpu}/sysroot/dist/lib/ld.so.1" ] - outputs = [ "${root_out_dir}/lib/{{source_file_part}}" ] -} - -# This adds the runtime deps for //build/config/compiler:runtime_library -# as that is a config target and thus cannot include data_deps. -group("runtime_library_group") { - data_deps = [ - ":sysroot_dist_libs", - - # This is used directly from //build/config/fuchsia:compiler and thus - # also needs to be included by default. - # "${fuchsia_sdk}/pkg/fdio", - ] -} - -config("sdk_lib_dirs_config") { - visibility = [ "${fuchsia_sdk}/*" ] - lib_dirs = [ "arch/${target_cpu}/lib" ] -} diff --git a/build/fuchsia/fidl/BUILD.gn b/build/fuchsia/fidl/BUILD.gn deleted file mode 100644 index 9042bc3ebc3..00000000000 --- a/build/fuchsia/fidl/BUILD.gn +++ /dev/null @@ -1,11 +0,0 @@ -# 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. - -assert(is_fuchsia) -import("//build/fuchsia/sdk.gni") - -fuchsia_sdk("fidl") { - meta = "$fuchsia_sdk_path/meta/manifest.json" - enabled_parts = [ "fidl_library" ] -} diff --git a/build/fuchsia/fidl_gen_cpp.py b/build/fuchsia/fidl_gen_cpp.py deleted file mode 100755 index add4d9fc814..00000000000 --- a/build/fuchsia/fidl_gen_cpp.py +++ /dev/null @@ -1,99 +0,0 @@ -#!/usr/bin/env python3 -# -# 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 -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'] - -def GetFIDLFilesByLibraryName(sdk_base, root): - libraries = collections.OrderedDict() - GetFIDLFilesRecursive(libraries, sdk_base, root) - return libraries - -def main(): - 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('--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() - - assert os.path.exists(args.fidlc_bin) - - fidl_files_by_name = GetFIDLFilesByLibraryName(args.sdk_base, args.root) - - 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), - ] - - # 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) - - 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) - - 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 - -if __name__ == '__main__': - sys.exit(main()) diff --git a/build/fuchsia/pkg/BUILD.gn b/build/fuchsia/pkg/BUILD.gn deleted file mode 100644 index 35c3c7a12a3..00000000000 --- a/build/fuchsia/pkg/BUILD.gn +++ /dev/null @@ -1,14 +0,0 @@ -# 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. - -assert(is_fuchsia) -import("//build/fuchsia/sdk.gni") - -fuchsia_sdk("pkg") { - meta = "$fuchsia_sdk_path/meta/manifest.json" - enabled_parts = [ - "cc_source_library", - "cc_prebuilt_library", - ] -} diff --git a/build/fuchsia/sdk.gni b/build/fuchsia/sdk.gni deleted file mode 100644 index ce326274eb6..00000000000 --- a/build/fuchsia/sdk.gni +++ /dev/null @@ -1,373 +0,0 @@ -# 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. - -import("//build/config/fuchsia/gn_configs.gni") - -declare_args() { - # The path to where GN targets derived from the Fuchsia SDK are instantiated. - fuchsia_sdk_root = "//build/fuchsia" - - # The Flutter buildroot is outside the Fuchsia root and can only use the SDK. - using_fuchsia_sdk = true - - # This is set by the dart sources. Once the engine repo switches to using the GN SDK, - # this flag can be unified with `using_fuchsia_sdk`. - using_fuchsia_gn_sdk = false - - # The following variables are Flutter buildroot specific. - fuchsia_sdk_path = "//third_party/fuchsia/sdk/$host_os" - fuchsia_toolchain_path = "//buildtools/${host_os}-${host_cpu}/clang" -} - -declare_args() { - # The Skia buildroot uses this flag to decide if it should be using the - # Fuchsia SDK to build its translation units. - skia_using_fuchsia_sdk = using_fuchsia_sdk -} - -_fuchsia_sdk_path = "//third_party/fuchsia/sdk/$host_os" -_fuchsia_tools_path = "${_fuchsia_sdk_path}/tools/${host_cpu}" - -template("_fuchsia_sysroot") { - assert(defined(invoker.meta), "The meta.json file path must be specified.") - assert(target_cpu == "x64" || target_cpu == "arm64", - "We currently only support 'x64' and 'arm64' targets for fuchsia.") - - meta_json = read_file(invoker.meta, "json") - - assert(meta_json.type == "sysroot") - - meta_json_versions = meta_json.versions - if (target_cpu == "x64") { - defs = meta_json_versions.x64 - } else { - defs = meta_json_versions.arm64 - } - - _libs = [] - _lib_dirs = [] - _include_dirs = [] - - foreach(link_lib, defs.link_libs) { - if (link_lib != "arch/${target_cpu}/sysroot/lib/Scrt1.o") { - _libs += [ "$_fuchsia_sdk_path/$link_lib" ] - } - } - - defs_include_dir = defs.include_dir - _include_dirs += [ "$_fuchsia_sdk_path/$defs_include_dir" ] - - config_name = "config_$target_name" - config(config_name) { - lib_dirs = _lib_dirs - libs = _libs - include_dirs = _include_dirs - } - - group(target_name) { - public_configs = [ ":$config_name" ] - } -} - -template("fuchsia_fidl_library") { - assert(defined(invoker.meta), "The meta.json file path must be specified.") - assert(target_cpu == "x64" || target_cpu == "arm64", - "We currently only support 'x64' and 'arm64' targets for fuchsia.") - - meta_json = read_file(invoker.meta, "json") - assert(meta_json.type == "fidl_library") - - _deps = [ - "//build/fuchsia/pkg:fidl_cpp", - "//build/fuchsia/pkg:fidl_cpp_hlcpp_conversion", - "//build/fuchsia/pkg:fidl_cpp_natural_ostream", - "//build/fuchsia/pkg:fidl_cpp_v2", - "//build/fuchsia/pkg:fidl_cpp_wire", - ] - - library_name = meta_json.name - library_name_json = "${meta_json.name}.json" - - foreach(dep, meta_json.deps) { - # TODO(https://fxbug.dev/42172334): Make zx less special. - if (dep != "zx") { - _deps += [ ":$dep" ] - } - } - - config_name = "config_$target_name" - config(config_name) { - include_dirs = [ target_gen_dir ] - } - - fidl_gen_target_name = "fidlgen_$target_name" - action(fidl_gen_target_name) { - script = "//build/fuchsia/fidl_gen_cpp.py" - - library_name_slashes = string_replace(library_name, ".", "/") - - inputs = [ invoker.meta ] - - args = [ - "--fidlc-bin", - rebase_path("${_fuchsia_tools_path}/fidlc"), - "--sdk-base", - rebase_path(_fuchsia_sdk_path), - "--root", - rebase_path(invoker.meta), - "--json", - rebase_path("$target_gen_dir/$library_name_json"), - ] - - if (fuchsia_target_api_level != -1) { - args += [ - "--target-api-level", - "${fuchsia_target_api_level}", - ] - } - - 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", - ] - - 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) { - public_configs = [ ":$config_name" ] - - sources = get_target_outputs(":$fidl_gen_target_name") - - deps = [ ":$fidl_gen_target_name" ] - - public_deps = _deps - } -} - -template("_fuchsia_cc_source_library") { - assert(defined(invoker.meta), "The meta.json file path must be specified.") - - meta_json = read_file(invoker.meta, "json") - - assert(meta_json.type == "cc_source_library") - - _output_name = meta_json.name - _include_dirs = [] - _public_headers = [] - _sources = [] - _deps = [] - - meta_json_include_dir = meta_json.include_dir - _include_dirs += [ "$_fuchsia_sdk_path/$meta_json_include_dir" ] - - foreach(header, meta_json.headers) { - rebased_header = [] - rebased_header = [ "$_fuchsia_sdk_path/$header" ] - _public_headers += rebased_header - _sources += rebased_header - } - - foreach(source, meta_json.sources) { - _sources += [ "$_fuchsia_sdk_path/$source" ] - } - - config_name = "config_$target_name" - config(config_name) { - include_dirs = _include_dirs - } - - foreach(dep, meta_json.deps) { - _deps += [ "../pkg:$dep" ] - } - - foreach(dep, meta_json.fidl_deps) { - _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 - sources = _sources - public_configs = [ ":$config_name" ] - public_deps = _deps - } -} - -template("_fuchsia_cc_prebuilt_library") { - assert(defined(invoker.meta), "The meta.json file path must be specified.") - meta_json = read_file(invoker.meta, "json") - - _include_dirs = [] - _deps = [] - _libs = [] - - meta_json_include_dir = meta_json.include_dir - _include_dirs += [ "$_fuchsia_sdk_path/$meta_json_include_dir" ] - - foreach(dep, meta_json.deps) { - _deps += [ ":$dep" ] - } - - meta_json_binaries = meta_json.binaries - if (target_cpu == "x64") { - meta_json_binaries_arch = meta_json_binaries.x64 - } else { - meta_json_binaries_arch = meta_json_binaries.arm64 - } - prebuilt_lib = meta_json_binaries_arch.link - _libs = [ "$_fuchsia_sdk_path/$prebuilt_lib" ] - - if (meta_json.format == "shared") { - copy("${target_name}_dist_libs") { - sources = [ "$_fuchsia_sdk_path/${meta_json_binaries_arch.dist}" ] - outputs = [ "${root_out_dir}/${meta_json_binaries_arch.dist_path}" ] - } - } - - config_name = "config_$target_name" - config(config_name) { - include_dirs = _include_dirs - libs = _libs - } - - group(target_name) { - public_configs = [ ":$config_name" ] - public_deps = _deps - if (meta_json.format == "shared") { - data_deps = [ ":${target_name}_dist_libs" ] - } - } -} - -template("fuchsia_sdk") { - assert(defined(invoker.meta), "The meta.json file path must be specified.") - assert(defined(invoker.enabled_parts), - "A list containing the parts of the SDK to generate targets for.") - - meta_json = read_file(invoker.meta, "json") - - foreach(part, meta_json.parts) { - part_meta_json = { - } - part_meta = part.meta - part_meta_rebased = "$_fuchsia_sdk_path/$part_meta" - - # Check if the part is using `part.element_type` or `part.type`. - part_type = "" - if (defined(part.element_type)) { - part_type = part.element_type - } else if (defined(part.type)) { - part_type = part.type - } - - # Check if the part type is in `invoker.enabled_parts`. - if (invoker.enabled_parts + [ part_type ] - [ part_type ] != - invoker.enabled_parts) { - part_meta_json = read_file(part_meta_rebased, "json") - subtarget_name = part_meta_json.name - - if (part_type == "cc_source_library") { - _fuchsia_cc_source_library(subtarget_name) { - meta = part_meta_rebased - } - } else if (part_type == "sysroot") { - _fuchsia_sysroot(subtarget_name) { - meta = part_meta_rebased - } - } else if (part_type == "fidl_library") { - # 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) { - meta = part_meta_rebased - } - } - } - } - - group(target_name) { - } -} - -template("fuchsia_repo") { - assert(defined(invoker.archives), - "The list of archives to publish must be specified.") - assert(defined(invoker.repo), "The location of the repo should be specified.") - - action(target_name) { - script = "//flutter/tools/fuchsia/gen_repo.py" - - pm_binary = rebase_path("${_fuchsia_tools_path}/pm") - repo_directory = invoker.repo - - inputs = [ pm_binary ] - - archive_flags = [] - - foreach(archive, invoker.archives) { - assert(get_path_info(archive, "extension") == "far", - "Archive '$archive' does not have the .far extension.") - inputs += [ archive ] - archive_flags += [ - "--archive", - rebase_path(archive), - ] - } - - outputs = [ repo_directory ] - - args = [ - "--pm-bin", - pm_binary, - "--repo-dir", - rebase_path(repo_directory), - ] + archive_flags - - if (defined(invoker.deps)) { - deps = invoker.deps - } - } -} diff --git a/build/fuchsia/sysroot/BUILD.gn b/build/fuchsia/sysroot/BUILD.gn deleted file mode 100644 index 7c3ce59d04f..00000000000 --- a/build/fuchsia/sysroot/BUILD.gn +++ /dev/null @@ -1,11 +0,0 @@ -# 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. - -assert(is_fuchsia) -import("//build/fuchsia/sdk.gni") - -fuchsia_sdk("sdk_sysroot") { - meta = "$fuchsia_sdk_path/meta/manifest.json" - enabled_parts = [ "sysroot" ] -} diff --git a/build/fuchsia/with_envs.py b/build/fuchsia/with_envs.py index 45ff28848c8..0b98f451b8e 100755 --- a/build/fuchsia/with_envs.py +++ b/build/fuchsia/with_envs.py @@ -42,6 +42,10 @@ def Main(): 'third_party', 'fuchsia', 'sdk', sdk_dir) + os.environ['FUCHSIA_GN_SDK_ROOT'] = os.path.join(os.environ['SRC_ROOT'], + 'third_party', 'fuchsia', + 'gn-sdk', 'src') + with subprocess.Popen(sys.argv[1:]) as proc: try: proc.wait() diff --git a/runtime/BUILD.gn b/runtime/BUILD.gn index 321f4986a09..c2920b70289 100644 --- a/runtime/BUILD.gn +++ b/runtime/BUILD.gn @@ -8,10 +8,6 @@ import("runtime_args.gni") import("//build/config/sysroot.gni") -if (is_fuchsia) { - import("//build/fuchsia/sdk.gni") -} - config("dart_public_config") { include_dirs = [ ".", @@ -175,19 +171,14 @@ config("dart_config") { } if (is_fuchsia) { - if (using_fuchsia_gn_sdk) { - lib_dirs = [ root_out_dir + "/lib" ] - } - if (using_fuchsia_gn_sdk || using_fuchsia_sdk) { - # TODO(chinmaygarde): Currently these targets need to be build in the - # Fuchsia tree as well as outside it using the SDK. However, not all - # Fuchsia features are available in the SDK. As these features are added, - # the guards can be removed. Eventually, only SDK builds will be present. - # Then, this flag can be removed completely. - defines += [ "FUCHSIA_SDK" ] - } else { - include_dirs += [ "//zircon/system/ulib/zx/include" ] - } + lib_dirs = [ "${fuchsia_arch_root}/lib" ] + + # TODO(chinmaygarde): Currently these targets need to be build in the + # Fuchsia tree as well as outside it using the SDK. However, not all + # Fuchsia features are available in the SDK. As these features are added, + # the guards can be removed. Eventually, only SDK builds will be present. + # Then, this flag can be removed completely. + defines += [ "FUCHSIA_SDK" ] } # Below are flags copied from ../build/config/compiler/BUILD.gn that should @@ -306,22 +297,10 @@ library_for_all_configs("libdart") { "../third_party/double-conversion/src:libdouble_conversion", ] if (is_fuchsia) { - if (using_fuchsia_gn_sdk) { - extra_deps += [ - "$fuchsia_sdk_root/pkg/fdio", - "$fuchsia_sdk_root/pkg/trace-engine", - ] - } else if (using_fuchsia_sdk) { - extra_deps += [ - "$fuchsia_sdk_root/pkg:fdio", - "$fuchsia_sdk_root/pkg:trace-engine", - ] - } else { - extra_deps += [ - "//zircon/public/lib/fbl", - "//zircon/system/ulib/trace-engine", - ] - } + extra_deps += [ + "$fuchsia_sdk/pkg/fdio", + "$fuchsia_sdk/pkg/trace-engine", + ] } configurable_deps = [ "platform:libdart_platform", diff --git a/runtime/bin/BUILD.gn b/runtime/bin/BUILD.gn index 7755f752478..52b9bdba29e 100644 --- a/runtime/bin/BUILD.gn +++ b/runtime/bin/BUILD.gn @@ -16,10 +16,6 @@ import("cli_sources.gni") import("io_impl_sources.gni") import("io_sources.gni") -if (is_fuchsia) { - import("//build/fuchsia/sdk.gni") -} - config("libdart_builtin_config") { if (is_win) { libs = [ "bcrypt.lib" ] @@ -63,13 +59,7 @@ template("build_libdart_builtin") { public_configs = [ ":libdart_builtin_config" ] deps = [] if (is_fuchsia) { - if (using_fuchsia_gn_sdk) { - public_deps = [ "$fuchsia_sdk_root/pkg/fdio" ] - } else if (using_fuchsia_sdk) { - public_deps = [ "$fuchsia_sdk_root/pkg:fdio" ] - } else { - public_deps = [ "//sdk/lib/fdio" ] - } + public_deps = [ "$fuchsia_sdk/pkg/fdio" ] } if (is_win) { libs = [ "Pathcch.lib" ] @@ -333,25 +323,11 @@ template("build_gen_snapshot_dart_io") { deps = [ "//third_party/zlib" ] if (is_fuchsia) { - if (using_fuchsia_gn_sdk) { - deps += [ - "$fuchsia_sdk_root/fidl/fuchsia.io", - "$fuchsia_sdk_root/fidl/fuchsia.kernel", - ] - public_deps = [ "$fuchsia_sdk_root/pkg/fdio" ] - } else if (using_fuchsia_sdk) { - deps += [ - "$fuchsia_sdk_root/fidl:fuchsia.io", - "$fuchsia_sdk_root/fidl:fuchsia.kernel", - ] - public_deps = [ "$fuchsia_sdk_root/pkg:fdio" ] - } else { - deps += [ - "//sdk/fidl/fuchsia.io:fuchsia.io_hlcpp", - "//sdk/fidl/fuchsia.kernel:fuchsia.kernel_hlcpp", - ] - public_deps = [ "//sdk/lib/fdio" ] - } + deps += [ + "$fuchsia_sdk/fidl/fuchsia.io", + "$fuchsia_sdk/fidl/fuchsia.kernel", + ] + public_deps = [ "$fuchsia_sdk/pkg/fdio" ] } defines = [ "DART_IO_SECURE_SOCKET_DISABLED" ] @@ -454,25 +430,11 @@ template("dart_io") { deps += [ "//third_party/boringssl" ] if (is_fuchsia) { - if (using_fuchsia_gn_sdk) { - deps += [ - "$fuchsia_sdk_root/fidl/fuchsia.io", - "$fuchsia_sdk_root/fidl/fuchsia.kernel", - ] - public_deps = [ "$fuchsia_sdk_root/pkg/fdio" ] - } else if (using_fuchsia_sdk) { - deps += [ - "$fuchsia_sdk_root/fidl:fuchsia.io", - "$fuchsia_sdk_root/fidl:fuchsia.kernel", - ] - public_deps = [ "$fuchsia_sdk_root/pkg:fdio" ] - } else { - deps += [ - "//sdk/fidl/fuchsia.io:fuchsia.io_hlcpp", - "//sdk/fidl/fuchsia.kernel:fuchsia.kernel_hlcpp", - ] - public_deps = [ "//sdk/lib/fdio" ] - } + deps += [ + "$fuchsia_sdk/fidl/fuchsia.io", + "$fuchsia_sdk/fidl/fuchsia.kernel", + ] + public_deps = [ "$fuchsia_sdk/pkg/fdio" ] } sources = io_impl_sources @@ -993,13 +955,7 @@ executable("run_vm_tests") { defines = [ "TESTING" ] if (is_fuchsia) { - if (using_fuchsia_gn_sdk) { - deps += [ "$fuchsia_sdk_root/pkg/trace-engine" ] - } else if (using_fuchsia_sdk) { - deps += [ "$fuchsia_sdk_root/pkg:trace-engine" ] - } else { - deps += [ "//zircon/system/ulib/trace-engine" ] - } + deps += [ "$fuchsia_sdk/pkg/trace-engine" ] } # The VM sources are already included in libdart, so we just want to add in diff --git a/runtime/platform/BUILD.gn b/runtime/platform/BUILD.gn index 42422c40642..0bd32ee9ae2 100644 --- a/runtime/platform/BUILD.gn +++ b/runtime/platform/BUILD.gn @@ -5,10 +5,6 @@ import("../configs.gni") import("platform_sources.gni") -if (is_fuchsia) { - import("//build/fuchsia/sdk.gni") -} - library_for_all_configs("libdart_platform") { target_type = "source_set" public_configs = [ "../vm:libdart_vm_config" ] @@ -17,21 +13,9 @@ library_for_all_configs("libdart_platform") { extra_deps = [] if (is_fuchsia) { - if (using_fuchsia_gn_sdk) { - extra_deps += [ - "$fuchsia_sdk_root/pkg/inspect_component_cpp", - "$fuchsia_sdk_root/pkg/sys_cpp", - ] - } else if (using_fuchsia_sdk) { - extra_deps += [ - "$fuchsia_sdk_root/pkg:inspect_component_cpp", - "$fuchsia_sdk_root/pkg:sys_cpp", - ] - } else { - extra_deps += [ - "//sdk/lib/inspect/component/cpp", - "//sdk/lib/sys/cpp", - ] - } + extra_deps += [ + "$fuchsia_sdk/pkg/inspect_component_cpp", + "$fuchsia_sdk/pkg/sys_cpp", + ] } } diff --git a/runtime/runtime_args.gni b/runtime/runtime_args.gni index 92bf387959b..dc10b71b7d6 100644 --- a/runtime/runtime_args.gni +++ b/runtime/runtime_args.gni @@ -85,3 +85,14 @@ declare_args() { (dart_target_arch == "x64" || dart_target_arch == "arm64" || dart_target_arch == "riscv64") } + +if (is_fuchsia) { + declare_args() { + # In case some repo uses build rules in dart/sdk, but put fuchsia-gn-sdk in + # a different folder, this gn arg can specify the location of fuchsia-gn-sdk. + if (!defined(fuchsia_gn_sdk)) { + fuchsia_gn_sdk = "//third_party/fuchsia/gn-sdk" + } + } + import(fuchsia_gn_sdk + "/src/gn_configs.gni") +} diff --git a/runtime/vm/BUILD.gn b/runtime/vm/BUILD.gn index c92b19b5bec..f82ffd5ded0 100644 --- a/runtime/vm/BUILD.gn +++ b/runtime/vm/BUILD.gn @@ -38,10 +38,6 @@ import("ffi/ffi_sources.gni") import("heap/heap_sources.gni") import("vm_sources.gni") -if (is_fuchsia) { - import("//build/fuchsia/sdk.gni") -} - config("libdart_vm_config") { if (is_fuchsia) { libs = [ "zircon" ] @@ -172,38 +168,17 @@ library_for_all_configs("libdart_vm") { ] extra_deps = [] if (is_fuchsia) { - if (using_fuchsia_gn_sdk) { - extra_deps += [ - "$fuchsia_sdk_root/fidl/fuchsia.intl", - "$fuchsia_sdk_root/pkg/async", - "$fuchsia_sdk_root/pkg/async-default", - "$fuchsia_sdk_root/pkg/async-loop", - "$fuchsia_sdk_root/pkg/async-loop-default", - "$fuchsia_sdk_root/pkg/inspect", - "$fuchsia_sdk_root/pkg/inspect_component_cpp", - "$fuchsia_sdk_root/pkg/sys_cpp", - "$fuchsia_sdk_root/pkg/trace-engine", - ] - } else if (using_fuchsia_sdk) { - extra_deps += [ - "$fuchsia_sdk_root/fidl:fuchsia.intl", - "$fuchsia_sdk_root/pkg:async-loop", - "$fuchsia_sdk_root/pkg:async-loop-default", - "$fuchsia_sdk_root/pkg:inspect", - "$fuchsia_sdk_root/pkg:inspect_component_cpp", - "$fuchsia_sdk_root/pkg:sys_cpp", - "$fuchsia_sdk_root/pkg:trace-engine", - ] - } else { - extra_deps += [ - "//sdk/fidl/fuchsia.intl", - "//sdk/lib/inspect/component/cpp", - "//sdk/lib/sys/cpp", - "//zircon/public/lib/fbl", - "//zircon/system/ulib/inspect", - "//zircon/system/ulib/trace-engine", - ] - } + extra_deps += [ + "$fuchsia_sdk/fidl/fuchsia.intl", + "$fuchsia_sdk/pkg/async", + "$fuchsia_sdk/pkg/async-default", + "$fuchsia_sdk/pkg/async-loop", + "$fuchsia_sdk/pkg/async-loop-default", + "$fuchsia_sdk/pkg/inspect", + "$fuchsia_sdk/pkg/inspect_component_cpp", + "$fuchsia_sdk/pkg/sys_cpp", + "$fuchsia_sdk/pkg/trace-engine", + ] } public_configs = [ ":libdart_vm_config" ] sources = vm_sources + rebase_path(compiler_api_sources, ".", "./compiler/") + @@ -227,16 +202,7 @@ library_for_all_configs_with_compiler("libdart_compiler") { extra_nonproduct_deps = [ ":libprotozero" ] extra_deps = [] if (is_fuchsia) { - if (using_fuchsia_gn_sdk) { - extra_deps += [ "$fuchsia_sdk_root/pkg/trace-engine" ] - } else if (using_fuchsia_sdk) { - extra_deps += [ "$fuchsia_sdk_root/pkg:trace-engine" ] - } else { - extra_deps += [ - "//zircon/public/lib/fbl", - "//zircon/system/ulib/trace-engine", - ] - } + extra_deps += [ "$fuchsia_sdk/pkg/trace-engine" ] } } @@ -245,16 +211,7 @@ library_for_all_configs("libdart_lib") { extra_nonproduct_deps = [ ":libprotozero" ] extra_deps = [] if (is_fuchsia) { - if (using_fuchsia_gn_sdk) { - extra_deps += [ "$fuchsia_sdk_root/pkg/trace-engine" ] - } else if (using_fuchsia_sdk) { - extra_deps += [ "$fuchsia_sdk_root/pkg:trace-engine" ] - } else { - extra_deps += [ - "//zircon/public/lib/fbl", - "//zircon/system/ulib/trace-engine", - ] - } + extra_deps += [ "$fuchsia_sdk/pkg/trace-engine" ] } include_dirs = [ ".." ] allsources = async_runtime_cc_files + core_runtime_cc_files +