@@ -32,9 +32,14 @@ v8_toolset_for_d8 = "host"
3232# TODO(GYP ): For now we only support 32-bit little-endian target builds from an
3333# x64 Linux host. Eventually we need to support all of the host/target
3434# configurations v8 runs on.
35- if (host_cpu == " x64" && host_os == " linux" &&
36- (target_cpu == " arm" || target_cpu == " mipsel" || target_cpu == " x86" )) {
37- snapshot_toolchain = " //build/toolchain/linux:clang_x86"
35+ if (host_cpu == " x64" && host_os == " linux" ) {
36+ if (target_cpu == " arm" || target_cpu == " mipsel" || target_cpu == " x86" ) {
37+ snapshot_toolchain = " //build/toolchain/linux:clang_x86"
38+ } else if (target_cpu == " x64" ) {
39+ snapshot_toolchain = " //build/toolchain/linux:clang_x64"
40+ } else {
41+ assert (false , " Need environment for this arch" )
42+ }
3843} else {
3944 snapshot_toolchain = default_toolchain
4045}
@@ -196,6 +201,8 @@ action("js2c") {
196201 inputs = [ " tools/jsmin.py" ]
197202
198203 sources = [
204+ " src/macros.py" ,
205+ " src/messages.h" ,
199206 " src/runtime.js" ,
200207 " src/v8natives.js" ,
201208 " src/symbol.js" ,
@@ -222,7 +229,6 @@ action("js2c") {
222229 " src/mirror-debugger.js" ,
223230 " src/liveedit-debugger.js" ,
224231 " src/templates.js" ,
225- " src/macros.py" ,
226232 ]
227233
228234 outputs = [
@@ -258,14 +264,17 @@ action("js2c_experimental") {
258264
259265 sources = [
260266 " src/macros.py" ,
267+ " src/messages.h" ,
261268 " src/proxy.js" ,
262269 " src/generator.js" ,
263270 " src/harmony-array.js" ,
264271 " src/harmony-array-includes.js" ,
265272 " src/harmony-typedarray.js" ,
266273 " src/harmony-tostring.js" ,
267274 " src/harmony-regexp.js" ,
268- " src/harmony-reflect.js"
275+ " src/harmony-reflect.js" ,
276+ " src/harmony-spread.js" ,
277+ " src/harmony-object.js"
269278 ]
270279
271280 outputs = [
@@ -287,6 +296,36 @@ action("js2c_experimental") {
287296 }
288297}
289298
299+ action (" js2c_extras" ) {
300+ visibility = [ " :*" ] # Only targets in this file can depend on this.
301+
302+ script = " tools/js2c.py"
303+
304+ # The script depends on this other script, this rule causes a rebuild if it
305+ # changes.
306+ inputs = [ " tools/jsmin.py" ]
307+
308+ sources = v8_extra_library_files
309+
310+ outputs = [
311+ " $target_gen_dir /extras-libraries.cc" ,
312+ ]
313+
314+ args = [
315+ rebase_path (" $target_gen_dir /extras-libraries.cc" ,
316+ root_build_dir ),
317+ " EXTRAS" ,
318+ ] + rebase_path (sources , root_build_dir )
319+
320+ if (v8_use_external_startup_data ) {
321+ outputs += [ " $target_gen_dir /libraries_extras.bin" ]
322+ args += [
323+ " --startup_blob" ,
324+ rebase_path (" $target_gen_dir /libraries_extras.bin" , root_build_dir ),
325+ ]
326+ }
327+ }
328+
290329action (" d8_js2c" ) {
291330 visibility = [ " :*" ] # Only targets in this file can depend on this.
292331
@@ -312,11 +351,13 @@ if (v8_use_external_startup_data) {
312351 deps = [
313352 " :js2c" ,
314353 " :js2c_experimental" ,
354+ " :js2c_extras" ,
315355 ]
316356
317357 sources = [
318358 " $target_gen_dir /libraries.bin" ,
319359 " $target_gen_dir /libraries_experimental.bin" ,
360+ " $target_gen_dir /libraries_extras.bin" ,
320361 ]
321362
322363 outputs = [
@@ -330,7 +371,12 @@ if (v8_use_external_startup_data) {
330371}
331372
332373action (" postmortem-metadata" ) {
333- visibility = [ " :*" ] # Only targets in this file can depend on this.
374+ # Only targets in this file and the top-level visibility target can
375+ # depend on this.
376+ visibility = [
377+ " :*" ,
378+ " //:gn_visibility" ,
379+ ]
334380
335381 script = " tools/gen-postmortem-metadata.py"
336382
@@ -396,12 +442,14 @@ source_set("v8_nosnapshot") {
396442 deps = [
397443 " :js2c" ,
398444 " :js2c_experimental" ,
445+ " :js2c_extras" ,
399446 " :v8_base" ,
400447 ]
401448
402449 sources = [
403450 " $target_gen_dir /libraries.cc" ,
404451 " $target_gen_dir /experimental-libraries.cc" ,
452+ " $target_gen_dir /extras-libraries.cc" ,
405453 " src/snapshot/snapshot-empty.cc" ,
406454 ]
407455
@@ -415,18 +463,25 @@ source_set("v8_nosnapshot") {
415463}
416464
417465source_set (" v8_snapshot" ) {
418- visibility = [ " :*" ] # Only targets in this file can depend on this.
466+ # Only targets in this file and the top-level visibility target can
467+ # depend on this.
468+ visibility = [
469+ " :*" ,
470+ " //:gn_visibility" ,
471+ ]
419472
420473 deps = [
421474 " :js2c" ,
422475 " :js2c_experimental" ,
476+ " :js2c_extras" ,
423477 " :run_mksnapshot" ,
424478 " :v8_base" ,
425479 ]
426480
427481 sources = [
428482 " $target_gen_dir /libraries.cc" ,
429483 " $target_gen_dir /experimental-libraries.cc" ,
484+ " $target_gen_dir /extras-libraries.cc" ,
430485 " $target_gen_dir /snapshot.cc" ,
431486 ]
432487
@@ -446,6 +501,7 @@ if (v8_use_external_startup_data) {
446501 deps = [
447502 " :js2c" ,
448503 " :js2c_experimental" ,
504+ " :js2c_extras" ,
449505 " :run_mksnapshot" ,
450506 " :v8_base" ,
451507 " :natives_blob" ,
@@ -530,6 +586,8 @@ source_set("v8_base") {
530586 " src/codegen.h" ,
531587 " src/compilation-cache.cc" ,
532588 " src/compilation-cache.h" ,
589+ " src/compilation-dependencies.cc" ,
590+ " src/compilation-dependencies.h" ,
533591 " src/compilation-statistics.cc" ,
534592 " src/compilation-statistics.h" ,
535593 " src/compiler/access-builder.cc" ,
@@ -555,13 +613,18 @@ source_set("v8_base") {
555613 " src/compiler/common-operator.h" ,
556614 " src/compiler/control-builders.cc" ,
557615 " src/compiler/control-builders.h" ,
616+ " src/compiler/control-equivalence.cc" ,
558617 " src/compiler/control-equivalence.h" ,
559618 " src/compiler/control-flow-optimizer.cc" ,
560619 " src/compiler/control-flow-optimizer.h" ,
561620 " src/compiler/control-reducer.cc" ,
562621 " src/compiler/control-reducer.h" ,
563622 " src/compiler/diamond.h" ,
564623 " src/compiler/frame.h" ,
624+ " src/compiler/frame-elider.cc" ,
625+ " src/compiler/frame-elider.h" ,
626+ " src/compiler/frame-states.cc" ,
627+ " src/compiler/frame-states.h" ,
565628 " src/compiler/gap-resolver.cc" ,
566629 " src/compiler/gap-resolver.h" ,
567630 " src/compiler/graph-builder.h" ,
@@ -665,6 +728,8 @@ source_set("v8_base") {
665728 " src/compiler/source-position.h" ,
666729 " src/compiler/state-values-utils.cc" ,
667730 " src/compiler/state-values-utils.h" ,
731+ " src/compiler/tail-call-optimization.cc" ,
732+ " src/compiler/tail-call-optimization.h" ,
668733 " src/compiler/typer.cc" ,
669734 " src/compiler/typer.h" ,
670735 " src/compiler/value-numbering-reducer.cc" ,
@@ -758,6 +823,8 @@ source_set("v8_base") {
758823 " src/heap/heap-inl.h" ,
759824 " src/heap/heap.cc" ,
760825 " src/heap/heap.h" ,
826+ " src/heap/identity-map.cc" ,
827+ " src/heap/identity-map.h" ,
761828 " src/heap/incremental-marking.cc" ,
762829 " src/heap/incremental-marking.h" ,
763830 " src/heap/mark-compact-inl.h" ,
@@ -887,8 +954,8 @@ source_set("v8_base") {
887954 " src/objects-printer.cc" ,
888955 " src/objects.cc" ,
889956 " src/objects.h" ,
890- " src/optimizing-compiler-thread .cc" ,
891- " src/optimizing-compiler-thread .h" ,
957+ " src/optimizing-compile-dispatcher .cc" ,
958+ " src/optimizing-compile-dispatcher .h" ,
892959 " src/ostreams.cc" ,
893960 " src/ostreams.h" ,
894961 " src/parser.cc" ,
@@ -964,6 +1031,7 @@ source_set("v8_base") {
9641031 " src/scopeinfo.h" ,
9651032 " src/scopes.cc" ,
9661033 " src/scopes.h" ,
1034+ " src/signature.h" ,
9671035 " src/small-pointer-list.h" ,
9681036 " src/smart-pointers.h" ,
9691037 " src/snapshot/natives.h" ,
@@ -1006,7 +1074,6 @@ source_set("v8_base") {
10061074 " src/unicode-decoder.cc" ,
10071075 " src/unicode-decoder.h" ,
10081076 " src/unique.h" ,
1009- " src/utils-inl.h" ,
10101077 " src/utils.cc" ,
10111078 " src/utils.h" ,
10121079 " src/v8.cc" ,
@@ -1325,6 +1392,7 @@ source_set("v8_libbase") {
13251392 visibility = [ " :*" ] # Only targets in this file can depend on this.
13261393
13271394 sources = [
1395+ " src/base/adapters.h" ,
13281396 " src/base/atomicops.h" ,
13291397 " src/base/atomicops_internals_arm64_gcc.h" ,
13301398 " src/base/atomicops_internals_arm_gcc.h" ,
@@ -1398,17 +1466,15 @@ source_set("v8_libbase") {
13981466 } else if (is_android ) {
13991467 defines += [ " CAN_USE_VFP_INSTRUCTIONS" ]
14001468
1401- if (host_os == " mac" ) {
1402- if (current_toolchain == host_toolchain ) {
1469+ if (current_toolchain == host_toolchain ) {
1470+ libs = [ " dl" , " rt" ]
1471+ if (host_os == " mac" ) {
14031472 sources += [ " src/base/platform/platform-macos.cc" ]
14041473 } else {
14051474 sources += [ " src/base/platform/platform-linux.cc" ]
14061475 }
14071476 } else {
14081477 sources += [ " src/base/platform/platform-linux.cc" ]
1409- if (current_toolchain == host_toolchain ) {
1410- defines += [ " V8_LIBRT_NOT_AVAILABLE" ]
1411- }
14121478 }
14131479 } else if (is_mac ) {
14141480 sources += [ " src/base/platform/platform-macos.cc" ]
@@ -1524,7 +1590,7 @@ if (component_mode == "shared_library") {
15241590 " :toolchain" ,
15251591 ]
15261592
1527- direct_dependent_configs = [ " :external_config" ]
1593+ public_configs = [ " :external_config" ]
15281594
15291595 libs = []
15301596 if (is_android && current_toolchain != host_toolchain ) {
@@ -1551,7 +1617,7 @@ if (component_mode == "shared_library") {
15511617 ]
15521618 }
15531619
1554- direct_dependent_configs = [ " :external_config" ]
1620+ public_configs = [ " :external_config" ]
15551621 }
15561622}
15571623
@@ -1568,7 +1634,10 @@ if ((current_toolchain == host_toolchain && v8_toolset_for_d8 == "host") ||
15681634 configs -= [ " //build/config/compiler:chromium_code" ]
15691635 configs += [ " //build/config/compiler:no_chromium_code" ]
15701636 configs += [
1571- " :internal_config" ,
1637+ # Note: don't use :internal_config here because this target will get
1638+ # the :external_config applied to it by virtue of depending on :v8, and
1639+ # you can't have both applied to the same target.
1640+ " :internal_config_base" ,
15721641 " :features" ,
15731642 " :toolchain" ,
15741643 ]
0 commit comments