v8/test/cctest/BUILD.gn
dpranke 6c3aaae969 Land v8-side changes to switch to v8_current_cpu in the GN build.
This change makes  the architecture that we target generated
v8 code for a property of the current toolchain, rather than a
global setting that applies to every toolchain.

This will allow us to properly build two snapshots for two different
architectures in a single build, which is needed for android
webview/monochrome builds.

R=brettw@chromium.org, jochen@chromium.org, michaelbai@chromium.org
BUG=625383

Review-Url: https://codereview.chromium.org/2116913002
Cr-Commit-Position: refs/heads/master@{#37805}
2016-07-15 22:35:20 +00:00

168 lines
4.6 KiB
Plaintext

# Copyright 2016 The V8 project authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
# The sources are kept automatically in sync with cctest.gyp.
import("../../gni/v8.gni")
gypi_values = exec_script("//build/gypi_to_gn.py",
[ rebase_path("cctest.gyp") ],
"scope",
[ "cctest.gyp" ])
v8_executable("cctest") {
testonly = true
sources = [
"$target_gen_dir/resources.cc",
] + gypi_values.cctest_sources
if (v8_current_cpu == "arm") {
sources += gypi_values.cctest_sources_arm
} else if (v8_current_cpu == "arm64") {
sources += gypi_values.cctest_sources_arm64
} else if (v8_current_cpu == "x86") {
sources += gypi_values.cctest_sources_ia32
} else if (v8_current_cpu == "mips") {
sources += gypi_values.cctest_sources_mips
} else if (v8_current_cpu == "mipsel") {
sources += gypi_values.cctest_sources_mipsel
} else if (v8_current_cpu == "mips64") {
sources += gypi_values.cctest_sources_mips64
} else if (v8_current_cpu == "mips64el") {
sources += gypi_values.cctest_sources_mips64el
} else if (v8_current_cpu == "x64") {
sources += gypi_values.cctest_sources_x64
} else if (v8_current_cpu == "x87") {
sources += gypi_values.cctest_sources_x87
} else if (v8_current_cpu == "ppc" || v8_current_cpu == "ppc64") {
sources += gypi_values.cctest_sources_ppc
} else if (v8_current_cpu == "s390" || v8_current_cpu == "s390x") {
sources += gypi_values.cctest_sources_s390
}
if (is_linux) {
# TODO(machenbach): Translate 'or OS=="qnx"' from gyp.
sources += [ "test-platform-linux.cc" ]
} else if (is_win) {
sources += [ "test-platform-win32.cc" ]
# TODO(machenbach): Translate from gyp.
# "msvs_settings": {
# "VCCLCompilerTool": {
# # MSVS wants this for gay-{precision,shortest}.cc.
# "AdditionalOptions": ["/bigobj"],
# },
# },
}
configs = [
"../..:external_config",
"../..:internal_config_base",
]
# TODO(machenbach): Translate from gyp.
#['v8_current_cpu=="ppc" or v8_current_cpu=="ppc64" \
# or v8_current_cpu=="arm" or v8_current_cpu=="arm64" \
# or v8_current_cpu=="s390" or v8_current_cpu=="s390x"', {
# # disable fmadd/fmsub so that expected results match generated code in
# # RunFloat64MulAndFloat64Add1 and friends.
# 'cflags': ['-ffp-contract=off'],
#}],
# TODO(machenbach): Translate from gyp.
#["OS=="aix"", {
# "ldflags": [ "-Wl,-bbigtoc" ],
#}],
deps = [
":resources",
"../..:v8_libplatform",
"//build/config/sanitizers:deps",
"//build/win:default_exe_manifest",
]
if (is_component_build) {
# cctest can't be built against a shared library, so we
# need to depend on the underlying static target in that case.
deps += [ "../..:v8_maybe_snapshot" ]
} else {
deps += [ "../..:v8" ]
}
if (is_win) {
# This warning is benignly triggered by the U16 and U32 macros in
# bytecode-utils.h.
# C4309: 'static_cast': truncation of constant value
cflags = [ "/wd4309" ]
# Suppress warnings about importing locally defined symbols.
if (is_component_build) {
ldflags = [
"/ignore:4049",
"/ignore:4217",
]
}
}
}
action("resources") {
visibility = [ ":*" ] # Only targets in this file can depend on this.
script = "../../tools/js2c.py"
# The script depends on this other script, this rule causes a rebuild if it
# changes.
inputs = [
"../../tools/jsmin.py",
]
# NOSORT
sources = [
"../../tools/splaytree.js",
"../../tools/codemap.js",
"../../tools/csvparser.js",
"../../tools/consarray.js",
"../../tools/profile.js",
"../../tools/profile_view.js",
"../../tools/logreader.js",
"log-eq-of-logging-and-traversal.js",
]
outputs = [
"$target_gen_dir/resources.cc",
]
args = [
rebase_path("$target_gen_dir/resources.cc", root_build_dir),
"TEST",
]
args += rebase_path(sources, root_build_dir)
}
v8_executable("generate-bytecode-expectations") {
sources = [
"interpreter/bytecode-expectations-printer.cc",
"interpreter/bytecode-expectations-printer.h",
"interpreter/generate-bytecode-expectations.cc",
]
configs = [
"../..:external_config",
"../..:internal_config_base",
]
deps = [
"../..:v8_libplatform",
"//build/config/sanitizers:deps",
"//build/win:default_exe_manifest",
]
if (is_component_build) {
# Same as cctest, we need to depend on the underlying static target.
deps += [ "../..:v8_maybe_snapshot" ]
} else {
deps += [ "../..:v8" ]
}
}