From ebf3c34fb91b4b61f5c32383a115214c516ab5b0 Mon Sep 17 00:00:00 2001 From: yangguo Date: Thu, 8 Jan 2015 05:21:52 -0800 Subject: [PATCH] Revert of Revert of Add d8 target to the GN build. (patchset #1 id:1 of https://codereview.chromium.org/838983002/) Reason for revert: Relanding because this is not actually blocking the roll. Original issue's description: > Revert of Add d8 target to the GN build. (patchset #2 id:40001 of https://codereview.chromium.org/834113005/) > > Reason for revert: > V8 roll fails due to this change. (see https://codereview.chromium.org/843673003/) > > Original issue's description: > > Add d8 target to the GN build. > > > > Also formats the rest of the file with "gn format". This accounts for all the changes except for the "d8" target additions. > > > > Committed: https://crrev.com/36383f08c1f692ea797d54a27d7c6b3d3d53b440 > > Cr-Commit-Position: refs/heads/master@{#25984} > > TBR=jochen@chromium.org,machenbach@chromium.org,brettw@chromium.org > NOTREECHECKS=true > NOTRY=true > > Committed: https://crrev.com/ef50fdfdb05e1a3a3822962f5235b804218a5f4e > Cr-Commit-Position: refs/heads/master@{#25985} TBR=jochen@chromium.org,machenbach@chromium.org,brettw@chromium.org NOTREECHECKS=true NOTRY=true Review URL: https://codereview.chromium.org/833563004 Cr-Commit-Position: refs/heads/master@{#25996} --- BUILD.gn | 328 +++++++++++++++++++++++++++++++++++++-------------------------- 1 file changed, 194 insertions(+), 134 deletions(-) diff --git a/BUILD.gn b/BUILD.gn index 62da990..5a8cfbc 100644 --- a/BUILD.gn +++ b/BUILD.gn @@ -22,7 +22,6 @@ v8_enable_extra_checks = is_debug v8_target_arch = cpu_arch v8_random_seed = "314159265" - ############################################################################### # Configurations # @@ -63,54 +62,34 @@ config("features") { defines = [] if (v8_enable_disassembler == true) { - defines += [ - "ENABLE_DISASSEMBLER", - ] + defines += [ "ENABLE_DISASSEMBLER" ] } if (v8_enable_gdbjit == true) { - defines += [ - "ENABLE_GDB_JIT_INTERFACE", - ] + defines += [ "ENABLE_GDB_JIT_INTERFACE" ] } if (v8_object_print == true) { - defines += [ - "OBJECT_PRINT", - ] + defines += [ "OBJECT_PRINT" ] } if (v8_enable_verify_heap == true) { - defines += [ - "VERIFY_HEAP", - ] + defines += [ "VERIFY_HEAP" ] } if (v8_interpreted_regexp == true) { - defines += [ - "V8_INTERPRETED_REGEXP", - ] + defines += [ "V8_INTERPRETED_REGEXP" ] } if (v8_deprecation_warnings == true) { - defines += [ - "V8_DEPRECATION_WARNINGS", - ] + defines += [ "V8_DEPRECATION_WARNINGS" ] } if (v8_enable_i18n_support == true) { - defines += [ - "V8_I18N_SUPPORT", - ] + defines += [ "V8_I18N_SUPPORT" ] } if (v8_enable_extra_checks == true) { - defines += [ - "ENABLE_EXTRA_CHECKS", - ] + defines += [ "ENABLE_EXTRA_CHECKS" ] } if (v8_enable_handle_zapping == true) { - defines += [ - "ENABLE_HANDLE_ZAPPING", - ] + defines += [ "ENABLE_HANDLE_ZAPPING" ] } if (v8_use_external_startup_data == true) { - defines += [ - "V8_USE_EXTERNAL_STARTUP_DATA", - ] + defines += [ "V8_USE_EXTERNAL_STARTUP_DATA" ] } } @@ -123,24 +102,16 @@ config("toolchain") { # TODO(jochen): Add support for arm, mips, mipsel. if (v8_target_arch == "arm64") { - defines += [ - "V8_TARGET_ARCH_ARM64", - ] + defines += [ "V8_TARGET_ARCH_ARM64" ] } if (v8_target_arch == "x86") { - defines += [ - "V8_TARGET_ARCH_IA32", - ] + defines += [ "V8_TARGET_ARCH_IA32" ] } if (v8_target_arch == "x64") { - defines += [ - "V8_TARGET_ARCH_X64", - ] + defines += [ "V8_TARGET_ARCH_X64" ] } if (is_win) { - defines += [ - "WIN32", - ] + defines += [ "WIN32" ] # TODO(jochen): Support v8_enable_prof. } @@ -203,7 +174,7 @@ action("js2c") { ] outputs = [ - "$target_gen_dir/libraries.cc" + "$target_gen_dir/libraries.cc", ] if (v8_enable_i18n_support) { @@ -211,19 +182,36 @@ action("js2c") { } args = [ - rebase_path("$target_gen_dir/libraries.cc", root_build_dir), - "CORE", - ] + rebase_path(sources, root_build_dir) + rebase_path("$target_gen_dir/libraries.cc", root_build_dir), + "CORE", + ] + rebase_path(sources, root_build_dir) if (v8_use_external_startup_data) { outputs += [ "$target_gen_dir/libraries.bin" ] args += [ "--startup_blob", - rebase_path("$target_gen_dir/libraries.bin", root_build_dir) + rebase_path("$target_gen_dir/libraries.bin", root_build_dir), ] } } +action("d8_js2c") { + visibility = [ ":*" ] # Only targets in this file can depend on this. + + script = "tools/js2c.py" + + inputs = [ + "src/d8.js", + "src/macros.py", + ] + outputs = [ + "$target_gen_dir/d8-js.cc", + ] + + args = rebase_path(outputs, root_build_dir) + [ "D8" ] + + rebase_path(inputs, root_build_dir) +} + action("js2c_experimental") { visibility = [ ":*" ] # Only targets in this file can depend on this. @@ -244,23 +232,24 @@ action("js2c_experimental") { "src/harmony-classes.js", "src/harmony-tostring.js", "src/harmony-templates.js", - "src/harmony-regexp.js" + "src/harmony-regexp.js", ] outputs = [ - "$target_gen_dir/experimental-libraries.cc" + "$target_gen_dir/experimental-libraries.cc", ] args = [ - rebase_path("$target_gen_dir/experimental-libraries.cc", root_build_dir), - "EXPERIMENTAL", - ] + rebase_path(sources, root_build_dir) + rebase_path("$target_gen_dir/experimental-libraries.cc", + root_build_dir), + "EXPERIMENTAL", + ] + rebase_path(sources, root_build_dir) if (v8_use_external_startup_data) { outputs += [ "$target_gen_dir/libraries_experimental.bin" ] args += [ "--startup_blob", - rebase_path("$target_gen_dir/libraries_experimental.bin", root_build_dir) + rebase_path("$target_gen_dir/libraries_experimental.bin", root_build_dir), ] } } @@ -271,16 +260,16 @@ if (v8_use_external_startup_data) { deps = [ ":js2c", - ":js2c_experimental" + ":js2c_experimental", ] sources = [ "$target_gen_dir/libraries.bin", - "$target_gen_dir/libraries_experimental.bin" + "$target_gen_dir/libraries_experimental.bin", ] outputs = [ - "$root_out_dir/natives_blob.bin" + "$root_out_dir/natives_blob.bin", ] script = "tools/concatenate-files.py" @@ -300,23 +289,24 @@ action("postmortem-metadata") { ] outputs = [ - "$target_gen_dir/debug-support.cc" + "$target_gen_dir/debug-support.cc", ] - args = - rebase_path(outputs, root_build_dir) + - rebase_path(sources, root_build_dir) + args = rebase_path(outputs, root_build_dir) + + rebase_path(sources, root_build_dir) } action("run_mksnapshot") { visibility = [ ":*" ] # Only targets in this file can depend on this. - deps = [ ":mksnapshot($host_toolchain)" ] + deps = [ + ":mksnapshot($host_toolchain)", + ] script = "tools/run.py" outputs = [ - "$target_gen_dir/snapshot.cc" + "$target_gen_dir/snapshot.cc", ] args = [ @@ -324,24 +314,27 @@ action("run_mksnapshot") { "root_out_dir") + "/mksnapshot", root_build_dir), "--log-snapshot-positions", - "--logfile", rebase_path("$target_gen_dir/snapshot.log", root_build_dir), - rebase_path("$target_gen_dir/snapshot.cc", root_build_dir) + "--logfile", + rebase_path("$target_gen_dir/snapshot.log", root_build_dir), + rebase_path("$target_gen_dir/snapshot.cc", root_build_dir), ] if (v8_random_seed != "0") { - args += [ "--random-seed", v8_random_seed ] + args += [ + "--random-seed", + v8_random_seed, + ] } if (v8_use_external_startup_data) { outputs += [ "$root_out_dir/snapshot_blob.bin" ] args += [ "--startup_blob", - rebase_path("$root_out_dir/snapshot_blob.bin", root_build_dir) + rebase_path("$root_out_dir/snapshot_blob.bin", root_build_dir), ] } } - ############################################################################### # Source Sets (aka static libraries) # @@ -363,7 +356,11 @@ source_set("v8_nosnapshot") { configs -= [ "//build/config/compiler:chromium_code" ] configs += [ "//build/config/compiler:no_chromium_code" ] - configs += [ ":internal_config", ":features", ":toolchain" ] + configs += [ + ":internal_config", + ":features", + ":toolchain", + ] } source_set("v8_snapshot") { @@ -384,7 +381,11 @@ source_set("v8_snapshot") { configs -= [ "//build/config/compiler:chromium_code" ] configs += [ "//build/config/compiler:no_chromium_code" ] - configs += [ ":internal_config", ":features", ":toolchain" ] + configs += [ + ":internal_config", + ":features", + ":toolchain", + ] } if (v8_use_external_startup_data) { @@ -406,7 +407,11 @@ if (v8_use_external_startup_data) { configs -= [ "//build/config/compiler:chromium_code" ] configs += [ "//build/config/compiler:no_chromium_code" ] - configs += [ ":internal_config", ":features", ":toolchain" ] + configs += [ + ":internal_config", + ":features", + ":toolchain", + ] } } @@ -1211,7 +1216,11 @@ source_set("v8_base") { configs -= [ "//build/config/compiler:chromium_code" ] configs += [ "//build/config/compiler:no_chromium_code" ] - configs += [ ":internal_config", ":features", ":toolchain" ] + configs += [ + ":internal_config", + ":features", + ":toolchain", + ] if (!is_debug) { configs -= [ "//build/config/compiler:optimize" ] @@ -1219,7 +1228,9 @@ source_set("v8_base") { } defines = [] - deps = [ ":v8_libbase" ] + deps = [ + ":v8_libbase", + ] if (is_win) { # TODO(jschuh): crbug.com/167187 fix size_t to int truncations. @@ -1231,6 +1242,7 @@ source_set("v8_base") { if (is_win) { deps += [ "//third_party/icu:icudata" ] } + # TODO(jochen): Add support for icu_use_data_file_flag defines += [ "ICU_UTIL_DATA_IMPL=ICU_UTIL_DATA_FILE" ] } else { @@ -1299,7 +1311,11 @@ source_set("v8_libbase") { configs -= [ "//build/config/compiler:chromium_code" ] configs += [ "//build/config/compiler:no_chromium_code" ] - configs += [ ":internal_config_base", ":features", ":toolchain" ] + configs += [ + ":internal_config_base", + ":features", + ":toolchain", + ] if (!is_debug) { configs -= [ "//build/config/compiler:optimize" ] @@ -1309,15 +1325,11 @@ source_set("v8_libbase") { defines = [] if (is_posix) { - sources += [ - "src/base/platform/platform-posix.cc" - ] + sources += [ "src/base/platform/platform-posix.cc" ] } if (is_linux) { - sources += [ - "src/base/platform/platform-linux.cc" - ] + sources += [ "src/base/platform/platform-linux.cc" ] libs = [ "rt" ] } else if (is_android) { @@ -1346,7 +1358,10 @@ source_set("v8_libbase") { defines += [ "_CRT_RAND_S" ] # for rand_s() - libs = [ "winmm.lib", "ws2_32.lib" ] + libs = [ + "winmm.lib", + "ws2_32.lib", + ] } # TODO(jochen): Add support for qnx, freebsd, openbsd, netbsd, and solaris. @@ -1365,7 +1380,11 @@ source_set("v8_libplatform") { configs -= [ "//build/config/compiler:chromium_code" ] configs += [ "//build/config/compiler:no_chromium_code" ] - configs += [ ":internal_config_base", ":features", ":toolchain" ] + configs += [ + ":internal_config_base", + ":features", + ":toolchain", + ] if (!is_debug) { configs -= [ "//build/config/compiler:optimize" ] @@ -1391,7 +1410,11 @@ if (current_toolchain == host_toolchain) { configs -= [ "//build/config/compiler:chromium_code" ] configs += [ "//build/config/compiler:no_chromium_code" ] - configs += [ ":internal_config", ":features", ":toolchain" ] + configs += [ + ":internal_config", + ":features", + ":toolchain", + ] deps = [ ":v8_base", @@ -1400,71 +1423,108 @@ if (current_toolchain == host_toolchain) { "//build/config/sanitizers:deps", ] } -} - -############################################################################### -# Public targets -# - -if (component_mode == "shared_library") { - -component("v8") { - sources = [ - "src/v8dll-main.cc", - ] - if (v8_use_snapshot && v8_use_external_startup_data) { - deps = [ - ":v8_base", - ":v8_external_snapshot", + executable("d8") { + sources = [ + "src/d8.cc", ] - } else if (v8_use_snapshot) { deps = [ - ":v8_base", - ":v8_snapshot", + ":d8_js2c", + ":v8", + ":v8_libplatform", ] - } else { - assert(!v8_use_external_startup_data) - deps = [ - ":v8_base", - ":v8_nosnapshot", + + configs += [ + ":internal_config", + ":features", + ":toolchain", ] - } - configs -= [ "//build/config/compiler:chromium_code" ] - configs += [ "//build/config/compiler:no_chromium_code" ] - configs += [ ":internal_config", ":features", ":toolchain" ] + # TODO(GYP): Build option for readline support. - direct_dependent_configs = [ ":external_config" ] + if (is_posix) { + sources += [ "src/d8-posix.cc" ] + } else if (is_win) { + sources += [ "src/d8-windows.cc" ] + } - libs = [] - if (is_android && current_toolchain != host_toolchain) { - libs += [ "log" ] + if (component_mode != "shared_library") { + sources += [ + "src/d8-debug.cc", + "$target_gen_dir/d8-js.cc", + ] + } + if (v8_enable_i18n_support) { + deps += [ "//third_party/icu" ] + } + + # TODO(GYP) v8_enable_vtunejit support in d8. } } -} else { +############################################################################### +# Public targets +# -group("v8") { - if (v8_use_snapshot && v8_use_external_startup_data) { - deps = [ - ":v8_base", - ":v8_external_snapshot", - ] - } else if (v8_use_snapshot) { - deps = [ - ":v8_base", - ":v8_snapshot", +if (component_mode == "shared_library") { + component("v8") { + sources = [ + "src/v8dll-main.cc", ] - } else { - assert(!v8_use_external_startup_data) - deps = [ - ":v8_base", - ":v8_nosnapshot", + + if (v8_use_snapshot && v8_use_external_startup_data) { + deps = [ + ":v8_base", + ":v8_external_snapshot", + ] + } else if (v8_use_snapshot) { + deps = [ + ":v8_base", + ":v8_snapshot", + ] + } else { + assert(!v8_use_external_startup_data) + deps = [ + ":v8_base", + ":v8_nosnapshot", + ] + } + + configs -= [ "//build/config/compiler:chromium_code" ] + configs += [ "//build/config/compiler:no_chromium_code" ] + configs += [ + ":internal_config", + ":features", + ":toolchain", ] - } - direct_dependent_configs = [ ":external_config" ] -} + direct_dependent_configs = [ ":external_config" ] + libs = [] + if (is_android && current_toolchain != host_toolchain) { + libs += [ "log" ] + } + } +} else { + group("v8") { + if (v8_use_snapshot && v8_use_external_startup_data) { + deps = [ + ":v8_base", + ":v8_external_snapshot", + ] + } else if (v8_use_snapshot) { + deps = [ + ":v8_base", + ":v8_snapshot", + ] + } else { + assert(!v8_use_external_startup_data) + deps = [ + ":v8_base", + ":v8_nosnapshot", + ] + } + + direct_dependent_configs = [ ":external_config" ] + } } -- 2.7.4