diff --git a/BUILD.gn b/BUILD.gn index d86d84a0d05..349ad01b0ef 100644 --- a/BUILD.gn +++ b/BUILD.gn @@ -9,13 +9,149 @@ group("default") { ] } -group("runtime") { +group("most") { deps = [ - "//runtime/bin:dart", - "//runtime/bin:dart_bootstrap($host_toolchain)", - "//runtime/bin:run_vm_tests", - "//runtime/bin:process_test", - "//runtime/bin:test_extension", - "//runtime/bin:sample_extension", + ":analysis_server", + ":create_sdk", + ":dart2js", + ":dartanalyzer", + ":dartdevc", + ":runtime", + ":samples", + ] +} + +group("runtime") { + deps = [ + "runtime/bin:dart", + "runtime/bin:dart_bootstrap($host_toolchain)", + "runtime/bin:run_vm_tests", + "runtime/bin:process_test", + "runtime/bin:test_extension", + "runtime/bin:sample_extension", + ] +} + +group("runtime_precompiled") { + deps = [ + "runtime/bin:dart_precompiled_runtime", + "runtime/bin:dart_bootstrap($host_toolchain)", + ] +} + +group("runtime_and_noopt") { + deps = [ + "runtime/bin:dart", + "runtime/bin:dart_noopt", + "runtime/bin:dart_bootstrap($host_toolchain)", + "runtime/bin:run_vm_tests", + "runtime/bin:process_test", + "runtime/bin:test_extension", + "runtime/bin:sample_extension", + ] +} + + +action("create_sdk") { + deps = [ + "runtime/bin:dart", + "utils/analysis_server", + "utils/compiler:dart2js", + "utils/dartanalyzer:generate_dartanalyzer_snapshot", + "utils/dartanalyzer:generate_summary_spec", + "utils/dartanalyzer:generate_summary_strong", + "utils/dartdevc", + "utils/dartdoc", + "utils/dartfmt", + "utils/pub", + ] + + sdk_lib_files = exec_script("tools/list_files.py", + ["\\.dart\$", rebase_path("sdk/lib")], + "list lines") + + preamble_files = exec_script("tools/list_files.py", + ["", rebase_path("sdk/lib/_internal/js_runtime/lib/preambles")], + "list lines") + + sdk_bin_files = exec_script("tools/list_files.py", + ["", rebase_path("sdk/bin")], + "list lines") + + inputs = rebase_path(sdk_lib_files, "", "sdk/lib") + + rebase_path(preamble_files, "", "sdk/lib") + + rebase_path(sdk_bin_files, "", "sdk/bin") + [ + "sdk/lib/dart_client.platform", + "sdk/lib/dart_server.platform", + "sdk/lib/dart_shared.platform", + "$root_gen_dir/dart2js.dart.snapshot", + "$root_gen_dir/utils_wrapper.dart.snapshot", + "$root_gen_dir/pub.dart.snapshot", + "$root_gen_dir/dartanalyzer.dart.snapshot", + "$root_gen_dir/dartdevc.dart.snapshot", + "$root_gen_dir/dartfmt.dart.snapshot", + "$root_gen_dir/analysis_server.dart.snapshot", + "$root_gen_dir/dartdoc.dart.snapshot", + "$root_gen_dir/spec.sum", + "$root_gen_dir/strong.sum", + "tools/VERSION" + ] + + outputs = [ + "$root_out_dir/dart-sdk/README", + ] + + script = "tools/create_sdk.py" + args = [ + "--sdk_output_dir", + rebase_path("$root_out_dir/dart-sdk"), + "--snapshot_location", + rebase_path("$root_gen_dir"), + ] +} + + +group("dart2js") { + deps = [ + "utils/compiler:dart2js" + ] +} + +group("dartanalyzer") { + deps = [ + "utils/dartanalyzer" + ] +} + +group("dartdevc") { + deps = [ + "utils/dartdevc" + ] +} + +group("dartfmt") { + deps = [ + "utils/dartfmt" + ] +} + +group("analysis_server") { + deps = [ + "utils/analysis_server" + ] +} + +# This is the target that is built on the dart2js build bots. +# It must depend on anything that is required by the dart2js +# test suites. +group("dart2js_bot") { + deps = [ + ":create_sdk" + ] +} + +group("samples") { + deps = [ + "runtime/bin:sample_extension" ] } diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn index 7f7e42373cb..88c7c053ff0 100644 --- a/build/config/compiler/BUILD.gn +++ b/build/config/compiler/BUILD.gn @@ -697,7 +697,6 @@ if (is_win) { default_warning_flags += [ # Enables. "-Wendif-labels", # Weird old-style text after an #endif. - "-Werror", # Warnings as errors. # Disables. "-Wno-missing-field-initializers", # "struct foo f = {0};" @@ -763,6 +762,7 @@ config("chromium_code") { cflags = [ "-Wall", "-Wextra", + "-Werror", ] defines = [] diff --git a/pkg/BUILD.gn b/pkg/BUILD.gn new file mode 100644 index 00000000000..d8efcf8aa74 --- /dev/null +++ b/pkg/BUILD.gn @@ -0,0 +1,71 @@ +# Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file +# for details. All rights reserved. Use of this source code is governed by a +# BSD-style license that can be found in the LICENSE file. + +import("../utils/create_timestamp.gni") + +template("make_third_party_pkg_files_stamp") { + assert(defined(invoker.pattern), "Must define the file pattern") + assert(defined(invoker.id), "Must define the stamp file id") + path = rebase_path("../third_party/pkg") + if (defined(invoker.path)) { + path = invoker.path + } + id = invoker.id + create_timestamp_file(target_name) { + pattern = invoker.pattern + path = path + new_base = "//" + output = "$target_gen_dir/third_party_pkg_files_$id.stamp" + } +} + +make_third_party_pkg_files_stamp("make_third_party_pkg_files_0_stamp") { + pattern = "^(?!.*/test/).*(?