blob: ccee7ff5e492f53045d1f615fca9d73226181b53 [file] [log] [blame]
Ben Murdoch4a90d5f2016-03-22 12:00:34 +00001# Copyright 2015 the V8 project authors. All rights reserved.
2# Redistribution and use in source and binary forms, with or without
3# modification, are permitted provided that the following conditions are
4# met:
5#
6# * Redistributions of source code must retain the above copyright
7# notice, this list of conditions and the following disclaimer.
8# * Redistributions in binary form must reproduce the above
9# copyright notice, this list of conditions and the following
10# disclaimer in the documentation and/or other materials provided
11# with the distribution.
12# * Neither the name of Google Inc. nor the names of its
13# contributors may be used to endorse or promote products derived
14# from this software without specific prior written permission.
15#
16# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
17# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
18# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
19# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
20# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
21# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
22# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
23# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
24# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
26# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27
Ben Murdoch61f157c2016-09-16 13:49:30 +010028declare_args() {
29 # The snapshot needs to be compiled for the host, but compiled with
30 # a toolchain that matches the bit-width of the target.
31 v8_snapshot_toolchain = ""
32}
Ben Murdoch4a90d5f2016-03-22 12:00:34 +000033
34# TODO(GYP): For now we only support 32-bit little-endian target builds from an
35# x64 Linux host. Eventually we need to support all of the host/target
36# configurations v8 runs on.
Ben Murdoch61f157c2016-09-16 13:49:30 +010037if (v8_snapshot_toolchain == "") {
38 if (host_cpu == "x64" && host_os == "linux") {
39 if (target_cpu == "arm" || target_cpu == "mipsel" || target_cpu == "x86") {
40 if (target_os == "android" || is_clang) {
41 v8_snapshot_toolchain = "//build/toolchain/linux:clang_x86"
42 } else if (target_os == "chromeos") {
43 # TODO(dpranke): crbug.com/608596: Remove this clause once the
44 # CrOS ebuilds are setting v8_snapshot_toolchain directly and
45 # we've cleaned up the sysroot settings in //build.
46 v8_snapshot_toolchain = "//build/toolchain/linux:clang_x86"
47 } else {
48 v8_snapshot_toolchain = "//build/toolchain/linux:x86"
49 }
50
51 } else if (target_cpu == "x64" || target_cpu == "arm64" ||
52 target_cpu == "mips64el") {
53 if (target_os == "android" || is_clang) {
54 v8_snapshot_toolchain = "//build/toolchain/linux:clang_x64"
55 } else if (target_os == "chromeos") {
56 # TODO(dpranke): crbug.com/608596: Remove this clause once the
57 # CrOS ebuilds are setting v8_snapshot_toolchain directly and
58 # we've cleaned up the sysroot settings in //build.
59 v8_snapshot_toolchain = "//build/toolchain/linux:clang_x64"
60 } else {
61 v8_snapshot_toolchain = "//build/toolchain/linux:x64"
62 }
63 } else {
64 assert(false, "Need environment for this arch: $target_cpu")
65 }
66 } else if (host_os == "mac" && target_os == "win") {
67 v8_snapshot_toolchain = "//build/toolchain/mac:clang_$target_cpu"
Ben Murdoch4a90d5f2016-03-22 12:00:34 +000068 } else {
Ben Murdoch61f157c2016-09-16 13:49:30 +010069 v8_snapshot_toolchain = default_toolchain
Ben Murdoch4a90d5f2016-03-22 12:00:34 +000070 }
Ben Murdoch4a90d5f2016-03-22 12:00:34 +000071}
72
Ben Murdoch61f157c2016-09-16 13:49:30 +010073# TODO(dpranke): snapshot_toolchain is provided for backwards compatibility
74# and should be removed once all callers are updated to refer to
75# v8_snapshot_toolchain directly.
76snapshot_toolchain = v8_snapshot_toolchain