[gyp] remove gyp files.

R=machenbach@chromium.org

Bug: v8:7335
Change-Id: Ied1101295fc9ee37fcc038b9aeb557229722df0b
Reviewed-on: https://chromium-review.googlesource.com/897566
Commit-Queue: Yang Guo <yangguo@chromium.org>
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#51185}
This commit is contained in:
Yang Guo 2018-02-08 20:21:52 +01:00 committed by Commit Bot
parent 922d14b4fe
commit 2c8663aa1a
39 changed files with 25 additions and 6779 deletions

2
.gitignore vendored
View File

@ -37,8 +37,6 @@
/base
/build
/buildtools
/gypfiles/.gold_plugin
/gypfiles/win_toolchain.json
/hydrogen.cfg
/obj
/out

8
DEPS
View File

@ -79,7 +79,6 @@ include_rules = [
# checkdeps.py shouldn't check for includes in these directories:
skip_child_includes = [
'build',
'gypfiles',
'third_party',
]
@ -334,13 +333,6 @@ hooks = [
'-s', 'v8/tools/mips_toolchain.tar.gz.sha1',
],
},
{
# A change to a .gyp, .gypi, or to GYP itself should run the generator.
'name': 'regyp_if_needed',
'pattern': '.',
'condition': 'build_for_node != True',
'action': ['python', 'v8/gypfiles/gyp_v8', '--running-as-hook'],
},
# Download and initialize "vpython" VirtualEnv environment packages.
{
'name': 'vpython_common',

475
Makefile
View File

@ -1,475 +0,0 @@
# Copyright 2012 the V8 project authors. All rights reserved.
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are
# met:
#
# * Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
# * Redistributions in binary form must reproduce the above
# copyright notice, this list of conditions and the following
# disclaimer in the documentation and/or other materials provided
# with the distribution.
# * Neither the name of Google Inc. nor the names of its
# contributors may be used to endorse or promote products derived
# from this software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
# Variable default definitions. Override them by exporting them in your shell.
OUTDIR ?= out
TESTJOBS ?=
GYPFLAGS ?=
TESTFLAGS ?=
ANDROID_NDK_HOST_ARCH ?=
ANDROID_V8 ?= /data/local/tmp/v8
$(warning Make (gyp) is deprecated. Please use GN instead.)
$(warning See https://github.com/v8/v8/wiki/Building-with-GN)
$(warning Or contact yangguo@chromium.org.)
$(error Expect the Makefile to be removed soon)
include tools/Makefile.tags
# Special build flags. Use them like this: "make library=shared"
# library=shared || component=shared_library
ifeq ($(library), shared)
GYPFLAGS += -Dcomponent=shared_library
endif
ifdef component
GYPFLAGS += -Dcomponent=$(component)
endif
# disassembler=on
ifeq ($(disassembler), on)
GYPFLAGS += -Dv8_enable_disassembler=1
endif
# objectprint=on
ifeq ($(objectprint), on)
GYPFLAGS += -Dv8_object_print=1
endif
# verifycsa=on
ifeq ($(verifycsa), on)
GYPFLAGS += -Dv8_enable_verify_csa=1
endif
# verifyheap=on
ifeq ($(verifyheap), on)
GYPFLAGS += -Dv8_enable_verify_heap=1
endif
# tracemaps=on
ifeq ($(tracemaps), on)
GYPFLAGS += -Dv8_trace_maps=1
endif
# concurrentmarking=on
ifeq ($(concurrentmarking), on)
GYPFLAGS += -Dv8_enable_concurrent_marking=1
endif
# backtrace=off
ifeq ($(backtrace), off)
GYPFLAGS += -Dv8_enable_backtrace=0
else
GYPFLAGS += -Dv8_enable_backtrace=1
endif
# verifypredictable=on
ifeq ($(verifypredictable), on)
GYPFLAGS += -Dv8_enable_verify_predictable=1
endif
# snapshot=off
ifeq ($(snapshot), off)
GYPFLAGS += -Dv8_use_snapshot='false'
endif
ifeq ($(snapshot), external)
GYPFLAGS += -Dv8_use_external_startup_data=1
endif
# extrachecks=on/off
ifeq ($(extrachecks), on)
GYPFLAGS += -Ddcheck_always_on=1 -Dv8_enable_handle_zapping=1
endif
ifeq ($(extrachecks), off)
GYPFLAGS += -Ddcheck_always_on=0 -Dv8_enable_handle_zapping=0
endif
# slowdchecks=on/off
ifeq ($(slowdchecks), on)
GYPFLAGS += -Dv8_enable_slow_dchecks=1
endif
ifeq ($(slowdchecks), off)
GYPFLAGS += -Dv8_enable_slow_dchecks=0
endif
# debugsymbols=on
ifeq ($(debugsymbols), on)
GYPFLAGS += -Drelease_extra_cflags=-ggdb3
endif
# gdbjit=on/off
ifeq ($(gdbjit), on)
GYPFLAGS += -Dv8_enable_gdbjit=1
endif
ifeq ($(gdbjit), off)
GYPFLAGS += -Dv8_enable_gdbjit=0
endif
# vtunejit=on
ifeq ($(vtunejit), on)
GYPFLAGS += -Dv8_enable_vtunejit=1
endif
# unalignedaccess=on
ifeq ($(unalignedaccess), on)
GYPFLAGS += -Dv8_can_use_unaligned_accesses=true
endif
# randomseed=12345, disable random seed via randomseed=0
ifdef randomseed
GYPFLAGS += -Dv8_random_seed=$(randomseed)
endif
# soname_version=1.2.3
ifdef soname_version
GYPFLAGS += -Dsoname_version=$(soname_version)
endif
# werror=no
ifeq ($(werror), no)
GYPFLAGS += -Dwerror=''
endif
# strictaliasing=off (workaround for GCC-4.5)
ifeq ($(strictaliasing), off)
GYPFLAGS += -Dv8_no_strict_aliasing=1
endif
# regexp=interpreted
ifeq ($(regexp), interpreted)
GYPFLAGS += -Dv8_interpreted_regexp=1
endif
# i18nsupport=off
ifeq ($(i18nsupport), off)
GYPFLAGS += -Dv8_enable_i18n_support=0
TESTFLAGS += --noi18n
endif
# deprecationwarnings=on
ifeq ($(deprecationwarnings), on)
GYPFLAGS += -Dv8_deprecation_warnings=1
endif
# vectorstores=on
ifeq ($(vectorstores), on)
GYPFLAGS += -Dv8_vector_stores=1
endif
# imminentdeprecationwarnings=on
ifeq ($(imminentdeprecationwarnings), on)
GYPFLAGS += -Dv8_imminent_deprecation_warnings=1
endif
# asan=on
ifeq ($(asan), on)
GYPFLAGS += -Dasan=1 -Dclang=1
TESTFLAGS += --asan
ifeq ($(lsan), on)
GYPFLAGS += -Dlsan=1
endif
endif
ifdef embedscript
GYPFLAGS += -Dembed_script=$(embedscript)
endif
ifdef warmupscript
GYPFLAGS += -Dwarmup_script=$(warmupscript)
endif
ifeq ($(goma), on)
GYPFLAGS += -Duse_goma=1
endif
# v8_os_page_size=0, when 0 or not specified use build OS page size
ifdef v8_os_page_size
ifneq ($(v8_os_page_size), 0)
ifneq ($(snapshot), off)
GYPFLAGS += -Dv8_os_page_size=$(v8_os_page_size)
endif
endif
endif
# arm specific flags.
# arm_version=<number | "default">
ifneq ($(strip $(arm_version)),)
GYPFLAGS += -Darm_version=$(arm_version)
else
# Deprecated (use arm_version instead): armv7=false/true
ifeq ($(armv7), false)
GYPFLAGS += -Darm_version=6
else
ifeq ($(armv7), true)
GYPFLAGS += -Darm_version=7
endif
endif
endif
# hardfp=on/off. Deprecated, use armfloatabi
ifeq ($(hardfp),on)
GYPFLAGS += -Darm_float_abi=hard
else
ifeq ($(hardfp),off)
GYPFLAGS += -Darm_float_abi=softfp
endif
endif
# fpu: armfpu=xxx
# xxx: vfp, vfpv3-d16, vfpv3, neon.
ifeq ($(armfpu),)
GYPFLAGS += -Darm_fpu=default
else
GYPFLAGS += -Darm_fpu=$(armfpu)
endif
# float abi: armfloatabi=softfp/hard
ifeq ($(armfloatabi),)
ifeq ($(hardfp),)
GYPFLAGS += -Darm_float_abi=default
endif
else
GYPFLAGS += -Darm_float_abi=$(armfloatabi)
endif
# armthumb=on/off
ifeq ($(armthumb), off)
GYPFLAGS += -Darm_thumb=0
else
ifeq ($(armthumb), on)
GYPFLAGS += -Darm_thumb=1
endif
endif
# arm_test_noprobe=on
# With this flag set, by default v8 will only use features implied
# by the compiler (no probe). This is done by modifying the default
# values of enable_armv7, enable_vfp3, enable_32dregs and enable_neon.
# Modifying these flags when launching v8 will enable the probing for
# the specified values.
ifeq ($(arm_test_noprobe), on)
GYPFLAGS += -Darm_test_noprobe=on
endif
# Do not omit the frame pointer, needed for profiling with perf
ifeq ($(no_omit_framepointer), on)
GYPFLAGS += -Drelease_extra_cflags=-fno-omit-frame-pointer
endif
ifdef android_ndk_root
GYPFLAGS += -Dandroid_ndk_root=$(android_ndk_root)
export ANDROID_NDK_ROOT = $(android_ndk_root)
endif
# ----------------- available targets: --------------------
# - any arch listed in ARCHES (see below)
# - any mode listed in MODES
# - every combination <arch>.<mode>, e.g. "ia32.release"
# - "native": current host's architecture, release mode
# - any of the above with .check appended, e.g. "ia32.release.check"
# - "android": cross-compile for Android/ARM
# - default (no target specified): build all DEFAULT_ARCHES and MODES
# - "check": build all targets and run all tests
# - "<arch>.clean" for any <arch> in ARCHES
# - "clean": clean all ARCHES
# ----------------- internal stuff ------------------------
# Architectures and modes to be compiled. Consider these to be internal
# variables, don't override them (use the targets instead).
ARCHES = ia32 x64 arm arm64 mips mipsel mips64 mips64el ppc ppc64 s390 s390x
ARCHES32 = ia32 arm mips mipsel ppc s390
DEFAULT_ARCHES = ia32 x64 arm
MODES = release debug optdebug
DEFAULT_MODES = release debug
ANDROID_ARCHES = android_ia32 android_x64 android_arm android_arm64 \
android_mipsel
# List of files that trigger Makefile regeneration:
GYPFILES = third_party/icu/icu.gypi third_party/icu/icu.gyp \
gypfiles/shim_headers.gypi gypfiles/features.gypi \
gypfiles/standalone.gypi \
gypfiles/toolchain.gypi gypfiles/all.gyp gypfiles/mac/asan.gyp \
gypfiles/cctest.gyp gypfiles/fuzzer.gyp \
gypfiles/unittests.gyp gypfiles/v8.gyp \
gypfiles/parser-shell.gyp gypfiles/gmock.gyp gypfiles/gtest.gyp \
gypfiles/samples.gyp gypfiles/v8vtune.gyp gypfiles/d8.gyp \
gypfiles/inspector-test.gyp gypfiles/mkgrokdump.gyp
# Generates all combinations of ARCHES and MODES, e.g. "ia32.release".
BUILDS = $(foreach mode,$(MODES),$(addsuffix .$(mode),$(ARCHES)))
ANDROID_BUILDS = $(foreach mode,$(MODES), \
$(addsuffix .$(mode),$(ANDROID_ARCHES)))
# Generates corresponding test targets, e.g. "ia32.release.check".
CHECKS = $(addsuffix .check,$(BUILDS))
QUICKCHECKS = $(addsuffix .quickcheck,$(BUILDS))
ANDROID_CHECKS = $(addsuffix .check,$(ANDROID_BUILDS))
# File where previously used GYPFLAGS are stored.
ENVFILE = $(OUTDIR)/environment
.PHONY: all check clean builddeps dependencies $(ENVFILE).new native \
qc quickcheck $(QUICKCHECKS) turbocheck \
$(addsuffix .quickcheck,$(MODES)) $(addsuffix .quickcheck,$(ARCHES)) \
$(ARCHES) $(MODES) $(BUILDS) $(CHECKS) $(addsuffix .clean,$(ARCHES)) \
$(addsuffix .check,$(MODES)) $(addsuffix .check,$(ARCHES)) \
$(ANDROID_ARCHES) $(ANDROID_BUILDS) $(ANDROID_CHECKS)
# Target definitions. "all" is the default.
all: $(DEFAULT_MODES)
# Special target for the buildbots to use. Depends on $(OUTDIR)/Makefile
# having been created before.
buildbot:
$(MAKE) -C "$(OUTDIR)" BUILDTYPE=$(BUILDTYPE) \
builddir="$(abspath $(OUTDIR))/$(BUILDTYPE)"
# Compile targets. MODES and ARCHES are convenience targets.
.SECONDEXPANSION:
$(MODES): $(addsuffix .$$@,$(DEFAULT_ARCHES))
$(ARCHES): $(addprefix $$@.,$(DEFAULT_MODES))
# Defines how to build a particular target (e.g. ia32.release).
$(BUILDS): $(OUTDIR)/Makefile.$$@
@$(MAKE) -C "$(OUTDIR)" -f Makefile.$@ \
BUILDTYPE=$(shell echo $(subst .,,$(suffix $@)) | \
python -c "print \
raw_input().replace('opt', '').capitalize()") \
builddir="$(shell pwd)/$(OUTDIR)/$@"
native: $(OUTDIR)/Makefile.native
@$(MAKE) -C "$(OUTDIR)" -f Makefile.native \
BUILDTYPE=Release \
builddir="$(shell pwd)/$(OUTDIR)/$@"
$(ANDROID_ARCHES): $(addprefix $$@.,$(MODES))
$(ANDROID_BUILDS): $(GYPFILES) $(ENVFILE) Makefile.android
@$(MAKE) -f Makefile.android $@ \
ARCH="$(basename $@)" \
MODE="$(subst .,,$(suffix $@))" \
OUTDIR="$(OUTDIR)" \
GYPFLAGS="$(GYPFLAGS)"
# Test targets.
check: all
@gypfiles/run-tests-legacy.py $(TESTJOBS) --outdir=$(OUTDIR) \
--arch=$(shell echo $(DEFAULT_ARCHES) | sed -e 's/ /,/g') \
$(TESTFLAGS)
$(addsuffix .check,$(MODES)): $$(basename $$@)
@gypfiles/run-tests-legacy.py $(TESTJOBS) --outdir=$(OUTDIR) \
--mode=$(basename $@) $(TESTFLAGS)
$(addsuffix .check,$(ARCHES)): $$(basename $$@)
@gypfiles/run-tests-legacy.py $(TESTJOBS) --outdir=$(OUTDIR) \
--arch=$(basename $@) $(TESTFLAGS)
$(CHECKS): $$(basename $$@)
@gypfiles/run-tests-legacy.py $(TESTJOBS) --outdir=$(OUTDIR) \
--arch-and-mode=$(basename $@) $(TESTFLAGS)
$(addsuffix .quickcheck,$(MODES)): $$(basename $$@)
@gypfiles/run-tests-legacy.py $(TESTJOBS) --outdir=$(OUTDIR) \
--mode=$(basename $@) $(TESTFLAGS) --quickcheck
$(addsuffix .quickcheck,$(ARCHES)): $$(basename $$@)
@gypfiles/run-tests-legacy.py $(TESTJOBS) --outdir=$(OUTDIR) \
--arch=$(basename $@) $(TESTFLAGS) --quickcheck
$(QUICKCHECKS): $$(basename $$@)
@gypfiles/run-tests-legacy.py $(TESTJOBS) --outdir=$(OUTDIR) \
--arch-and-mode=$(basename $@) $(TESTFLAGS) --quickcheck
$(addsuffix .sync, $(ANDROID_BUILDS)): $$(basename $$@)
@tools/android-sync.sh $(basename $@) $(OUTDIR) \
$(shell pwd) $(ANDROID_V8)
$(addsuffix .check, $(ANDROID_BUILDS)): $$(basename $$@).sync
@gypfiles/run-tests-legacy.py $(TESTJOBS) --outdir=$(OUTDIR) \
--arch-and-mode=$(basename $@) \
--timeout=600 \
--command-prefix="tools/android-run.py" $(TESTFLAGS)
$(addsuffix .check, $(ANDROID_ARCHES)): \
$(addprefix $$(basename $$@).,$(MODES)).check
native.check: native
@gypfiles/run-tests-legacy.py $(TESTJOBS) --outdir=$(OUTDIR)/native \
--arch-and-mode=. $(TESTFLAGS)
SUPERFASTTESTMODES = ia32.release
FASTTESTMODES = $(SUPERFASTTESTMODES),x64.release,ia32.optdebug,x64.optdebug,arm.optdebug,arm64.release
FASTCOMPILEMODES = $(FASTTESTMODES),arm64.optdebug
COMMA = ,
EMPTY =
SPACE = $(EMPTY) $(EMPTY)
quickcheck: $(subst $(COMMA),$(SPACE),$(FASTCOMPILEMODES))
gypfiles/run-tests-legacy.py $(TESTJOBS) --outdir=$(OUTDIR) \
--arch-and-mode=$(SUPERFASTTESTMODES) $(TESTFLAGS) --quickcheck \
--download-data mozilla webkit
gypfiles/run-tests-legacy.py $(TESTJOBS) --outdir=$(OUTDIR) \
--arch-and-mode=$(FASTTESTMODES) $(TESTFLAGS) --quickcheck
qc: quickcheck
turbocheck: $(subst $(COMMA),$(SPACE),$(FASTCOMPILEMODES))
gypfiles/run-tests-legacy.py $(TESTJOBS) --outdir=$(OUTDIR) \
--arch-and-mode=$(SUPERFASTTESTMODES) $(TESTFLAGS) \
--quickcheck --variants=turbofan --download-data mozilla webkit
gypfiles/run-tests-legacy.py $(TESTJOBS) --outdir=$(OUTDIR) \
--arch-and-mode=$(FASTTESTMODES) $(TESTFLAGS) \
--quickcheck --variants=turbofan
tc: turbocheck
# Clean targets. You can clean each architecture individually, or everything.
$(addsuffix .clean, $(ARCHES) $(ANDROID_ARCHES)):
rm -f $(OUTDIR)/Makefile.$(basename $@)*
rm -rf $(OUTDIR)/$(basename $@).release
rm -rf $(OUTDIR)/$(basename $@).debug
rm -rf $(OUTDIR)/$(basename $@).optdebug
find $(OUTDIR) -regex '.*\(host\|target\)\.$(basename $@).*\.mk' -delete
native.clean:
rm -f $(OUTDIR)/Makefile.native
rm -rf $(OUTDIR)/native
find $(OUTDIR) -regex '.*\(host\|target\)\.native\.mk' -delete
clean: $(addsuffix .clean, $(ARCHES) $(ANDROID_ARCHES)) native.clean
# GYP file generation targets.
OUT_MAKEFILES = $(addprefix $(OUTDIR)/Makefile.,$(BUILDS))
$(OUT_MAKEFILES): $(GYPFILES) $(ENVFILE)
$(eval CXX_TARGET_ARCH:=$(shell $(CXX) -v 2>&1 | grep ^Target: | \
cut -f 2 -d " " | cut -f 1 -d "-" ))
$(eval CXX_TARGET_ARCH:=$(subst aarch64,arm64,$(CXX_TARGET_ARCH)))
$(eval CXX_TARGET_ARCH:=$(subst x86_64,x64,$(CXX_TARGET_ARCH)))
$(eval CXX_TARGET_ARCH:=$(subst s390x,s390,$(CXX_TARGET_ARCH)))
$(eval CXX_TARGET_ARCH:=$(subst powerpc,ppc,$(CXX_TARGET_ARCH)))
$(eval CXX_TARGET_ARCH:=$(subst ppc64,ppc,$(CXX_TARGET_ARCH)))
$(eval CXX_TARGET_ARCH:=$(subst ppcle,ppc,$(CXX_TARGET_ARCH)))
$(eval V8_TARGET_ARCH:=$(subst .,,$(suffix $(basename $@))))
PYTHONPATH="$(shell pwd)/tools/generate_shim_headers:$(shell pwd)/gypfiles:$(PYTHONPATH):$(shell pwd)/tools/gyp/pylib:$(PYTHONPATH)" \
GYP_GENERATORS=make \
tools/gyp/gyp --generator-output="$(OUTDIR)" gypfiles/all.gyp \
-Igypfiles/standalone.gypi --depth=. \
-Dv8_target_arch=$(V8_TARGET_ARCH) \
$(if $(findstring $(CXX_TARGET_ARCH),$(V8_TARGET_ARCH)), \
-Dtarget_arch=$(V8_TARGET_ARCH), \
$(if $(shell echo $(ARCHES32) | grep $(V8_TARGET_ARCH)), \
-Dtarget_arch=ia32,)) \
$(if $(findstring optdebug,$@),-Dv8_optimized_debug=1,) \
-S$(suffix $(basename $@))$(suffix $@) $(GYPFLAGS)
$(OUTDIR)/Makefile.native: $(GYPFILES) $(ENVFILE)
PYTHONPATH="$(shell pwd)/tools/generate_shim_headers:$(shell pwd)/gypfiles:$(PYTHONPATH):$(shell pwd)/tools/gyp/pylib:$(PYTHONPATH)" \
GYP_GENERATORS=make \
tools/gyp/gyp --generator-output="$(OUTDIR)" gypfiles/all.gyp \
-Igypfiles/standalone.gypi --depth=. -S.native $(GYPFLAGS)
# Replaces the old with the new environment file if they're different, which
# will trigger GYP to regenerate Makefiles.
$(ENVFILE): $(ENVFILE).new
@if test -r $(ENVFILE) && cmp $(ENVFILE).new $(ENVFILE) > /dev/null; \
then rm $(ENVFILE).new; \
else mv $(ENVFILE).new $(ENVFILE); fi
# Stores current GYPFLAGS in a file.
$(ENVFILE).new:
$(eval CXX_TARGET_ARCH:=$(shell $(CXX) -v 2>&1 | grep ^Target: | \
cut -f 2 -d " " | cut -f 1 -d "-" ))
$(eval CXX_TARGET_ARCH:=$(subst aarch64,arm64,$(CXX_TARGET_ARCH)))
$(eval CXX_TARGET_ARCH:=$(subst x86_64,x64,$(CXX_TARGET_ARCH)))
@mkdir -p $(OUTDIR); echo "GYPFLAGS=$(GYPFLAGS) -Dtarget_arch=$(CXX_TARGET_ARCH)" > $(ENVFILE).new;
dependencies builddeps:
$(error Use 'gclient sync' instead)

View File

@ -1,72 +0,0 @@
# Copyright 2012 the V8 project authors. All rights reserved.
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are
# met:
#
# * Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
# * Redistributions in binary form must reproduce the above
# copyright notice, this list of conditions and the following
# disclaimer in the documentation and/or other materials provided
# with the distribution.
# * Neither the name of Google Inc. nor the names of its
# contributors may be used to endorse or promote products derived
# from this software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
# Those definitions should be consistent with the main Makefile
ANDROID_ARCHES = android_ia32 android_x64 android_arm android_arm64 \
android_mipsel android_x87
MODES = release debug
# Generates all combinations of ANDROID ARCHES and MODES,
# e.g. "android_ia32.release" or "android_arm.release"
ANDROID_BUILDS = $(foreach mode,$(MODES), \
$(addsuffix .$(mode),$(ANDROID_ARCHES)))
ifeq ($(ARCH), android_arm)
DEFINES = target_arch=arm v8_target_arch=arm
else ifeq ($(ARCH), android_arm64)
DEFINES = target_arch=arm64 v8_target_arch=arm64
else ifeq ($(ARCH), android_mipsel)
DEFINES = target_arch=mipsel v8_target_arch=mipsel
else ifeq ($(ARCH), android_ia32)
DEFINES = target_arch=ia32 v8_target_arch=ia32
else ifeq ($(ARCH), android_x64)
DEFINES = target_arch=x64 v8_target_arch=x64
else ifeq ($(ARCH), android_x87)
DEFINES = target_arch=ia32 v8_target_arch=x87
else
$(error Target architecture "${ARCH}" is not supported)
endif
# Common flags.
DEFINES += OS=android
.SECONDEXPANSION:
$(ANDROID_BUILDS): $(OUTDIR)/Makefile.$$@
@$(MAKE) -C "$(OUTDIR)" -f Makefile.$@ \
BUILDTYPE=$(shell echo $(subst .,,$(suffix $@)) | \
python -c "print raw_input().capitalize()") \
builddir="$(shell pwd)/$(OUTDIR)/$@"
# Android GYP file generation targets.
ANDROID_MAKEFILES = $(addprefix $(OUTDIR)/Makefile.,$(ANDROID_BUILDS))
$(ANDROID_MAKEFILES):
GYP_GENERATORS=make-android \
GYP_DEFINES="${DEFINES}" \
PYTHONPATH="$(shell pwd)/tools/generate_shim_headers:$(shell pwd)/gypfiles:$(PYTHONPATH)" \
tools/gyp/gyp --generator-output="${OUTDIR}" gypfiles/all.gyp \
-Igypfiles/standalone.gypi --depth=. \
-S$(suffix $(basename $@))$(suffix $@) ${GYPFLAGS}

View File

@ -286,39 +286,6 @@ def _CheckNoProductionCodeUsingTestOnlyFunctions(input_api, output_api):
return []
def _CheckMissingFiles(input_api, output_api):
"""Runs verify_source_deps.py to ensure no files were added that are not in
GN.
"""
# We need to wait until we have an input_api object and use this
# roundabout construct to import checkdeps because this file is
# eval-ed and thus doesn't have __file__.
original_sys_path = sys.path
try:
sys.path = [input_api.os_path.join(input_api.PresubmitLocalPath(),
'gypfiles')] + sys.path
from verify_source_deps import missing_gn_files, missing_gyp_files
finally:
# Restore sys.path to what it was before.
sys.path = original_sys_path
gn_files = missing_gn_files()
gyp_files = missing_gyp_files()
results = []
if gn_files:
results.append(output_api.PresubmitError(
"You added one or more source files but didn't update the\n"
"corresponding BUILD.gn files:\n",
gn_files))
if gyp_files:
results.append(output_api.PresubmitError(
"You added one or more source files but didn't update the\n"
"corresponding gyp files:\n",
gyp_files))
return results
def _CommonChecks(input_api, output_api):
"""Checks common to both upload and commit."""
results = []
@ -334,7 +301,6 @@ def _CommonChecks(input_api, output_api):
results.extend(_CheckHeadersHaveIncludeGuards(input_api, output_api))
results.extend(
_CheckNoInlineHeaderIncludesInNormalHeaders(input_api, output_api))
results.extend(_CheckMissingFiles(input_api, output_api))
results.extend(_CheckJSONFiles(input_api, output_api))
results.extend(_CheckMacroUndefs(input_api, output_api))
results.extend(input_api.RunTests(

View File

@ -64,9 +64,6 @@
'merges': {
'filepath': '.',
},
'gypfiles': {
'filepath': 'gypfiles/',
},
'inspector': {
'filepath': 'inspector',
},
@ -116,9 +113,6 @@
# Only enabled on branches created with tools/release/create_release.py
# 'v8-merges@googlegroups.com',
],
'gypfiles': [
'machenbach@chromium.org',
],
'inspector': [
'devtools-reviews@chromium.org',
],

View File

@ -1 +0,0 @@
machenbach@chromium.org

View File

@ -1,9 +0,0 @@
For build instructions, please refer to:
https://code.google.com/p/v8/wiki/BuildingWithGYP
TL;DR version on *nix:
$ make dependencies # Only needed once.
$ make ia32.release -j8
$ make ia32.release.check # Optionally: run tests.

View File

@ -1,33 +0,0 @@
# Copyright 2011 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.
{
'targets': [
{
'target_name': 'All',
'type': 'none',
'dependencies': [
'd8.gyp:d8',
'inspector-test.gyp:*',
'mkgrokdump.gyp:*',
],
'conditions': [
['component!="shared_library"', {
'dependencies': [
'parser-shell.gyp:parser-shell',
],
}],
# These items don't compile for Android on Mac.
['host_os!="mac" or OS!="android"', {
'dependencies': [
'samples.gyp:*',
'cctest.gyp:*',
'fuzzer.gyp:*',
'unittests.gyp:*',
],
}],
]
}
]
}

View File

@ -1,468 +0,0 @@
# Copyright 2012 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.
{
'variables': {
'v8_code': 1,
'generated_file': '<(SHARED_INTERMEDIATE_DIR)/resources.cc',
'cctest_sources': [
'../test/cctest/compiler/c-signature.h',
'../test/cctest/compiler/call-tester.h',
'../test/cctest/compiler/codegen-tester.cc',
'../test/cctest/compiler/codegen-tester.h',
'../test/cctest/compiler/code-assembler-tester.h',
'../test/cctest/compiler/function-tester.cc',
'../test/cctest/compiler/function-tester.h',
'../test/cctest/compiler/graph-builder-tester.h',
'../test/cctest/compiler/test-basic-block-profiler.cc',
'../test/cctest/compiler/test-branch-combine.cc',
'../test/cctest/compiler/test-run-unwinding-info.cc',
'../test/cctest/compiler/test-gap-resolver.cc',
'../test/cctest/compiler/test-graph-visualizer.cc',
'../test/cctest/compiler/test-code-generator.cc',
'../test/cctest/compiler/test-code-assembler.cc',
'../test/cctest/compiler/test-instruction.cc',
'../test/cctest/compiler/test-js-context-specialization.cc',
'../test/cctest/compiler/test-js-constant-cache.cc',
'../test/cctest/compiler/test-js-typed-lowering.cc',
'../test/cctest/compiler/test-jump-threading.cc',
'../test/cctest/compiler/test-linkage.cc',
'../test/cctest/compiler/test-loop-analysis.cc',
'../test/cctest/compiler/test-machine-operator-reducer.cc',
'../test/cctest/compiler/test-multiple-return.cc',
'../test/cctest/compiler/test-node.cc',
'../test/cctest/compiler/test-operator.cc',
'../test/cctest/compiler/test-representation-change.cc',
'../test/cctest/compiler/test-run-bytecode-graph-builder.cc',
'../test/cctest/compiler/test-run-calls-to-external-references.cc',
'../test/cctest/compiler/test-run-deopt.cc',
'../test/cctest/compiler/test-run-intrinsics.cc',
'../test/cctest/compiler/test-run-jsbranches.cc',
'../test/cctest/compiler/test-run-jscalls.cc',
'../test/cctest/compiler/test-run-jsexceptions.cc',
'../test/cctest/compiler/test-run-jsobjects.cc',
'../test/cctest/compiler/test-run-jsops.cc',
'../test/cctest/compiler/test-run-load-store.cc',
'../test/cctest/compiler/test-run-machops.cc',
'../test/cctest/compiler/test-run-native-calls.cc',
'../test/cctest/compiler/test-run-retpoline.cc',
'../test/cctest/compiler/test-run-stackcheck.cc',
'../test/cctest/compiler/test-run-stubs.cc',
'../test/cctest/compiler/test-run-tail-calls.cc',
'../test/cctest/compiler/test-run-variables.cc',
'../test/cctest/compiler/test-run-wasm-machops.cc',
'../test/cctest/compiler/value-helper.cc',
'../test/cctest/compiler/value-helper.h',
'../test/cctest/cctest.cc',
'../test/cctest/cctest.h',
'../test/cctest/expression-type-collector-macros.h',
'../test/cctest/gay-fixed.cc',
'../test/cctest/gay-fixed.h',
'../test/cctest/gay-precision.cc',
'../test/cctest/gay-precision.h',
'../test/cctest/gay-shortest.cc',
'../test/cctest/gay-shortest.h',
'../test/cctest/heap/heap-tester.h',
'../test/cctest/heap/heap-utils.cc',
'../test/cctest/heap/heap-utils.h',
'../test/cctest/heap/test-alloc.cc',
'../test/cctest/heap/test-array-buffer-tracker.cc',
'../test/cctest/heap/test-compaction.cc',
'../test/cctest/heap/test-concurrent-marking.cc',
'../test/cctest/heap/test-embedder-tracing.cc',
'../test/cctest/heap/test-heap.cc',
'../test/cctest/heap/test-incremental-marking.cc',
'../test/cctest/heap/test-invalidated-slots.cc',
'../test/cctest/heap/test-lab.cc',
'../test/cctest/heap/test-mark-compact.cc',
'../test/cctest/heap/test-page-promotion.cc',
'../test/cctest/heap/test-spaces.cc',
'../test/cctest/interpreter/interpreter-tester.cc',
'../test/cctest/interpreter/interpreter-tester.h',
'../test/cctest/interpreter/source-position-matcher.cc',
'../test/cctest/interpreter/source-position-matcher.h',
'../test/cctest/interpreter/test-bytecode-generator.cc',
'../test/cctest/interpreter/test-interpreter.cc',
'../test/cctest/interpreter/test-interpreter-intrinsics.cc',
'../test/cctest/interpreter/test-source-positions.cc',
'../test/cctest/interpreter/bytecode-expectations-printer.cc',
'../test/cctest/interpreter/bytecode-expectations-printer.h',
'../test/cctest/libplatform/test-tracing.cc',
'../test/cctest/libsampler/test-sampler.cc',
'../test/cctest/parsing/test-parse-decision.cc',
'../test/cctest/parsing/test-preparser.cc',
'../test/cctest/parsing/test-scanner-streams.cc',
'../test/cctest/parsing/test-scanner.cc',
'../test/cctest/print-extension.cc',
'../test/cctest/print-extension.h',
'../test/cctest/profiler-extension.cc',
'../test/cctest/profiler-extension.h',
'../test/cctest/scope-test-helper.h',
'../test/cctest/setup-isolate-for-tests.cc',
'../test/cctest/setup-isolate-for-tests.h',
'../test/cctest/test-access-checks.cc',
'../test/cctest/test-accessor-assembler.cc',
'../test/cctest/test-accessors.cc',
'../test/cctest/test-allocation.cc',
'../test/cctest/test-api.cc',
'../test/cctest/test-api.h',
'../test/cctest/test-api-accessors.cc',
'../test/cctest/test-api-interceptors.cc',
'../test/cctest/test-array-list.cc',
'../test/cctest/test-atomicops.cc',
'../test/cctest/test-bignum.cc',
'../test/cctest/test-bignum-dtoa.cc',
'../test/cctest/test-bit-vector.cc',
'../test/cctest/test-circular-queue.cc',
'../test/cctest/test-code-layout.cc',
'../test/cctest/test-code-stub-assembler.cc',
'../test/cctest/test-compiler.cc',
'../test/cctest/test-constantpool.cc',
'../test/cctest/test-conversions.cc',
'../test/cctest/test-cpu-profiler.cc',
'../test/cctest/test-date.cc',
'../test/cctest/test-debug.cc',
'../test/cctest/test-decls.cc',
'../test/cctest/test-deoptimization.cc',
'../test/cctest/test-dictionary.cc',
'../test/cctest/test-diy-fp.cc',
'../test/cctest/test-double.cc',
'../test/cctest/test-dtoa.cc',
'../test/cctest/test-elements-kind.cc',
'../test/cctest/test-fast-dtoa.cc',
'../test/cctest/test-feedback-vector.cc',
'../test/cctest/test-feedback-vector.h',
'../test/cctest/test-field-type-tracking.cc',
'../test/cctest/test-fixed-dtoa.cc',
'../test/cctest/test-flags.cc',
'../test/cctest/test-func-name-inference.cc',
'../test/cctest/test-global-handles.cc',
'../test/cctest/test-global-object.cc',
'../test/cctest/test-hashcode.cc',
'../test/cctest/test-hashmap.cc',
'../test/cctest/test-heap-profiler.cc',
'../test/cctest/test-identity-map.cc',
'../test/cctest/test-intl.cc',
'../test/cctest/test-inobject-slack-tracking.cc',
'../test/cctest/test-isolate-independent-builtins.cc',
'../test/cctest/test-liveedit.cc',
'../test/cctest/test-lockers.cc',
'../test/cctest/test-log.cc',
'../test/cctest/test-managed.cc',
'../test/cctest/test-mementos.cc',
'../test/cctest/test-modules.cc',
'../test/cctest/test-object.cc',
'../test/cctest/test-orderedhashtable.cc',
'../test/cctest/test-parsing.cc',
'../test/cctest/test-platform.cc',
'../test/cctest/test-profile-generator.cc',
'../test/cctest/test-random-number-generator.cc',
'../test/cctest/test-regexp.cc',
'../test/cctest/test-representation.cc',
'../test/cctest/test-sampler-api.cc',
'../test/cctest/test-serialize.cc',
'../test/cctest/test-strings.cc',
'../test/cctest/test-symbols.cc',
'../test/cctest/test-strtod.cc',
'../test/cctest/test-thread-termination.cc',
'../test/cctest/test-threads.cc',
'../test/cctest/test-trace-event.cc',
'../test/cctest/test-traced-value.cc',
'../test/cctest/test-transitions.cc',
'../test/cctest/test-transitions.h',
'../test/cctest/test-typedarrays.cc',
'../test/cctest/test-types.cc',
'../test/cctest/test-unbound-queue.cc',
'../test/cctest/test-unboxed-doubles.cc',
'../test/cctest/test-unscopables-hidden-prototype.cc',
'../test/cctest/test-usecounters.cc',
'../test/cctest/test-utils.cc',
'../test/cctest/test-version.cc',
'../test/cctest/test-weakmaps.cc',
'../test/cctest/test-weaksets.cc',
'../test/cctest/trace-extension.cc',
'../test/cctest/trace-extension.h',
'../test/cctest/types-fuzz.h',
'../test/cctest/unicode-helpers.h',
'../test/cctest/wasm/test-c-wasm-entry.cc',
'../test/cctest/wasm/test-streaming-compilation.cc',
'../test/cctest/wasm/test-run-wasm.cc',
'../test/cctest/wasm/test-run-wasm-64.cc',
'../test/cctest/wasm/test-run-wasm-asmjs.cc',
'../test/cctest/wasm/test-run-wasm-atomics.cc',
'../test/cctest/wasm/test-run-wasm-interpreter.cc',
'../test/cctest/wasm/test-run-wasm-js.cc',
'../test/cctest/wasm/test-run-wasm-module.cc',
'../test/cctest/wasm/test-run-wasm-relocation.cc',
'../test/cctest/wasm/test-run-wasm-sign-extension.cc',
'../test/cctest/wasm/test-run-wasm-simd.cc',
'../test/cctest/wasm/test-wasm-breakpoints.cc',
"../test/cctest/wasm/test-wasm-codegen.cc",
'../test/cctest/wasm/test-wasm-interpreter-entry.cc',
'../test/cctest/wasm/test-wasm-stack.cc',
'../test/cctest/wasm/test-wasm-trap-position.cc',
'../test/cctest/wasm/wasm-run-utils.cc',
'../test/cctest/wasm/wasm-run-utils.h',
],
'cctest_sources_ia32': [
'../test/cctest/test-assembler-ia32.cc',
'../test/cctest/test-code-stubs.cc',
'../test/cctest/test-code-stubs.h',
'../test/cctest/test-code-stubs-ia32.cc',
'../test/cctest/test-disasm-ia32.cc',
'../test/cctest/test-log-stack-tracer.cc',
'../test/cctest/test-run-wasm-relocation-ia32.cc',
],
'cctest_sources_x64': [
'../test/cctest/test-assembler-x64.cc',
'../test/cctest/test-code-stubs.cc',
'../test/cctest/test-code-stubs.h',
'../test/cctest/test-code-stubs-x64.cc',
'../test/cctest/test-disasm-x64.cc',
'../test/cctest/test-macro-assembler-x64.cc',
'../test/cctest/test-log-stack-tracer.cc',
'../test/cctest/test-run-wasm-relocation-x64.cc',
],
'cctest_sources_arm': [
'../test/cctest/assembler-helper-arm.cc',
'../test/cctest/assembler-helper-arm.h',
'../test/cctest/test-assembler-arm.cc',
'../test/cctest/test-code-stubs.cc',
'../test/cctest/test-code-stubs.h',
'../test/cctest/test-code-stubs-arm.cc',
'../test/cctest/test-disasm-arm.cc',
'../test/cctest/test-macro-assembler-arm.cc',
'../test/cctest/test-run-wasm-relocation-arm.cc',
'../test/cctest/test-sync-primitives-arm.cc',
],
'cctest_sources_arm64': [
'../test/cctest/test-utils-arm64.cc',
'../test/cctest/test-utils-arm64.h',
'../test/cctest/test-assembler-arm64.cc',
'../test/cctest/test-code-stubs.cc',
'../test/cctest/test-code-stubs.h',
'../test/cctest/test-code-stubs-arm64.cc',
'../test/cctest/test-disasm-arm64.cc',
'../test/cctest/test-fuzz-arm64.cc',
'../test/cctest/test-javascript-arm64.cc',
'../test/cctest/test-js-arm64-variables.cc',
'../test/cctest/test-run-wasm-relocation-arm64.cc',
'../test/cctest/test-sync-primitives-arm64.cc',
],
'cctest_sources_s390': [
'../test/cctest/test-assembler-s390.cc',
'../test/cctest/test-code-stubs.cc',
'../test/cctest/test-code-stubs.h',
'../test/cctest/test-disasm-s390.cc',
],
'cctest_sources_ppc': [
'../test/cctest/test-assembler-ppc.cc',
'../test/cctest/test-code-stubs.cc',
'../test/cctest/test-code-stubs.h',
'../test/cctest/test-disasm-ppc.cc',
],
'cctest_sources_mips': [
'../test/cctest/test-assembler-mips.cc',
'../test/cctest/test-code-stubs.cc',
'../test/cctest/test-code-stubs.h',
'../test/cctest/test-code-stubs-mips.cc',
'../test/cctest/test-disasm-mips.cc',
'../test/cctest/test-macro-assembler-mips.cc',
],
'cctest_sources_mipsel': [
'../test/cctest/test-assembler-mips.cc',
'../test/cctest/test-code-stubs.cc',
'../test/cctest/test-code-stubs.h',
'../test/cctest/test-code-stubs-mips.cc',
'../test/cctest/test-disasm-mips.cc',
'../test/cctest/test-macro-assembler-mips.cc',
],
'cctest_sources_mips64': [
'../test/cctest/test-assembler-mips64.cc',
'../test/cctest/test-code-stubs.cc',
'../test/cctest/test-code-stubs.h',
'../test/cctest/test-code-stubs-mips64.cc',
'../test/cctest/test-disasm-mips64.cc',
'../test/cctest/test-macro-assembler-mips64.cc',
],
'cctest_sources_mips64el': [
'../test/cctest/test-assembler-mips64.cc',
'../test/cctest/test-code-stubs.cc',
'../test/cctest/test-code-stubs.h',
'../test/cctest/test-code-stubs-mips64.cc',
'../test/cctest/test-disasm-mips64.cc',
'../test/cctest/test-macro-assembler-mips64.cc',
],
},
'includes': ['toolchain.gypi', 'features.gypi'],
'targets': [
{
'target_name': 'cctest',
'type': 'executable',
'dependencies': [
'resources',
'v8.gyp:v8_libbase',
'v8.gyp:v8_libplatform',
],
'include_dirs': [
'..',
],
'sources': [
'../test/common/wasm/flag-utils.h',
'../test/common/wasm/test-signatures.h',
'../test/common/wasm/wasm-macro-gen.h',
'../test/common/wasm/wasm-module-runner.cc',
'../test/common/wasm/wasm-module-runner.h',
'<@(cctest_sources)',
'<(generated_file)',
],
'conditions': [
['v8_target_arch=="ia32"', {
'sources': [
'<@(cctest_sources_ia32)',
],
}],
['v8_target_arch=="x64"', {
'sources': [
'<@(cctest_sources_x64)',
],
}],
['v8_target_arch=="arm"', {
'sources': [
'<@(cctest_sources_arm)',
],
}],
['v8_target_arch=="arm64"', {
'sources': [
'<@(cctest_sources_arm64)',
],
}],
['v8_target_arch=="s390"', {
'sources': [
'<@(cctest_sources_s390)',
],
}],
['v8_target_arch=="s390x"', {
'sources': [
'<@(cctest_sources_s390)',
],
}],
['v8_target_arch=="ppc"', {
'sources': [
'<@(cctest_sources_ppc)',
],
}],
['v8_target_arch=="ppc64"', {
'sources': [
'<@(cctest_sources_ppc)',
],
}],
['v8_target_arch=="mips"', {
'sources': [
'<@(cctest_sources_mips)',
],
}],
['v8_target_arch=="mipsel"', {
'sources': [
'<@(cctest_sources_mipsel)',
],
}],
['v8_target_arch=="mips64"', {
'sources': [
'<@(cctest_sources_mips64)',
],
}],
['v8_target_arch=="mips64el"', {
'sources': [
'<@(cctest_sources_mips64el)',
],
}],
[ 'OS=="win"', {
'msvs_settings': {
'VCCLCompilerTool': {
# MSVS wants this for gay-{precision,shortest}.cc.
'AdditionalOptions': ['/bigobj'],
},
},
}],
['v8_target_arch=="ppc" or v8_target_arch=="ppc64" \
or v8_target_arch=="arm" or v8_target_arch=="arm64" \
or v8_target_arch=="s390" or v8_target_arch=="s390x" \
or v8_target_arch=="mips" or v8_target_arch=="mips64" \
or v8_target_arch=="mipsel" or v8_target_arch=="mips64el"', {
# disable fmadd/fmsub so that expected results match generated code in
# RunFloat64MulAndFloat64Add1 and friends.
'cflags': ['-ffp-contract=off'],
}],
['OS=="aix"', {
'ldflags': [ '-Wl,-bbigtoc' ],
}],
['component=="shared_library"', {
# cctest can't be built against a shared library, so we need to
# depend on the underlying static target in that case.
'dependencies': ['v8.gyp:v8_maybe_snapshot'],
'defines': [ 'BUILDING_V8_SHARED', ]
}, {
'dependencies': ['v8.gyp:v8'],
}],
['v8_use_snapshot=="true"', {
'dependencies': ['v8.gyp:v8_initializers'],
}],
],
},
{
'target_name': 'resources',
'type': 'none',
'variables': {
'file_list': [
'../tools/splaytree.js',
'../tools/codemap.js',
'../tools/csvparser.js',
'../tools/consarray.js',
'../tools/profile.js',
'../tools/profile_view.js',
'../tools/arguments.js',
'../tools/logreader.js',
'../test/cctest/log-eq-of-logging-and-traversal.js',
],
},
'actions': [
{
'action_name': 'js2c',
'inputs': [
'../tools/js2c.py',
'<@(file_list)',
],
'outputs': [
'<(generated_file)',
],
'action': [
'python',
'../tools/js2c.py',
'<@(_outputs)',
'TEST', # type
'<@(file_list)',
],
}
],
},
{
'target_name': 'generate-bytecode-expectations',
'type': 'executable',
'dependencies': [
'v8.gyp:v8',
'v8.gyp:v8_libbase',
'v8.gyp:v8_libplatform',
],
'include_dirs+': [
'..',
],
'sources': [
'../test/cctest/interpreter/bytecode-expectations-printer.cc',
'../test/cctest/interpreter/bytecode-expectations-printer.h',
'../test/cctest/interpreter/generate-bytecode-expectations.cc',
],
},
],
}

View File

@ -1,38 +0,0 @@
#!/usr/bin/env python
# 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.
# CC/CXX wrapper script that excludes certain file patterns from coverage
# instrumentation.
import re
import subprocess
import sys
exclusions = [
'buildtools',
'src/third_party',
'third_party',
'test',
'testing',
]
def remove_if_exists(string_list, item):
if item in string_list:
string_list.remove(item)
args = sys.argv[1:]
text = ' '.join(sys.argv[2:])
for exclusion in exclusions:
if re.search(r'\-o obj/%s[^ ]*\.o' % exclusion, text):
remove_if_exists(args, '-fprofile-arcs')
remove_if_exists(args, '-ftest-coverage')
remove_if_exists(args, '-fsanitize-coverage=func')
remove_if_exists(args, '-fsanitize-coverage=bb')
remove_if_exists(args, '-fsanitize-coverage=edge')
remove_if_exists(args, '-fsanitize-coverage=trace-pc-guard')
remove_if_exists(args, '-fsanitize-coverage=bb,trace-pc-guard')
break
sys.exit(subprocess.check_call(args))

View File

@ -1,119 +0,0 @@
# Copyright 2018 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.
{
'variables': {
'v8_code': 1,
# Enable support for Intel VTune. Supported on ia32/x64 only
'v8_enable_vtunejit%': 0,
'v8_enable_i18n_support%': 1,
},
'includes': ['toolchain.gypi', 'features.gypi'],
'targets': [
{
'target_name': 'd8',
'type': 'executable',
'dependencies': [
'v8.gyp:v8',
'v8.gyp:v8_libbase',
'v8.gyp:v8_libplatform',
],
# Generated source files need this explicitly:
'include_dirs+': [
'..',
'<(DEPTH)',
],
'sources': [
'../src/d8.h',
'../src/d8.cc',
'../src/d8-console.h',
'../src/d8-console.cc',
'<(SHARED_INTERMEDIATE_DIR)/d8-js.cc',
],
'conditions': [
[ 'want_separate_host_toolset==1', {
'toolsets': [ 'target', ],
'dependencies': [
'd8_js2c#host',
],
}, {
'dependencies': [
'd8_js2c',
],
}],
['(OS=="linux" or OS=="mac" or OS=="freebsd" or OS=="netbsd" \
or OS=="openbsd" or OS=="solaris" or OS=="android" \
or OS=="qnx" or OS=="aix")', {
'sources': [ '../src/d8-posix.cc', ]
}],
[ 'OS=="win"', {
'sources': [ '../src/d8-windows.cc', ]
}],
[ 'component!="shared_library"', {
'conditions': [
[ 'v8_postmortem_support=="true"', {
'xcode_settings': {
'OTHER_LDFLAGS': [
'-Wl,-force_load,<(PRODUCT_DIR)/libv8_base.a'
],
},
}],
],
}],
['v8_enable_vtunejit==1', {
'dependencies': [
'v8vtune.gyp:v8_vtune',
],
}],
['v8_enable_i18n_support==1', {
'dependencies': [
'<(icu_gyp_path):icui18n',
'<(icu_gyp_path):icuuc',
],
}],
['OS=="win" and v8_enable_i18n_support==1', {
'dependencies': [
'<(icu_gyp_path):icudata',
],
}],
],
},
{
'target_name': 'd8_js2c',
'type': 'none',
'variables': {
'js_files': [
'../src/d8.js',
'../src/js/macros.py',
],
},
'conditions': [
[ 'want_separate_host_toolset==1', {
'toolsets': ['host'],
}, {
'toolsets': ['target'],
}]
],
'actions': [
{
'action_name': 'd8_js2c',
'inputs': [
'../tools/js2c.py',
'<@(js_files)',
],
'outputs': [
'<(SHARED_INTERMEDIATE_DIR)/d8-js.cc',
],
'action': [
'python',
'../tools/js2c.py',
'<@(_outputs)',
'D8',
'<@(js_files)'
],
},
],
},
],
}

View File

@ -1,181 +0,0 @@
# Copyright 2013 the V8 project authors. All rights reserved.
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are
# met:
#
# * Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
# * Redistributions in binary form must reproduce the above
# copyright notice, this list of conditions and the following
# disclaimer in the documentation and/or other materials provided
# with the distribution.
# * Neither the name of Google Inc. nor the names of its
# contributors may be used to endorse or promote products derived
# from this software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
# Compile time controlled V8 features.
{
'variables': {
'variables': {
'v8_target_arch%': '<(target_arch)',
},
# Allows the embedder to add a custom suffix to the version string.
'v8_embedder_string%': '',
'v8_enable_disassembler%': 0,
'v8_promise_internal_field_count%': 0,
'v8_enable_gdbjit%': 0,
'v8_enable_verify_csa%': 0,
'v8_object_print%': 0,
'v8_enable_verify_heap%': 0,
'v8_trace_maps%': 0,
# Enable the snapshot feature, for fast context creation.
# http://v8project.blogspot.com/2015/09/custom-startup-snapshots.html
'v8_use_snapshot%': 'true',
'v8_enable_verify_predictable%': 0,
# With post mortem support enabled, metadata is embedded into libv8 that
# describes various parameters of the VM for use by debuggers. See
# tools/gen-postmortem-metadata.py for details.
'v8_postmortem_support%': 'false',
# Interpreted regexp engine exists as platform-independent alternative
# based where the regular expression is compiled to a bytecode.
'v8_interpreted_regexp%': 0,
# Enable ECMAScript Internationalization API. Enabling this feature will
# add a dependency on the ICU library.
'v8_enable_i18n_support%': 1,
# Enable compiler warnings when using V8_DEPRECATED apis.
'v8_deprecation_warnings%': 0,
# Enable compiler warnings when using V8_DEPRECATE_SOON apis.
'v8_imminent_deprecation_warnings%': 0,
# Set to 1 to enable DCHECKs in release builds.
'dcheck_always_on%': 0,
# Enable/disable JavaScript API accessors.
'v8_js_accessors%': 0,
# Temporary flag to allow embedders to update their microtasks scopes.
'v8_check_microtasks_scopes_consistency%': 'false',
# Enable concurrent marking.
'v8_enable_concurrent_marking%': 1,
# Enables various testing features.
'v8_enable_test_features%': 0,
# Controls the threshold for on-heap/off-heap Typed Arrays.
'v8_typed_array_max_size_in_heap%': 64,
},
'target_defaults': {
'conditions': [
['v8_embedder_string!=""', {
'defines': ['V8_EMBEDDER_STRING="<(v8_embedder_string)"',],
}],
['v8_enable_disassembler==1', {
'defines': ['ENABLE_DISASSEMBLER',],
}],
['v8_promise_internal_field_count!=0', {
'defines': ['V8_PROMISE_INTERNAL_FIELD_COUNT','v8_promise_internal_field_count'],
}],
['v8_enable_gdbjit==1', {
'defines': ['ENABLE_GDB_JIT_INTERFACE',],
}],
['v8_enable_verify_csa==1', {
'defines': ['ENABLE_VERIFY_CSA',],
}],
['v8_object_print==1', {
'defines': ['OBJECT_PRINT',],
}],
['v8_enable_verify_heap==1', {
'defines': ['VERIFY_HEAP',],
}],
['v8_trace_maps==1', {
'defines': ['V8_TRACE_MAPS',],
}],
['v8_enable_test_features==1', {
'defines': ['V8_ENABLE_ALLOCATION_TIMEOUT', 'V8_ENABLE_FORCE_SLOW_PATH'],
}],
['v8_enable_verify_predictable==1', {
'defines': ['VERIFY_PREDICTABLE',],
}],
['v8_interpreted_regexp==1', {
'defines': ['V8_INTERPRETED_REGEXP',],
}],
['v8_deprecation_warnings==1', {
'defines': ['V8_DEPRECATION_WARNINGS',],
}],
['v8_imminent_deprecation_warnings==1', {
'defines': ['V8_IMMINENT_DEPRECATION_WARNINGS',],
}],
['v8_enable_i18n_support==1', {
'defines': ['V8_INTL_SUPPORT',],
}],
['v8_use_snapshot=="true" and v8_use_external_startup_data==1', {
'defines': ['V8_USE_EXTERNAL_STARTUP_DATA',],
}],
['dcheck_always_on!=0', {
'defines': ['DEBUG',],
}],
['v8_check_microtasks_scopes_consistency=="true"', {
'defines': ['V8_CHECK_MICROTASKS_SCOPES_CONSISTENCY',],
}],
['v8_enable_concurrent_marking==1', {
'defines': ['V8_CONCURRENT_MARKING',],
}],
], # conditions
'configurations': {
'DebugBaseCommon': {
'abstract': 1,
'variables': {
'v8_enable_handle_zapping%': 1,
},
'conditions': [
['v8_enable_handle_zapping==1', {
'defines': ['ENABLE_HANDLE_ZAPPING',],
}],
],
}, # Debug
'Release': {
'variables': {
'v8_enable_handle_zapping%': 1,
},
'conditions': [
['v8_enable_handle_zapping==1', {
'defines': ['ENABLE_HANDLE_ZAPPING',],
}],
], # conditions
}, # Release
}, # configurations
'defines': [
'V8_GYP_BUILD',
'V8_TYPED_ARRAY_MAX_SIZE_IN_HEAP=<(v8_typed_array_max_size_in_heap)',
], # defines
}, # target_defaults
}

View File

@ -1,518 +0,0 @@
# 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.
{
'variables': {
'v8_code': 1,
},
'includes': ['toolchain.gypi', 'features.gypi'],
'targets': [
{
'target_name': 'v8_simple_json_fuzzer',
'type': 'executable',
'dependencies': [
'json_fuzzer_lib',
],
'include_dirs': [
'..',
],
'sources': [
'../test/fuzzer/fuzzer.cc',
],
},
{
'target_name': 'json_fuzzer_lib',
'type': 'static_library',
'dependencies': [
'v8.gyp:v8_libplatform',
'fuzzer_support',
],
'include_dirs': [
'..',
],
'sources': [
'../test/fuzzer/json.cc',
],
},
{
'target_name': 'v8_simple_parser_fuzzer',
'type': 'executable',
'dependencies': [
'parser_fuzzer_lib',
],
'include_dirs': [
'..',
],
'sources': [
'../test/fuzzer/fuzzer.cc',
],
},
{
'target_name': 'parser_fuzzer_lib',
'type': 'static_library',
'dependencies': [
'v8.gyp:v8_libplatform',
'fuzzer_support',
],
'include_dirs': [
'..',
],
'sources': [
'../test/fuzzer/parser.cc',
],
},
{
'target_name': 'v8_simple_regexp_builtins_fuzzer',
'type': 'executable',
'dependencies': [
'regexp_builtins_fuzzer_lib',
],
'include_dirs': [
'..',
],
'sources': [
'../test/fuzzer/fuzzer.cc',
],
},
{
'target_name': 'regexp_builtins_fuzzer_lib',
'type': 'static_library',
'dependencies': [
'v8.gyp:v8_libplatform',
'fuzzer_support',
],
'include_dirs': [
'..',
],
'sources': [
'../test/fuzzer/regexp-builtins.cc',
'../test/fuzzer/regexp_builtins/mjsunit.js.h',
],
},
{
'target_name': 'v8_simple_regexp_fuzzer',
'type': 'executable',
'dependencies': [
'regexp_fuzzer_lib',
],
'include_dirs': [
'..',
],
'sources': [
'../test/fuzzer/fuzzer.cc',
],
},
{
'target_name': 'regexp_fuzzer_lib',
'type': 'static_library',
'dependencies': [
'v8.gyp:v8_libplatform',
'fuzzer_support',
],
'include_dirs': [
'..',
],
'sources': [
'../test/fuzzer/regexp.cc',
],
},
{
'target_name': 'v8_simple_multi_return_fuzzer',
'type': 'executable',
'dependencies': [
'multi_return_fuzzer_lib',
],
'include_dirs': [
'..',
],
'sources': [
'../test/fuzzer/fuzzer.cc',
],
},
{
'target_name': 'multi_return_fuzzer_lib',
'type': 'static_library',
'dependencies': [
'v8.gyp:v8_libplatform',
'fuzzer_support',
],
'include_dirs': [
'..',
],
'sources': [
'../test/cctest/compiler/c-signature.h',
'../test/cctest/compiler/call-helper.h',
'../test/cctest/compiler/raw-machine-assembler-tester.h',
'../test/fuzzer/multi-return.cc',
],
},
{
'target_name': 'v8_simple_wasm_fuzzer',
'type': 'executable',
'dependencies': [
'wasm_fuzzer_lib',
],
'include_dirs': [
'..',
],
'sources': [
'../test/fuzzer/fuzzer.cc',
],
},
{
'target_name': 'wasm_fuzzer_lib',
'type': 'static_library',
'dependencies': [
'v8.gyp:v8_libplatform',
'fuzzer_support',
],
'include_dirs': [
'..',
],
'sources': [
'../test/fuzzer/wasm.cc',
'../test/common/wasm/wasm-module-runner.cc',
'../test/common/wasm/wasm-module-runner.h',
'../test/fuzzer/wasm-fuzzer-common.cc',
'../test/fuzzer/wasm-fuzzer-common.h',
],
},
{
'target_name': 'v8_simple_wasm_async_fuzzer',
'type': 'executable',
'dependencies': [
'wasm_async_fuzzer_lib',
],
'include_dirs': [
'..',
],
'sources': [
'../test/fuzzer/fuzzer.cc',
],
},
{
'target_name': 'wasm_async_fuzzer_lib',
'type': 'static_library',
'dependencies': [
'v8.gyp:v8_libplatform',
'fuzzer_support',
],
'include_dirs': [
'..',
],
'sources': [
'../test/fuzzer/wasm-async.cc',
'../test/common/wasm/wasm-module-runner.cc',
'../test/common/wasm/wasm-module-runner.h',
'../test/fuzzer/wasm-fuzzer-common.cc',
'../test/fuzzer/wasm-fuzzer-common.h',
],
},
{
'target_name': 'v8_simple_wasm_code_fuzzer',
'type': 'executable',
'dependencies': [
'wasm_code_fuzzer_lib',
],
'include_dirs': [
'..',
],
'sources': [
'../test/fuzzer/fuzzer.cc',
],
},
{
'target_name': 'wasm_code_fuzzer_lib',
'type': 'static_library',
'dependencies': [
'v8.gyp:v8_libplatform',
'fuzzer_support',
],
'include_dirs': [
'..',
],
'sources': [
'../test/fuzzer/wasm-code.cc',
'../test/common/wasm/test-signatures.h',
'../test/common/wasm/wasm-module-runner.cc',
'../test/common/wasm/wasm-module-runner.h',
'../test/fuzzer/wasm-fuzzer-common.cc',
'../test/fuzzer/wasm-fuzzer-common.h',
],
},
{
'target_name': 'v8_simple_wasm_compile_fuzzer',
'type': 'executable',
'dependencies': [
'wasm_compile_fuzzer_lib',
],
'include_dirs': [
'..',
],
'sources': [
'../test/fuzzer/fuzzer.cc',
],
},
{
'target_name': 'wasm_compile_fuzzer_lib',
'type': 'static_library',
'dependencies': [
'v8.gyp:v8_libplatform',
'fuzzer_support',
],
'include_dirs': [
'..',
],
'sources': [
'../test/fuzzer/wasm-compile.cc',
'../test/common/wasm/test-signatures.h',
'../test/common/wasm/wasm-module-runner.cc',
'../test/common/wasm/wasm-module-runner.h',
'../test/fuzzer/wasm-fuzzer-common.cc',
'../test/fuzzer/wasm-fuzzer-common.h',
],
},
{
'target_name': 'v8_simple_wasm_data_section_fuzzer',
'type': 'executable',
'dependencies': [
'wasm_data_section_fuzzer_lib',
],
'include_dirs': [
'..',
],
'sources': [
'../test/fuzzer/fuzzer.cc',
],
},
{
'target_name': 'wasm_data_section_fuzzer_lib',
'type': 'static_library',
'dependencies': [
'v8.gyp:v8_libplatform',
'fuzzer_support',
],
'include_dirs': [
'..',
],
'sources': [
'../test/fuzzer/wasm-data-section.cc',
'../test/common/wasm/wasm-module-runner.cc',
'../test/common/wasm/wasm-module-runner.h',
'../test/fuzzer/wasm-fuzzer-common.cc',
'../test/fuzzer/wasm-fuzzer-common.h',
],
},
{
'target_name': 'v8_simple_wasm_function_sigs_section_fuzzer',
'type': 'executable',
'dependencies': [
'wasm_function_sigs_section_fuzzer_lib',
],
'include_dirs': [
'..',
],
'sources': [
'../test/fuzzer/fuzzer.cc',
],
},
{
'target_name': 'wasm_function_sigs_section_fuzzer_lib',
'type': 'static_library',
'dependencies': [
'v8.gyp:v8_libplatform',
'fuzzer_support',
],
'include_dirs': [
'..',
],
'sources': [
'../test/fuzzer/wasm-function-sigs-section.cc',
'../test/common/wasm/wasm-module-runner.cc',
'../test/common/wasm/wasm-module-runner.h',
'../test/fuzzer/wasm-fuzzer-common.cc',
'../test/fuzzer/wasm-fuzzer-common.h',
],
},
{
'target_name': 'v8_simple_wasm_globals_section_fuzzer',
'type': 'executable',
'dependencies': [
'wasm_globals_section_fuzzer_lib',
],
'include_dirs': [
'..',
],
'sources': [
'../test/fuzzer/fuzzer.cc',
],
},
{
'target_name': 'wasm_globals_section_fuzzer_lib',
'type': 'static_library',
'dependencies': [
'v8.gyp:v8_libplatform',
'fuzzer_support',
],
'include_dirs': [
'..',
],
'sources': [
'../test/fuzzer/wasm-globals-section.cc',
'../test/common/wasm/wasm-module-runner.cc',
'../test/common/wasm/wasm-module-runner.h',
'../test/fuzzer/wasm-fuzzer-common.cc',
'../test/fuzzer/wasm-fuzzer-common.h',
],
},
{
'target_name': 'v8_simple_wasm_imports_section_fuzzer',
'type': 'executable',
'dependencies': [
'wasm_imports_section_fuzzer_lib',
],
'include_dirs': [
'..',
],
'sources': [
'../test/fuzzer/fuzzer.cc',
],
},
{
'target_name': 'wasm_imports_section_fuzzer_lib',
'type': 'static_library',
'dependencies': [
'v8.gyp:v8_libplatform',
'fuzzer_support',
],
'include_dirs': [
'..',
],
'sources': [
'../test/fuzzer/wasm-imports-section.cc',
'../test/common/wasm/wasm-module-runner.cc',
'../test/common/wasm/wasm-module-runner.h',
'../test/fuzzer/wasm-fuzzer-common.cc',
'../test/fuzzer/wasm-fuzzer-common.h',
],
},
{
'target_name': 'v8_simple_wasm_memory_section_fuzzer',
'type': 'executable',
'dependencies': [
'wasm_memory_section_fuzzer_lib',
],
'include_dirs': [
'..',
],
'sources': [
'../test/fuzzer/fuzzer.cc',
],
},
{
'target_name': 'wasm_memory_section_fuzzer_lib',
'type': 'static_library',
'dependencies': [
'v8.gyp:v8_libplatform',
'fuzzer_support',
],
'include_dirs': [
'..',
],
'sources': [
'../test/fuzzer/wasm-memory-section.cc',
'../test/common/wasm/wasm-module-runner.cc',
'../test/common/wasm/wasm-module-runner.h',
'../test/fuzzer/wasm-fuzzer-common.cc',
'../test/fuzzer/wasm-fuzzer-common.h',
],
},
{
'target_name': 'v8_simple_wasm_names_section_fuzzer',
'type': 'executable',
'dependencies': [
'wasm_names_section_fuzzer_lib',
],
'include_dirs': [
'..',
],
'sources': [
'../test/fuzzer/fuzzer.cc',
],
},
{
'target_name': 'wasm_names_section_fuzzer_lib',
'type': 'static_library',
'dependencies': [
'v8.gyp:v8_libplatform',
'fuzzer_support',
],
'include_dirs': [
'..',
],
'sources': [
'../test/fuzzer/wasm-names-section.cc',
'../test/common/wasm/wasm-module-runner.cc',
'../test/common/wasm/wasm-module-runner.h',
'../test/fuzzer/wasm-fuzzer-common.cc',
'../test/fuzzer/wasm-fuzzer-common.h',
],
},
{
'target_name': 'v8_simple_wasm_types_section_fuzzer',
'type': 'executable',
'dependencies': [
'wasm_types_section_fuzzer_lib',
],
'include_dirs': [
'..',
],
'sources': [
'../test/fuzzer/fuzzer.cc',
],
},
{
'target_name': 'wasm_types_section_fuzzer_lib',
'type': 'static_library',
'dependencies': [
'v8.gyp:v8_libplatform',
'fuzzer_support',
],
'include_dirs': [
'..',
],
'sources': [
'../test/fuzzer/wasm-types-section.cc',
'../test/common/wasm/wasm-module-runner.cc',
'../test/common/wasm/wasm-module-runner.h',
'../test/fuzzer/wasm-fuzzer-common.cc',
'../test/fuzzer/wasm-fuzzer-common.h',
],
},
{
'target_name': 'fuzzer_support',
'type': 'static_library',
'dependencies': [
'v8.gyp:v8',
'v8.gyp:v8_libbase',
'v8.gyp:v8_libplatform',
],
'include_dirs': [
'..',
],
'sources': [
'../test/fuzzer/fuzzer-support.cc',
'../test/fuzzer/fuzzer-support.h',
],
'conditions': [
['v8_enable_i18n_support==1', {
'dependencies': [
'<(icu_gyp_path):icui18n',
'<(icu_gyp_path):icuuc',
],
}],
],
},
],
}

View File

@ -1,72 +0,0 @@
# Copyright 2014 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.
{
'targets': [
{
'target_name': 'gmock',
'type': 'static_library',
'dependencies': [
'gtest.gyp:gtest',
],
'sources': [
# Sources based on files in r173 of gmock.
'../testing/gmock/include/gmock/gmock-actions.h',
'../testing/gmock/include/gmock/gmock-cardinalities.h',
'../testing/gmock/include/gmock/gmock-generated-actions.h',
'../testing/gmock/include/gmock/gmock-generated-function-mockers.h',
'../testing/gmock/include/gmock/gmock-generated-matchers.h',
'../testing/gmock/include/gmock/gmock-generated-nice-strict.h',
'../testing/gmock/include/gmock/gmock-matchers.h',
'../testing/gmock/include/gmock/gmock-spec-builders.h',
'../testing/gmock/include/gmock/gmock.h',
'../testing/gmock/include/gmock/internal/gmock-generated-internal-utils.h',
'../testing/gmock/include/gmock/internal/gmock-internal-utils.h',
'../testing/gmock/include/gmock/internal/gmock-port.h',
'../testing/gmock/src/gmock-all.cc',
'../testing/gmock/src/gmock-cardinalities.cc',
'../testing/gmock/src/gmock-internal-utils.cc',
'../testing/gmock/src/gmock-matchers.cc',
'../testing/gmock/src/gmock-spec-builders.cc',
'../testing/gmock/src/gmock.cc',
'../testing/gmock-support.h', # gMock helpers
'../testing/gmock_custom/gmock/internal/custom/gmock-port.h',
],
'sources!': [
'../testing/gmock/src/gmock-all.cc', # Not needed by our build.
],
'include_dirs': [
'../testing/gmock_custom',
'../testing/gmock',
'../testing/gmock/include',
],
'all_dependent_settings': {
'include_dirs': [
'../testing/gmock_custom',
'../testing/gmock/include', # So that gmock headers can find themselves.
],
},
'export_dependent_settings': [
'gtest.gyp:gtest',
],
'conditions': [
['want_separate_host_toolset==1', {
'toolsets': ['host', 'target'],
}, {
'toolsets': ['target'],
}],
],
},
{
'target_name': 'gmock_main',
'type': 'static_library',
'dependencies': [
'gmock',
],
'sources': [
'../testing/gmock/src/gmock_main.cc',
],
},
],
}

View File

@ -1,122 +0,0 @@
# Copyright 2014 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.
{
'targets': [
{
'target_name': 'gtest',
'toolsets': ['host', 'target'],
'type': 'static_library',
'sources': [
'../testing/gtest/include/gtest/gtest-death-test.h',
'../testing/gtest/include/gtest/gtest-message.h',
'../testing/gtest/include/gtest/gtest-param-test.h',
'../testing/gtest/include/gtest/gtest-printers.h',
'../testing/gtest/include/gtest/gtest-spi.h',
'../testing/gtest/include/gtest/gtest-test-part.h',
'../testing/gtest/include/gtest/gtest-typed-test.h',
'../testing/gtest/include/gtest/gtest.h',
'../testing/gtest/include/gtest/gtest_pred_impl.h',
'../testing/gtest/include/gtest/internal/gtest-death-test-internal.h',
'../testing/gtest/include/gtest/internal/gtest-filepath.h',
'../testing/gtest/include/gtest/internal/gtest-internal.h',
'../testing/gtest/include/gtest/internal/gtest-linked_ptr.h',
'../testing/gtest/include/gtest/internal/gtest-param-util-generated.h',
'../testing/gtest/include/gtest/internal/gtest-param-util.h',
'../testing/gtest/include/gtest/internal/gtest-port.h',
'../testing/gtest/include/gtest/internal/gtest-string.h',
'../testing/gtest/include/gtest/internal/gtest-tuple.h',
'../testing/gtest/include/gtest/internal/gtest-type-util.h',
'../testing/gtest/src/gtest-all.cc',
'../testing/gtest/src/gtest-death-test.cc',
'../testing/gtest/src/gtest-filepath.cc',
'../testing/gtest/src/gtest-internal-inl.h',
'../testing/gtest/src/gtest-port.cc',
'../testing/gtest/src/gtest-printers.cc',
'../testing/gtest/src/gtest-test-part.cc',
'../testing/gtest/src/gtest-typed-test.cc',
'../testing/gtest/src/gtest.cc',
'../testing/gtest-support.h',
],
'sources!': [
'../testing/gtest/src/gtest-all.cc', # Not needed by our build.
],
'include_dirs': [
'../testing/gtest',
'../testing/gtest/include',
],
'dependencies': [
'gtest_prod',
],
'defines': [
# In order to allow regex matches in gtest to be shared between Windows
# and other systems, we tell gtest to always use it's internal engine.
'GTEST_HAS_POSIX_RE=0',
'GTEST_LANG_CXX11=1',
],
'all_dependent_settings': {
'defines': [
'GTEST_HAS_POSIX_RE=0',
'GTEST_LANG_CXX11=1',
],
},
'conditions': [
['OS=="android"', {
'defines': [
'GTEST_HAS_CLONE=0',
],
'direct_dependent_settings': {
'defines': [
'GTEST_HAS_CLONE=0',
],
},
}],
],
'direct_dependent_settings': {
'defines': [
'UNIT_TEST',
],
'include_dirs': [
'../testing/gtest/include', # So that gtest headers can find themselves.
],
'target_conditions': [
['_type=="executable"', {
'test': 1,
'conditions': [
['OS=="mac"', {
'run_as': {
'action????': ['${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}'],
},
}],
['OS=="win"', {
'run_as': {
'action????': ['$(TargetPath)', '--gtest_print_time'],
},
}],
],
}],
],
'msvs_disabled_warnings': [4800],
},
},
{
'target_name': 'gtest_main',
'type': 'static_library',
'dependencies': [
'gtest',
],
'sources': [
'../testing/gtest/src/gtest_main.cc',
],
},
{
'target_name': 'gtest_prod',
'toolsets': ['host', 'target'],
'type': 'none',
'sources': [
'../testing/gtest/include/gtest/gtest_prod.h',
],
},
],
}

View File

@ -1,57 +0,0 @@
# Copyright 2015 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.
"""
Sets up various automatic gyp environment variables. These are used by
gyp_v8 and landmines.py which run at different stages of runhooks. To
make sure settings are consistent between them, all setup should happen here.
"""
import os
import sys
SCRIPT_DIR = os.path.dirname(os.path.realpath(__file__))
V8_ROOT = os.path.abspath(os.path.join(SCRIPT_DIR, os.pardir))
def apply_gyp_environment(file_path=None):
"""
Reads in a *.gyp_env file and applies the valid keys to os.environ.
"""
if not file_path or not os.path.exists(file_path):
return
file_contents = open(file_path).read()
try:
file_data = eval(file_contents, {'__builtins__': None}, None)
except SyntaxError, e:
e.filename = os.path.abspath(file_path)
raise
supported_vars = ( 'V8_GYP_FILE',
'V8_GYP_SYNTAX_CHECK',
'GYP_DEFINES',
'GYP_GENERATORS',
'GYP_GENERATOR_FLAGS',
'GYP_GENERATOR_OUTPUT', )
for var in supported_vars:
val = file_data.get(var)
if val:
if var in os.environ:
print 'INFO: Environment value for "%s" overrides value in %s.' % (
var, os.path.abspath(file_path)
)
else:
os.environ[var] = val
def set_environment():
"""Sets defaults for GYP_* variables."""
if 'SKIP_V8_GYP_ENV' not in os.environ:
# Update the environment based on v8.gyp_env
gyp_env_path = os.path.join(os.path.dirname(V8_ROOT), 'v8.gyp_env')
apply_gyp_environment(gyp_env_path)
if not os.environ.get('GYP_GENERATORS'):
# Default to ninja on all platforms.
os.environ['GYP_GENERATORS'] = 'ninja'

View File

@ -1,188 +0,0 @@
#!/usr/bin/env python
#
# Copyright 2012 the V8 project authors. All rights reserved.
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are
# met:
#
# * Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
# * Redistributions in binary form must reproduce the above
# copyright notice, this list of conditions and the following
# disclaimer in the documentation and/or other materials provided
# with the distribution.
# * Neither the name of Google Inc. nor the names of its
# contributors may be used to endorse or promote products derived
# from this software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
# This script is wrapper for V8 that adds some support for how GYP
# is invoked by V8 beyond what can be done in the gclient hooks.
import argparse
import glob
import gyp_environment
import os
import platform
import shlex
import subprocess
import sys
script_dir = os.path.dirname(os.path.realpath(__file__))
v8_root = os.path.abspath(os.path.join(script_dir, os.pardir))
sys.path.insert(0, os.path.join(v8_root, 'tools', 'gyp', 'pylib'))
import gyp
# Add paths so that pymod_do_main(...) can import files.
sys.path.insert(
1, os.path.abspath(os.path.join(v8_root, 'tools', 'generate_shim_headers')))
sys.path.append(
os.path.abspath(os.path.join(v8_root, 'third_party', 'binutils')))
def GetOutputDirectory():
"""Returns the output directory that GYP will use."""
# Handle command line generator flags.
parser = argparse.ArgumentParser()
parser.add_argument('-G', dest='genflags', default=[], action='append')
genflags = parser.parse_known_args()[0].genflags
# Handle generator flags from the environment.
genflags += shlex.split(os.environ.get('GYP_GENERATOR_FLAGS', ''))
needle = 'output_dir='
for item in genflags:
if item.startswith(needle):
return item[len(needle):]
return 'out'
def additional_include_files(args=[]):
"""
Returns a list of additional (.gypi) files to include, without
duplicating ones that are already specified on the command line.
"""
# Determine the include files specified on the command line.
# This doesn't cover all the different option formats you can use,
# but it's mainly intended to avoid duplicating flags on the automatic
# makefile regeneration which only uses this format.
specified_includes = set()
for arg in args:
if arg.startswith('-I') and len(arg) > 2:
specified_includes.add(os.path.realpath(arg[2:]))
result = []
def AddInclude(path):
if os.path.realpath(path) not in specified_includes:
result.append(path)
# Always include standalone.gypi
AddInclude(os.path.join(v8_root, 'gypfiles', 'standalone.gypi'))
# Optionally add supplemental .gypi files if present.
supplements = glob.glob(os.path.join(v8_root, '*', 'supplement.gypi'))
for supplement in supplements:
AddInclude(supplement)
return result
def run_gyp(args):
if gyp.main(args) != 0:
print 'Error running GYP'
sys.exit(rc)
if __name__ == '__main__':
args = sys.argv[1:]
gyp_chromium_no_action = os.environ.get('GYP_CHROMIUM_NO_ACTION')
if gyp_chromium_no_action == '1':
print 'Skipping gyp_v8 due to GYP_CHROMIUM_NO_ACTION env var.'
sys.exit(0)
running_as_hook = '--running-as-hook'
if running_as_hook in args and gyp_chromium_no_action != '0':
print 'GYP is now disabled by default in runhooks.\n'
print 'If you really want to run this, either run '
print '`python gypfiles/gyp_v8` explicitly by hand '
print 'or set the environment variable GYP_CHROMIUM_NO_ACTION=0.'
sys.exit(0)
if running_as_hook in args:
args.remove(running_as_hook)
gyp_environment.set_environment()
# This could give false positives since it doesn't actually do real option
# parsing. Oh well.
gyp_file_specified = False
for arg in args:
if arg.endswith('.gyp'):
gyp_file_specified = True
break
# If we didn't get a file, check an env var, and then fall back to
# assuming 'all.gyp' from the same directory as the script.
if not gyp_file_specified:
gyp_file = os.environ.get('V8_GYP_FILE')
if gyp_file:
# Note that V8_GYP_FILE values can't have backslashes as
# path separators even on Windows due to the use of shlex.split().
args.extend(shlex.split(gyp_file))
else:
args.append(os.path.join(script_dir, 'all.gyp'))
args.extend(['-I' + i for i in additional_include_files(args)])
# There shouldn't be a circular dependency relationship between .gyp files
args.append('--no-circular-check')
# Set the GYP DEPTH variable to the root of the V8 project.
args.append('--depth=' + os.path.relpath(v8_root))
# If V8_GYP_SYNTAX_CHECK is set to 1, it will invoke gyp with --check
# to enfore syntax checking.
syntax_check = os.environ.get('V8_GYP_SYNTAX_CHECK')
if syntax_check and int(syntax_check):
args.append('--check')
print 'Updating projects from gyp files...'
sys.stdout.flush()
# Generate for the architectures supported on the given platform.
gyp_args = list(args)
gyp_args.extend(['-D', 'gyp_output_dir=' + GetOutputDirectory()])
gyp_generators = os.environ.get('GYP_GENERATORS', '')
if platform.system() == 'Linux' and gyp_generators != 'ninja':
# Work around for crbug.com/331475.
for f in glob.glob(os.path.join(v8_root, 'out', 'Makefile.*')):
os.unlink(f)
# --generator-output defines where the Makefile goes.
gyp_args.append('--generator-output=out')
# -Goutput_dir defines where the build output goes, relative to the
# Makefile. Set it to . so that the build output doesn't end up in out/out.
gyp_args.append('-Goutput_dir=.')
gyp_defines = os.environ.get('GYP_DEFINES', '')
# Automatically turn on crosscompile support for platforms that need it.
if all(('ninja' in gyp_generators,
'OS=android' in gyp_defines,
'GYP_CROSSCOMPILE' not in os.environ)):
os.environ['GYP_CROSSCOMPILE'] = '1'
run_gyp(gyp_args)

View File

@ -1,41 +0,0 @@
# Copyright 2013 the V8 project authors. All rights reserved.
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are
# met:
#
# * Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
# * Redistributions in binary form must reproduce the above
# copyright notice, this list of conditions and the following
# disclaimer in the documentation and/or other materials provided
# with the distribution.
# * Neither the name of Google Inc. nor the names of its
# contributors may be used to endorse or promote products derived
# from this software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
# This file is (possibly, depending on python version) imported by
# gyp_v8 when GYP_PARALLEL=1 and it creates sub-processes through the
# multiprocessing library.
# Importing in Python 2.6 (fixed in 2.7) on Windows doesn't search for imports
# that don't end in .py (and aren't directories with an __init__.py). This
# wrapper makes "import gyp_v8" work with those old versions and makes it
# possible to execute gyp_v8.py directly on Windows where the extension is
# useful.
import os
path = os.path.abspath(os.path.split(__file__)[0])
execfile(os.path.join(path, 'gyp_v8'))

View File

@ -1,39 +0,0 @@
# 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.
{
'variables': {
'v8_code': 1,
},
'includes': ['toolchain.gypi', 'features.gypi'],
'targets': [
{
'target_name': 'inspector-test',
'type': 'executable',
'dependencies': [
'v8.gyp:v8_libplatform',
'v8.gyp:v8_libbase',
'v8.gyp:v8',
],
'include_dirs': [
'..',
],
'sources': [
'../test/inspector/inspector-test.cc',
'../test/inspector/isolate-data.cc',
'../test/inspector/isolate-data.h',
'../test/inspector/task-runner.cc',
'../test/inspector/task-runner.h',
],
'conditions': [
['v8_enable_i18n_support==1', {
'dependencies': [
'<(icu_gyp_path):icui18n',
'<(icu_gyp_path):icuuc',
],
}],
],
},
],
}

View File

@ -1,89 +0,0 @@
# 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.
{
'variables': {
'protocol_path': '../third_party/inspector_protocol',
'inspector_path': '../src/inspector',
},
'includes': [
'inspector.gypi',
'../third_party/inspector_protocol/inspector_protocol.gypi',
],
'targets': [
{ 'target_name': 'inspector_injected_script',
'type': 'none',
'toolsets': ['target'],
'actions': [
{
'action_name': 'convert_js_to_cpp_char_array',
'inputs': [
'<(inspector_path)/build/xxd.py',
'<(inspector_injected_script_source)',
],
'outputs': [
'<(inspector_generated_injected_script)',
],
'action': [
'python',
'<(inspector_path)/build/xxd.py',
'InjectedScriptSource_js',
'<(inspector_path)/injected-script-source.js',
'<@(_outputs)'
],
},
],
# Since this target generates header files, it needs to be a hard dependency.
'hard_dependency': 1,
},
{ 'target_name': 'protocol_compatibility',
'type': 'none',
'toolsets': ['target'],
'actions': [
{
'action_name': 'protocol_compatibility',
'inputs': [
'<(inspector_path)/js_protocol.json',
],
'outputs': [
'<@(SHARED_INTERMEDIATE_DIR)/src/js_protocol.stamp',
],
'action': [
'python',
'<(protocol_path)/CheckProtocolCompatibility.py',
'--stamp', '<@(_outputs)',
'<(inspector_path)/js_protocol.json',
],
'message': 'Generating inspector protocol sources from protocol json definition',
},
]
},
{ 'target_name': 'protocol_generated_sources',
'type': 'none',
'dependencies': [ 'protocol_compatibility' ],
'toolsets': ['target'],
'actions': [
{
'action_name': 'protocol_generated_sources',
'inputs': [
'<(inspector_path)/js_protocol.json',
'<(inspector_path)/inspector_protocol_config.json',
'<@(inspector_protocol_files)',
],
'outputs': [
'<@(inspector_generated_sources)',
],
'action': [
'python',
'<(protocol_path)/CodeGenerator.py',
'--jinja_dir', '../third_party',
'--output_base', '<(SHARED_INTERMEDIATE_DIR)/src/inspector',
'--config', '<(inspector_path)/inspector_protocol_config.json',
],
'message': 'Generating inspector protocol sources from protocol json',
},
]
},
],
}

View File

@ -1,90 +0,0 @@
# 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.
{
'variables': {
'inspector_generated_sources': [
'<(SHARED_INTERMEDIATE_DIR)/src/inspector/protocol/Forward.h',
'<(SHARED_INTERMEDIATE_DIR)/src/inspector/protocol/Protocol.cpp',
'<(SHARED_INTERMEDIATE_DIR)/src/inspector/protocol/Protocol.h',
'<(SHARED_INTERMEDIATE_DIR)/src/inspector/protocol/Console.cpp',
'<(SHARED_INTERMEDIATE_DIR)/src/inspector/protocol/Console.h',
'<(SHARED_INTERMEDIATE_DIR)/src/inspector/protocol/Debugger.cpp',
'<(SHARED_INTERMEDIATE_DIR)/src/inspector/protocol/Debugger.h',
'<(SHARED_INTERMEDIATE_DIR)/src/inspector/protocol/HeapProfiler.cpp',
'<(SHARED_INTERMEDIATE_DIR)/src/inspector/protocol/HeapProfiler.h',
'<(SHARED_INTERMEDIATE_DIR)/src/inspector/protocol/Profiler.cpp',
'<(SHARED_INTERMEDIATE_DIR)/src/inspector/protocol/Profiler.h',
'<(SHARED_INTERMEDIATE_DIR)/src/inspector/protocol/Runtime.cpp',
'<(SHARED_INTERMEDIATE_DIR)/src/inspector/protocol/Runtime.h',
'<(SHARED_INTERMEDIATE_DIR)/src/inspector/protocol/Schema.cpp',
'<(SHARED_INTERMEDIATE_DIR)/src/inspector/protocol/Schema.h',
'<(SHARED_INTERMEDIATE_DIR)/include/inspector/Debugger.h',
'<(SHARED_INTERMEDIATE_DIR)/include/inspector/Runtime.h',
'<(SHARED_INTERMEDIATE_DIR)/include/inspector/Schema.h',
],
'inspector_injected_script_source': '../src/inspector/injected-script-source.js',
'inspector_generated_injected_script': '<(SHARED_INTERMEDIATE_DIR)/src/inspector/injected-script-source.h',
'inspector_all_sources': [
'<@(inspector_generated_sources)',
'<(inspector_generated_injected_script)',
'../include/v8-inspector.h',
'../include/v8-inspector-protocol.h',
'../src/inspector/injected-script.cc',
'../src/inspector/injected-script.h',
'../src/inspector/inspected-context.cc',
'../src/inspector/inspected-context.h',
'../src/inspector/remote-object-id.cc',
'../src/inspector/remote-object-id.h',
'../src/inspector/search-util.cc',
'../src/inspector/search-util.h',
'../src/inspector/string-16.cc',
'../src/inspector/string-16.h',
'../src/inspector/string-util.cc',
'../src/inspector/string-util.h',
'../src/inspector/test-interface.cc',
'../src/inspector/test-interface.h',
'../src/inspector/v8-console.cc',
'../src/inspector/v8-console.h',
'../src/inspector/v8-console-agent-impl.cc',
'../src/inspector/v8-console-agent-impl.h',
'../src/inspector/v8-console-message.cc',
'../src/inspector/v8-console-message.h',
'../src/inspector/v8-debugger.cc',
'../src/inspector/v8-debugger.h',
'../src/inspector/v8-debugger-agent-impl.cc',
'../src/inspector/v8-debugger-agent-impl.h',
'../src/inspector/v8-debugger-script.cc',
'../src/inspector/v8-debugger-script.h',
'../src/inspector/v8-function-call.cc',
'../src/inspector/v8-function-call.h',
'../src/inspector/v8-heap-profiler-agent-impl.cc',
'../src/inspector/v8-heap-profiler-agent-impl.h',
'../src/inspector/v8-injected-script-host.cc',
'../src/inspector/v8-injected-script-host.h',
'../src/inspector/v8-inspector-impl.cc',
'../src/inspector/v8-inspector-impl.h',
'../src/inspector/v8-inspector-session-impl.cc',
'../src/inspector/v8-inspector-session-impl.h',
'../src/inspector/v8-internal-value-type.cc',
'../src/inspector/v8-internal-value-type.h',
'../src/inspector/v8-profiler-agent-impl.cc',
'../src/inspector/v8-profiler-agent-impl.h',
'../src/inspector/v8-regex.cc',
'../src/inspector/v8-regex.h',
'../src/inspector/v8-runtime-agent-impl.cc',
'../src/inspector/v8-runtime-agent-impl.h',
'../src/inspector/v8-schema-agent-impl.cc',
'../src/inspector/v8-schema-agent-impl.h',
'../src/inspector/v8-stack-trace-impl.cc',
'../src/inspector/v8-stack-trace-impl.h',
'../src/inspector/v8-value-utils.cc',
'../src/inspector/v8-value-utils.h',
'../src/inspector/wasm-translation.cc',
'../src/inspector/wasm-translation.h',
]
}
}

View File

@ -1,31 +0,0 @@
# Copyright 2015 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.
{
'targets': [
{
'target_name': 'asan_dynamic_runtime',
'toolsets': ['target', 'host'],
'type': 'none',
'variables': {
# Every target is going to depend on asan_dynamic_runtime, so allow
# this one to depend on itself.
'prune_self_dependency': 1,
# Path is relative to this GYP file.
'asan_rtl_mask_path':
'../../third_party/llvm-build/Release+Asserts/lib/clang/*/lib/darwin',
'asan_osx_dynamic':
'<(asan_rtl_mask_path)/libclang_rt.asan_osx_dynamic.dylib',
},
'copies': [
{
'destination': '<(PRODUCT_DIR)',
'files': [
'<!(/bin/ls <(asan_osx_dynamic))',
],
},
],
},
],
}

View File

@ -1,27 +0,0 @@
# Copyright 2017 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.
{
'variables': {
'v8_code': 1,
},
'includes': ['toolchain.gypi', 'features.gypi'],
'targets': [
{
'target_name': 'mkgrokdump',
'type': 'executable',
'dependencies': [
'v8.gyp:v8',
'v8.gyp:v8_libbase',
'v8.gyp:v8_libplatform',
],
'include_dirs': [
'..',
],
'sources': [
'../test/mkgrokdump/mkgrokdump.cc',
],
},
],
}

View File

@ -1,60 +0,0 @@
# Copyright 2013 the V8 project authors. All rights reserved.
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are
# met:
#
# * Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
# * Redistributions in binary form must reproduce the above
# copyright notice, this list of conditions and the following
# disclaimer in the documentation and/or other materials provided
# with the distribution.
# * Neither the name of Google Inc. nor the names of its
# contributors may be used to endorse or promote products derived
# from this software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
{
'variables': {
'v8_code': 1,
'v8_enable_i18n_support%': 1,
},
'includes': ['toolchain.gypi', 'features.gypi'],
'targets': [
{
'target_name': 'parser-shell',
'type': 'executable',
'dependencies': [
'v8.gyp:v8',
'v8.gyp:v8_libbase',
'v8.gyp:v8_libplatform',
],
'conditions': [
['v8_enable_i18n_support==1', {
'dependencies': [
'<(icu_gyp_path):icui18n',
'<(icu_gyp_path):icuuc',
],
}],
],
'include_dirs+': [
'..',
],
'sources': [
'../tools/parser-shell.cc',
'../tools/shell-utils.h',
],
},
],
}

View File

@ -1,50 +0,0 @@
#!/usr/bin/env python
# Copyright 2017 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.
"""
Legacy test-runner wrapper supporting a product of multiple architectures and
modes.
"""
import argparse
import itertools
from os.path import abspath, dirname, join
import subprocess
import sys
BASE_DIR = dirname(dirname(abspath(__file__)))
RUN_TESTS = join(BASE_DIR, 'tools', 'run-tests.py')
def main():
parser = argparse.ArgumentParser(description='Legacy test-runner wrapper')
parser.add_argument(
'--arch', help='Comma-separated architectures to run tests on')
parser.add_argument(
'--mode', help='Comma-separated modes to run tests on')
parser.add_argument(
'--arch-and-mode',
help='Architecture and mode in the format \'arch.mode\'',
)
args, remaining_args = parser.parse_known_args(sys.argv)
if (args.arch or args.mode) and args.arch_and_mode:
parser.error('The flags --arch-and-mode and --arch/--mode are exclusive.')
arch = (args.arch or 'ia32,x64,arm').split(',')
mode = (args.mode or 'release,debug').split(',')
if args.arch_and_mode:
arch_and_mode = map(
lambda am: am.split('.'),
args.arch_and_mode.split(','))
arch = map(lambda am: am[0], arch_and_mode)
mode = map(lambda am: am[1], arch_and_mode)
ret_code = 0
for a, m in itertools.product(arch, mode):
ret_code |= subprocess.check_call(
[RUN_TESTS] + remaining_args[1:] + ['--arch', a, '--mode', m])
return ret_code
if __name__ == '__main__':
sys.exit(main())

View File

@ -1,61 +0,0 @@
# Copyright 2012 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.
{
'variables': {
'v8_code': 1,
'v8_enable_i18n_support%': 1,
'v8_toolset_for_shell%': 'target',
},
'includes': ['toolchain.gypi', 'features.gypi'],
'target_defaults': {
'type': 'executable',
'dependencies': [
'v8.gyp:v8',
'v8.gyp:v8_libbase',
'v8.gyp:v8_libplatform',
],
'include_dirs': [
'..',
],
'conditions': [
['v8_enable_i18n_support==1', {
'dependencies': [
'<(icu_gyp_path):icui18n',
'<(icu_gyp_path):icuuc',
],
}],
['OS=="win" and v8_enable_i18n_support==1', {
'dependencies': [
'<(icu_gyp_path):icudata',
],
}],
],
},
'targets': [
{
'target_name': 'v8_shell',
'sources': [
'../samples/shell.cc',
],
'conditions': [
[ 'want_separate_host_toolset==1', {
'toolsets': [ '<(v8_toolset_for_shell)', ],
}],
],
},
{
'target_name': 'hello-world',
'sources': [
'../samples/hello-world.cc',
],
},
{
'target_name': 'process',
'sources': [
'../samples/process.cc',
],
},
],
}

View File

@ -1,59 +0,0 @@
# Copyright 2016 the V8 project authors. All rights reserved.
# Copyright (c) 2014 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
# This file is meant to be included to set clang-specific compiler flags.
# To use this the following variable can be defined:
# clang_warning_flags: list: Compiler flags to pass to clang.
# clang_warning_flags_unset: list: Compiler flags to not pass to clang.
#
# Only use this in third-party code. In chromium_code, fix your code to not
# warn instead!
#
# Note that the gypi file is included in target_defaults, so it does not need
# to be explicitly included.
#
# Warning flags set by this will be used on all platforms. If you want to set
# warning flags on only some platforms, you have to do so manually.
#
# To use this, create a gyp target with the following form:
# {
# 'target_name': 'my_target',
# 'variables': {
# 'clang_warning_flags': ['-Wno-awesome-warning'],
# 'clang_warning_flags_unset': ['-Wpreviously-set-flag'],
# }
# }
{
'variables': {
'clang_warning_flags_unset%': [], # Provide a default value.
},
'conditions': [
['clang==1', {
# This uses >@ instead of @< to also see clang_warning_flags set in
# targets directly, not just the clang_warning_flags in target_defaults.
'cflags': [ '>@(clang_warning_flags)' ],
'cflags!': [ '>@(clang_warning_flags_unset)' ],
'xcode_settings': {
'WARNING_CFLAGS': ['>@(clang_warning_flags)'],
'WARNING_CFLAGS!': ['>@(clang_warning_flags_unset)'],
},
'msvs_settings': {
'VCCLCompilerTool': {
'AdditionalOptions': [ '>@(clang_warning_flags)' ],
'AdditionalOptions!': [ '>@(clang_warning_flags_unset)' ],
},
},
}],
['clang==0 and host_clang==1', {
'target_conditions': [
['_toolset=="host"', {
'cflags': [ '>@(clang_warning_flags)' ],
'cflags!': [ '>@(clang_warning_flags_unset)' ],
}],
],
}],
],
}

View File

@ -1,73 +0,0 @@
# Copyright 2013 the V8 project authors. All rights reserved.
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are
# met:
#
# * Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
# * Redistributions in binary form must reproduce the above
# copyright notice, this list of conditions and the following
# disclaimer in the documentation and/or other materials provided
# with the distribution.
# * Neither the name of Google Inc. nor the names of its
# contributors may be used to endorse or promote products derived
# from this software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
# This file is meant to be included into a target to handle shim headers
# in a consistent manner. To use this the following variables need to be
# defined:
# headers_root_path: string: path to directory containing headers
# header_filenames: list: list of header file names
{
'variables': {
'shim_headers_path': '<(SHARED_INTERMEDIATE_DIR)/shim_headers/<(_target_name)/<(_toolset)',
'shim_generator_additional_args%': [],
},
'include_dirs++': [
'<(shim_headers_path)',
],
'all_dependent_settings': {
'include_dirs+++': [
'<(shim_headers_path)',
],
},
'actions': [
{
'variables': {
'generator_path': '<(DEPTH)/tools/generate_shim_headers/generate_shim_headers.py',
'generator_args': [
'--headers-root', '<(headers_root_path)',
'--output-directory', '<(shim_headers_path)',
'<@(shim_generator_additional_args)',
'<@(header_filenames)',
],
},
'action_name': 'generate_<(_target_name)_shim_headers',
'inputs': [
'<(generator_path)',
],
'outputs': [
'<!@pymod_do_main(generate_shim_headers <@(generator_args) --outputs)',
],
'action': ['python',
'<(generator_path)',
'<@(generator_args)',
'--generate',
],
'message': 'Generating <(_target_name) shim headers.',
},
],
}

File diff suppressed because it is too large Load Diff

View File

@ -1,12 +0,0 @@
#!/bin/sh
# Copyright 2017 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.
# This is for backwards-compatibility after:
# https://codereview.chromium.org/2900193003
for entry in $@; do
echo -L$entry
echo -Wl,-rpath-link=$entry
done | xargs echo

File diff suppressed because it is too large Load Diff

View File

@ -1,287 +0,0 @@
# Copyright 2014 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 BUILD.gn.
{
'variables': {
'v8_code': 1,
'unittests_sources': [
'../test/unittests/allocation-unittest.cc',
'../test/unittests/api/access-check-unittest.cc',
'../test/unittests/api/exception-unittest.cc',
'../test/unittests/api/interceptor-unittest.cc',
'../test/unittests/api/isolate-unittest.cc',
'../test/unittests/api/remote-object-unittest.cc',
'../test/unittests/api/v8-object-unittest.cc',
'../test/unittests/asmjs/asm-scanner-unittest.cc',
'../test/unittests/asmjs/asm-types-unittest.cc',
'../test/unittests/asmjs/switch-logic-unittest.cc',
'../test/unittests/base/atomic-utils-unittest.cc',
'../test/unittests/base/bits-unittest.cc',
'../test/unittests/base/cpu-unittest.cc',
'../test/unittests/base/division-by-constant-unittest.cc',
'../test/unittests/base/flags-unittest.cc',
'../test/unittests/base/functional-unittest.cc',
'../test/unittests/base/ieee754-unittest.cc',
'../test/unittests/base/logging-unittest.cc',
'../test/unittests/base/macros-unittest.cc',
'../test/unittests/base/iterator-unittest.cc',
'../test/unittests/base/ostreams-unittest.cc',
'../test/unittests/base/platform/condition-variable-unittest.cc',
'../test/unittests/base/platform/mutex-unittest.cc',
'../test/unittests/base/platform/platform-unittest.cc',
'../test/unittests/base/platform/semaphore-unittest.cc',
'../test/unittests/base/platform/time-unittest.cc',
'../test/unittests/base/sys-info-unittest.cc',
'../test/unittests/base/template-utils-unittest.cc',
'../test/unittests/base/utils/random-number-generator-unittest.cc',
'../test/unittests/bigint-unittest.cc',
'../test/unittests/cancelable-tasks-unittest.cc',
'../test/unittests/char-predicates-unittest.cc',
"../test/unittests/code-stub-assembler-unittest.cc",
"../test/unittests/code-stub-assembler-unittest.h",
'../test/unittests/compiler/branch-elimination-unittest.cc',
'../test/unittests/compiler/bytecode-analysis-unittest.cc',
'../test/unittests/compiler/checkpoint-elimination-unittest.cc',
"../test/unittests/compiler/code-assembler-unittest.cc",
"../test/unittests/compiler/code-assembler-unittest.h",
'../test/unittests/compiler/common-operator-reducer-unittest.cc',
'../test/unittests/compiler/common-operator-unittest.cc',
'../test/unittests/compiler/compiler-test-utils.h',
'../test/unittests/compiler/control-equivalence-unittest.cc',
'../test/unittests/compiler/control-flow-optimizer-unittest.cc',
'../test/unittests/compiler/dead-code-elimination-unittest.cc',
'../test/unittests/compiler/diamond-unittest.cc',
'../test/unittests/compiler/effect-control-linearizer-unittest.cc',
'../test/unittests/compiler/graph-reducer-unittest.cc',
'../test/unittests/compiler/graph-reducer-unittest.h',
'../test/unittests/compiler/graph-trimmer-unittest.cc',
'../test/unittests/compiler/graph-unittest.cc',
'../test/unittests/compiler/graph-unittest.h',
'../test/unittests/compiler/instruction-unittest.cc',
'../test/unittests/compiler/instruction-selector-unittest.cc',
'../test/unittests/compiler/instruction-selector-unittest.h',
'../test/unittests/compiler/instruction-sequence-unittest.cc',
'../test/unittests/compiler/instruction-sequence-unittest.h',
'../test/unittests/compiler/int64-lowering-unittest.cc',
'../test/unittests/compiler/js-builtin-reducer-unittest.cc',
'../test/unittests/compiler/js-create-lowering-unittest.cc',
'../test/unittests/compiler/js-intrinsic-lowering-unittest.cc',
'../test/unittests/compiler/js-operator-unittest.cc',
'../test/unittests/compiler/js-typed-lowering-unittest.cc',
'../test/unittests/compiler/linkage-tail-call-unittest.cc',
'../test/unittests/compiler/live-range-builder.h',
'../test/unittests/compiler/regalloc/live-range-unittest.cc',
'../test/unittests/compiler/load-elimination-unittest.cc',
'../test/unittests/compiler/loop-peeling-unittest.cc',
'../test/unittests/compiler/machine-operator-reducer-unittest.cc',
'../test/unittests/compiler/machine-operator-unittest.cc',
'../test/unittests/compiler/regalloc/move-optimizer-unittest.cc',
'../test/unittests/compiler/node-cache-unittest.cc',
'../test/unittests/compiler/node-matchers-unittest.cc',
'../test/unittests/compiler/node-properties-unittest.cc',
'../test/unittests/compiler/node-test-utils.cc',
'../test/unittests/compiler/node-test-utils.h',
'../test/unittests/compiler/node-unittest.cc',
'../test/unittests/compiler/opcodes-unittest.cc',
'../test/unittests/compiler/persistent-unittest.cc',
'../test/unittests/compiler/regalloc/register-allocator-unittest.cc',
'../test/unittests/compiler/schedule-unittest.cc',
'../test/unittests/compiler/scheduler-unittest.cc',
'../test/unittests/compiler/scheduler-rpo-unittest.cc',
'../test/unittests/compiler/simplified-lowering-unittest.cc',
'../test/unittests/compiler/simplified-operator-reducer-unittest.cc',
'../test/unittests/compiler/simplified-operator-unittest.cc',
'../test/unittests/compiler/state-values-utils-unittest.cc',
'../test/unittests/compiler/typed-optimization-unittest.cc',
'../test/unittests/compiler/typer-unittest.cc',
'../test/unittests/compiler/value-numbering-reducer-unittest.cc',
'../test/unittests/compiler/zone-stats-unittest.cc',
'../test/unittests/compiler-dispatcher/compiler-dispatcher-tracer-unittest.cc',
'../test/unittests/compiler-dispatcher/compiler-dispatcher-unittest.cc',
'../test/unittests/compiler-dispatcher/optimizing-compile-dispatcher-unittest.cc',
'../test/unittests/compiler-dispatcher/unoptimized-compile-job-unittest.cc',
'../test/unittests/counters-unittest.cc',
'../test/unittests/detachable-vector-unittest.cc',
'../test/unittests/eh-frame-iterator-unittest.cc',
'../test/unittests/eh-frame-writer-unittest.cc',
'../test/unittests/heap/barrier-unittest.cc',
'../test/unittests/heap/bitmap-unittest.cc',
'../test/unittests/heap/embedder-tracing-unittest.cc',
'../test/unittests/heap/gc-idle-time-handler-unittest.cc',
'../test/unittests/heap/gc-tracer-unittest.cc',
'../test/unittests/heap/item-parallel-job-unittest.cc',
'../test/unittests/heap/marking-unittest.cc',
'../test/unittests/heap/memory-reducer-unittest.cc',
'../test/unittests/heap/object-stats-unittest.cc',
'../test/unittests/heap/heap-unittest.cc',
'../test/unittests/heap/scavenge-job-unittest.cc',
'../test/unittests/heap/slot-set-unittest.cc',
'../test/unittests/heap/spaces-unittest.cc',
'../test/unittests/heap/unmapper-unittest.cc',
'../test/unittests/heap/worklist-unittest.cc',
'../test/unittests/interpreter/bytecodes-unittest.cc',
'../test/unittests/interpreter/bytecode-array-builder-unittest.cc',
'../test/unittests/interpreter/bytecode-array-iterator-unittest.cc',
'../test/unittests/interpreter/bytecode-array-random-iterator-unittest.cc',
'../test/unittests/interpreter/bytecode-array-writer-unittest.cc',
'../test/unittests/interpreter/bytecode-decoder-unittest.cc',
'../test/unittests/interpreter/bytecode-node-unittest.cc',
'../test/unittests/interpreter/bytecode-operands-unittest.cc',
'../test/unittests/interpreter/bytecode-register-allocator-unittest.cc',
'../test/unittests/interpreter/bytecode-register-optimizer-unittest.cc',
'../test/unittests/interpreter/bytecode-source-info-unittest.cc',
'../test/unittests/interpreter/bytecode-utils.h',
'../test/unittests/interpreter/constant-array-builder-unittest.cc',
'../test/unittests/interpreter/interpreter-assembler-unittest.cc',
'../test/unittests/interpreter/interpreter-assembler-unittest.h',
'../test/unittests/libplatform/default-platform-unittest.cc',
'../test/unittests/libplatform/task-queue-unittest.cc',
'../test/unittests/libplatform/worker-thread-unittest.cc',
'../test/unittests/locked-queue-unittest.cc',
'../test/unittests/object-unittest.cc',
'../test/unittests/parser/ast-value-unittest.cc',
'../test/unittests/parser/preparser-unittest.cc',
'../test/unittests/register-configuration-unittest.cc',
'../test/unittests/run-all-unittests.cc',
'../test/unittests/source-position-table-unittest.cc',
'../test/unittests/test-helpers.cc',
'../test/unittests/test-helpers.h',
'../test/unittests/test-utils.h',
'../test/unittests/test-utils.cc',
'../test/unittests/unicode-unittest.cc',
'../test/unittests/utils-unittest.cc',
'../test/unittests/value-serializer-unittest.cc',
'../test/unittests/zone/segmentpool-unittest.cc',
'../test/unittests/zone/zone-allocator-unittest.cc',
'../test/unittests/zone/zone-chunk-list-unittest.cc',
'../test/unittests/zone/zone-unittest.cc',
'../test/unittests/wasm/control-transfer-unittest.cc',
'../test/unittests/wasm/decoder-unittest.cc',
'../test/unittests/wasm/function-body-decoder-unittest.cc',
'../test/unittests/wasm/wasm-code-manager-unittest.cc',
'../test/unittests/wasm/leb-helper-unittest.cc',
'../test/unittests/wasm/loop-assignment-analysis-unittest.cc',
'../test/unittests/wasm/module-decoder-unittest.cc',
'../test/unittests/wasm/streaming-decoder-unittest.cc',
'../test/unittests/wasm/trap-handler-unittest.cc',
'../test/unittests/wasm/wasm-macro-gen-unittest.cc',
'../test/unittests/wasm/wasm-module-builder-unittest.cc',
'../test/unittests/wasm/wasm-opcodes-unittest.cc',
],
'unittests_sources_arm': [
'../test/unittests/compiler/arm/instruction-selector-arm-unittest.cc',
],
'unittests_sources_arm64': [
'../test/unittests/compiler/arm64/instruction-selector-arm64-unittest.cc',
],
'unittests_sources_ia32': [
'../test/unittests/compiler/ia32/instruction-selector-ia32-unittest.cc',
],
'unittests_sources_mips': [
'../test/unittests/compiler/mips/instruction-selector-mips-unittest.cc',
],
'unittests_sources_mips64': [
'../test/unittests/compiler/mips64/instruction-selector-mips64-unittest.cc',
],
'unittests_sources_x64': [
'../test/unittests/compiler/x64/instruction-selector-x64-unittest.cc',
],
'unittests_sources_ppc': [
'../test/unittests/compiler/ppc/instruction-selector-ppc-unittest.cc',
],
'unittests_sources_s390': [
'../test/unittests/compiler/s390/instruction-selector-s390-unittest.cc',
],
},
'includes': ['toolchain.gypi', 'features.gypi'],
'targets': [
{
'target_name': 'unittests',
'type': 'executable',
'variables': {
'optimize': 'max',
},
'dependencies': [
'gmock.gyp:gmock',
'gtest.gyp:gtest',
'v8.gyp:v8',
'v8.gyp:v8_libbase',
'v8.gyp:v8_libplatform',
'v8.gyp:v8_maybe_snapshot',
],
'include_dirs': [
'..',
],
'sources': [
'<@(unittests_sources)',
],
'conditions': [
['v8_target_arch=="arm"', {
'sources': [
'<@(unittests_sources_arm)',
],
}],
['v8_target_arch=="arm64"', {
'sources': [
'<@(unittests_sources_arm64)',
],
}],
['v8_target_arch=="ia32"', {
'sources': [
'<@(unittests_sources_ia32)',
],
}],
['v8_target_arch=="mips"', {
'sources': [
'<@(unittests_sources_mips)',
],
}],
['v8_target_arch=="mipsel"', {
'sources': [
'<@(unittests_sources_mips)',
],
}],
['v8_target_arch=="mips64"', {
'sources': [
'<@(unittests_sources_mips64)',
],
}],
['v8_target_arch=="mips64el"', {
'sources': [
'<@(unittests_sources_mips64)',
],
}],
['v8_target_arch=="x64"', {
'sources': [
'<@(unittests_sources_x64)',
],
}],
['v8_target_arch=="ppc" or v8_target_arch=="ppc64"', {
'sources': [
'<@(unittests_sources_ppc)',
],
}],
['v8_target_arch=="s390" or v8_target_arch=="s390x"', {
'sources': [
'<@(unittests_sources_s390)',
],
}],
['OS=="aix"', {
'ldflags': [ '-Wl,-bbigtoc' ],
}],
['v8_enable_i18n_support==1', {
'dependencies': [
'<(icu_gyp_path):icui18n',
'<(icu_gyp_path):icuuc',
],
}],
['v8_use_snapshot=="true"', {
'dependencies': ['v8.gyp:v8_initializers'],
}],
],
},
],
}

View File

@ -1,36 +0,0 @@
# Copyright 2012 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.
{
'variables': {
'v8_code': 1,
},
'includes': ['toolchain.gypi', 'features.gypi'],
'targets': [
{
'target_name': 'v8_vtune',
'type': 'static_library',
'dependencies': [
'v8.gyp:v8',
],
'sources': [
'../src/third_party/vtune/ittnotify_config.h',
'../src/third_party/vtune/ittnotify_types.h',
'../src/third_party/vtune/jitprofiling.cc',
'../src/third_party/vtune/jitprofiling.h',
'../src/third_party/vtune/v8-vtune.h',
'../src/third_party/vtune/vtune-jit.cc',
'../src/third_party/vtune/vtune-jit.h',
],
'direct_dependent_settings': {
'defines': ['ENABLE_VTUNE_JIT_INTERFACE',],
'conditions': [
['OS != "win"', {
'libraries': ['-ldl',],
}],
],
},
},
],
}

View File

@ -1,187 +0,0 @@
#!/usr/bin/env python
# Copyright 2015 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.
"""
Script to print potentially missing source dependencies based on the actual
.h and .cc files in the source tree and which files are included in the gyp
and gn files. The latter inclusion is overapproximated.
TODO(machenbach): If two source files with the same name exist, but only one
is referenced from a gyp/gn file, we won't necessarily detect it.
"""
import itertools
import re
import os
import subprocess
import sys
V8_BASE = os.path.dirname(os.path.dirname(os.path.realpath(__file__)))
GYP_FILES = [
os.path.join(V8_BASE, 'gypfiles', 'd8.gyp'),
os.path.join(V8_BASE, 'gypfiles', 'v8.gyp'),
os.path.join(V8_BASE, 'gypfiles', 'inspector.gypi'),
os.path.join(V8_BASE, 'gypfiles', 'v8vtune.gyp'),
os.path.join(V8_BASE, 'gypfiles', 'samples.gyp'),
os.path.join(V8_BASE, 'gypfiles', 'cctest.gyp'),
os.path.join(V8_BASE, 'gypfiles', 'fuzzer.gyp'),
os.path.join(V8_BASE, 'gypfiles', 'unittests.gyp'),
os.path.join(V8_BASE, 'gypfiles', 'inspector-test.gyp'),
os.path.join(V8_BASE, 'gypfiles', 'mkgrokdump.gyp'),
os.path.join(V8_BASE, 'gypfiles', 'gmock.gyp'),
os.path.join(V8_BASE, 'gypfiles', 'gtest.gyp'),
os.path.join(V8_BASE, 'gypfiles', 'parser-shell.gyp'),
]
ALL_GYP_PREFIXES = [
'..',
'common',
os.path.join('src', 'third_party', 'vtune'),
'src',
'samples',
'testing',
'tools',
os.path.join('test', 'cctest'),
os.path.join('test', 'common'),
os.path.join('test', 'fuzzer'),
os.path.join('test', 'unittests'),
os.path.join('test', 'inspector'),
os.path.join('test', 'mkgrokdump'),
]
GYP_UNSUPPORTED_FEATURES = [
'gcmole',
'setup-isolate-deserialize.cc',
'v8-version.h'
]
GN_FILES = [
os.path.join(V8_BASE, 'BUILD.gn'),
os.path.join(V8_BASE, 'build', 'secondary', 'testing', 'gmock', 'BUILD.gn'),
os.path.join(V8_BASE, 'build', 'secondary', 'testing', 'gtest', 'BUILD.gn'),
os.path.join(V8_BASE, 'src', 'inspector', 'BUILD.gn'),
os.path.join(V8_BASE, 'test', 'cctest', 'BUILD.gn'),
os.path.join(V8_BASE, 'test', 'unittests', 'BUILD.gn'),
os.path.join(V8_BASE, 'test', 'inspector', 'BUILD.gn'),
os.path.join(V8_BASE, 'test', 'mkgrokdump', 'BUILD.gn'),
os.path.join(V8_BASE, 'tools', 'BUILD.gn'),
]
GN_UNSUPPORTED_FEATURES = [
'aix',
'cygwin',
'freebsd',
'gcmole',
'openbsd',
'ppc',
'qnx',
'solaris',
'vtune',
'v8-version.h',
]
ALL_GN_PREFIXES = [
'..',
os.path.join('src', 'inspector'),
'src',
'testing',
os.path.join('test', 'cctest'),
os.path.join('test', 'unittests'),
os.path.join('test', 'inspector'),
os.path.join('test', 'mkgrokdump'),
]
def pathsplit(path):
return re.split('[/\\\\]', path)
def path_no_prefix(path, prefixes):
for prefix in prefixes:
if path.startswith(prefix + os.sep):
return path_no_prefix(path[len(prefix) + 1:], prefixes)
return path
def isources(prefixes):
cmd = ['git', 'ls-tree', '-r', 'HEAD', '--full-name', '--name-only']
for f in subprocess.check_output(cmd, universal_newlines=True).split('\n'):
if not (f.endswith('.h') or f.endswith('.cc')):
continue
yield path_no_prefix(os.path.join(*pathsplit(f)), prefixes)
def iflatten(obj):
if isinstance(obj, dict):
for value in obj.values():
for i in iflatten(value):
yield i
elif isinstance(obj, list):
for value in obj:
for i in iflatten(value):
yield i
elif isinstance(obj, basestring):
yield path_no_prefix(os.path.join(*pathsplit(obj)), ALL_GYP_PREFIXES)
def iflatten_gyp_file(gyp_file):
"""Overaproximates all values in the gyp file.
Iterates over all string values recursively. Removes '../' path prefixes.
"""
with open(gyp_file) as f:
return iflatten(eval(f.read()))
def iflatten_gn_file(gn_file):
"""Overaproximates all values in the gn file.
Iterates over all double quoted strings.
"""
with open(gn_file) as f:
for line in f.read().splitlines():
match = re.match(r'.*"([^"]*)".*', line)
if match:
yield path_no_prefix(
os.path.join(*pathsplit(match.group(1))), ALL_GN_PREFIXES)
def icheck_values(values, prefixes):
for source_file in isources(prefixes):
if source_file not in values:
yield source_file
def missing_gyp_files():
gyp_values = set(itertools.chain(
*[iflatten_gyp_file(gyp_file) for gyp_file in GYP_FILES]
))
gyp_files = sorted(icheck_values(gyp_values, ALL_GYP_PREFIXES))
return filter(
lambda x: not any(i in x for i in GYP_UNSUPPORTED_FEATURES), gyp_files)
def missing_gn_files():
gn_values = set(itertools.chain(
*[iflatten_gn_file(gn_file) for gn_file in GN_FILES]
))
gn_files = sorted(icheck_values(gn_values, ALL_GN_PREFIXES))
return filter(
lambda x: not any(i in x for i in GN_UNSUPPORTED_FEATURES), gn_files)
def main():
print "----------- Files not in gyp: ------------"
for i in missing_gyp_files():
print i
print "\n----------- Files not in gn: -------------"
for i in missing_gn_files():
print i
return 0
if '__main__' == __name__:
sys.exit(main())

View File

@ -1,280 +0,0 @@
#!/usr/bin/env python
# Copyright 2016 the V8 project authors. All rights reserved.
# Copyright 2014 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
"""Given the output of -t commands from a ninja build for a gyp and GN generated
build, report on differences between the command lines."""
import os
import shlex
import subprocess
import sys
# Must be in v8/.
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
os.chdir(BASE_DIR)
g_total_differences = 0
def FindAndRemoveArgWithValue(command_line, argname):
"""Given a command line as a list, remove and return the value of an option
that takes a value as a separate entry.
Modifies |command_line| in place.
"""
if argname not in command_line:
return ''
location = command_line.index(argname)
value = command_line[location + 1]
command_line[location:location + 2] = []
return value
def MergeSpacedArgs(command_line, argname):
"""Combine all arguments |argname| with their values, separated by a space."""
i = 0
result = []
while i < len(command_line):
arg = command_line[i]
if arg == argname:
result.append(arg + ' ' + command_line[i + 1])
i += 1
else:
result.append(arg)
i += 1
return result
def NormalizeSymbolArguments(command_line):
"""Normalize -g arguments.
If there's no -g args, it's equivalent to -g0. -g2 is equivalent to -g.
Modifies |command_line| in place.
"""
# Strip -g0 if there's no symbols.
have_some_symbols = False
for x in command_line:
if x.startswith('-g') and x != '-g0':
have_some_symbols = True
if not have_some_symbols and '-g0' in command_line:
command_line.remove('-g0')
# Rename -g2 to -g.
if '-g2' in command_line:
command_line[command_line.index('-g2')] = '-g'
def GetFlags(lines, build_dir):
"""Turn a list of command lines into a semi-structured dict."""
is_win = sys.platform == 'win32'
flags_by_output = {}
for line in lines:
command_line = shlex.split(line.strip(), posix=not is_win)[1:]
output_name = FindAndRemoveArgWithValue(command_line, '-o')
dep_name = FindAndRemoveArgWithValue(command_line, '-MF')
NormalizeSymbolArguments(command_line)
command_line = MergeSpacedArgs(command_line, '-Xclang')
cc_file = [x for x in command_line if x.endswith('.cc') or
x.endswith('.c') or
x.endswith('.cpp')]
if len(cc_file) != 1:
print 'Skipping %s' % command_line
continue
assert len(cc_file) == 1
if is_win:
rsp_file = [x for x in command_line if x.endswith('.rsp')]
assert len(rsp_file) <= 1
if rsp_file:
rsp_file = os.path.join(build_dir, rsp_file[0][1:])
with open(rsp_file, "r") as open_rsp_file:
command_line = shlex.split(open_rsp_file, posix=False)
defines = [x for x in command_line if x.startswith('-D')]
include_dirs = [x for x in command_line if x.startswith('-I')]
dash_f = [x for x in command_line if x.startswith('-f')]
warnings = \
[x for x in command_line if x.startswith('/wd' if is_win else '-W')]
others = [x for x in command_line if x not in defines and \
x not in include_dirs and \
x not in dash_f and \
x not in warnings and \
x not in cc_file]
for index, value in enumerate(include_dirs):
if value == '-Igen':
continue
path = value[2:]
if not os.path.isabs(path):
path = os.path.join(build_dir, path)
include_dirs[index] = '-I' + os.path.normpath(path)
# GYP supports paths above the source root like <(DEPTH)/../foo while such
# paths are unsupported by gn. But gn allows to use system-absolute paths
# instead (paths that start with single '/'). Normalize all paths.
cc_file = [os.path.normpath(os.path.join(build_dir, cc_file[0]))]
# Filter for libFindBadConstructs.so having a relative path in one and
# absolute path in the other.
others_filtered = []
for x in others:
if x.startswith('-Xclang ') and x.endswith('libFindBadConstructs.so'):
others_filtered.append(
'-Xclang ' +
os.path.join(os.getcwd(),
os.path.normpath(
os.path.join('out/gn_flags', x.split(' ', 1)[1]))))
elif x.startswith('-B'):
others_filtered.append(
'-B' +
os.path.join(os.getcwd(),
os.path.normpath(os.path.join('out/gn_flags', x[2:]))))
else:
others_filtered.append(x)
others = others_filtered
flags_by_output[cc_file[0]] = {
'output': output_name,
'depname': dep_name,
'defines': sorted(defines),
'include_dirs': sorted(include_dirs), # TODO(scottmg): This is wrong.
'dash_f': sorted(dash_f),
'warnings': sorted(warnings),
'other': sorted(others),
}
return flags_by_output
def CompareLists(gyp, gn, name, dont_care_gyp=None, dont_care_gn=None):
"""Return a report of any differences between gyp and gn lists, ignoring
anything in |dont_care_{gyp|gn}| respectively."""
global g_total_differences
if not dont_care_gyp:
dont_care_gyp = []
if not dont_care_gn:
dont_care_gn = []
output = ''
if gyp[name] != gn[name]:
gyp_set = set(gyp[name])
gn_set = set(gn[name])
missing_in_gyp = gyp_set - gn_set
missing_in_gn = gn_set - gyp_set
missing_in_gyp -= set(dont_care_gyp)
missing_in_gn -= set(dont_care_gn)
if missing_in_gyp or missing_in_gn:
output += ' %s differ:\n' % name
if missing_in_gyp:
output += ' In gyp, but not in GN:\n %s' % '\n '.join(
sorted(missing_in_gyp)) + '\n'
g_total_differences += len(missing_in_gyp)
if missing_in_gn:
output += ' In GN, but not in gyp:\n %s' % '\n '.join(
sorted(missing_in_gn)) + '\n\n'
g_total_differences += len(missing_in_gn)
return output
def Run(command_line):
"""Run |command_line| as a subprocess and return stdout. Raises on error."""
try:
return subprocess.check_output(command_line, shell=True)
except subprocess.CalledProcessError as e:
# Rescue the output we got until the exception happened.
print '#### Stdout: ####################################################'
print e.output
print '#################################################################'
raise
def main():
if len(sys.argv) < 4:
print ('usage: %s gn_outdir gyp_outdir gn_target '
'[gyp_target1, gyp_target2, ...]' % __file__)
return 1
if len(sys.argv) == 4:
sys.argv.append(sys.argv[3])
gn_out_dir = sys.argv[1]
print >> sys.stderr, 'Expecting gn outdir in %s...' % gn_out_dir
gn = Run('ninja -C %s -t commands %s' % (gn_out_dir, sys.argv[3]))
if sys.platform == 'win32':
# On Windows flags are stored in .rsp files which are created during build.
print >> sys.stderr, 'Building in %s...' % gn_out_dir
Run('ninja -C %s -d keeprsp %s' % (gn_out_dir, sys.argv[3]))
gyp_out_dir = sys.argv[2]
print >> sys.stderr, 'Expecting gyp outdir in %s...' % gyp_out_dir
gyp = Run('ninja -C %s -t commands %s' % (gyp_out_dir, " ".join(sys.argv[4:])))
if sys.platform == 'win32':
# On Windows flags are stored in .rsp files which are created during build.
print >> sys.stderr, 'Building in %s...' % gyp_out_dir
Run('ninja -C %s -d keeprsp %s' % (gyp_out_dir, " ".join(sys.argv[4:])))
all_gyp_flags = GetFlags(gyp.splitlines(),
os.path.join(os.getcwd(), gyp_out_dir))
all_gn_flags = GetFlags(gn.splitlines(),
os.path.join(os.getcwd(), gn_out_dir))
gyp_files = set(all_gyp_flags.keys())
gn_files = set(all_gn_flags.keys())
different_source_list = gyp_files != gn_files
if different_source_list:
print 'Different set of sources files:'
print ' In gyp, not in GN:\n %s' % '\n '.join(
sorted(gyp_files - gn_files))
print ' In GN, not in gyp:\n %s' % '\n '.join(
sorted(gn_files - gyp_files))
print '\nNote that flags will only be compared for files in both sets.\n'
file_list = gyp_files & gn_files
files_with_given_differences = {}
for filename in sorted(file_list):
gyp_flags = all_gyp_flags[filename]
gn_flags = all_gn_flags[filename]
differences = CompareLists(gyp_flags, gn_flags, 'dash_f')
differences += CompareLists(gyp_flags, gn_flags, 'defines')
differences += CompareLists(gyp_flags, gn_flags, 'include_dirs',
['-I%s' % os.path.dirname(BASE_DIR)])
differences += CompareLists(gyp_flags, gn_flags, 'warnings',
# More conservative warnings in GN we consider to be OK.
dont_care_gyp=[
'/wd4091', # 'keyword' : ignored on left of 'type' when no variable
# is declared.
'/wd4456', # Declaration hides previous local declaration.
'/wd4457', # Declaration hides function parameter.
'/wd4458', # Declaration hides class member.
'/wd4459', # Declaration hides global declaration.
'/wd4702', # Unreachable code.
'/wd4800', # Forcing value to bool 'true' or 'false'.
'/wd4838', # Conversion from 'type' to 'type' requires a narrowing
# conversion.
] if sys.platform == 'win32' else None,
dont_care_gn=[
'-Wendif-labels',
'-Wextra',
'-Wsign-compare',
] if not sys.platform == 'win32' else None)
differences += CompareLists(gyp_flags, gn_flags, 'other')
if differences:
files_with_given_differences.setdefault(differences, []).append(filename)
for diff, files in files_with_given_differences.iteritems():
print '\n'.join(sorted(files))
print diff
print 'Total differences:', g_total_differences
# TODO(scottmg): Return failure on difference once we're closer to identical.
return 0
if __name__ == '__main__':
sys.exit(main())

View File

@ -1,97 +0,0 @@
#!/bin/sh
# Copyright 2013 the V8 project authors. All rights reserved.
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are
# met:
#
# * Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
# * Redistributions in binary form must reproduce the above
# copyright notice, this list of conditions and the following
# disclaimer in the documentation and/or other materials provided
# with the distribution.
# * Neither the name of Google Inc. nor the names of its
# contributors may be used to endorse or promote products derived
# from this software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
# Monkey-patch GYP.
cat > tools/gyp/gyp.mingw << EOF
#!/usr/bin/env python
# Copyright (c) 2009 Google Inc. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
import sys
# TODO(mark): sys.path manipulation is some temporary testing stuff.
try:
import gyp
except ImportError, e:
import os.path
sys.path.append(os.path.join(os.path.dirname(sys.argv[0]), 'pylib'))
import gyp
def MonkeyBuildFileTargets(target_list, build_file):
"""From a target_list, returns the subset from the specified build_file.
"""
build_file = build_file.replace('/', '\\\\')
return [p for p in target_list if gyp.common.BuildFile(p) == build_file]
gyp.common.BuildFileTargets = MonkeyBuildFileTargets
import gyp.generator.make
import os
def Monkey_ITIP(self):
"""Returns the location of the final output for an installable target."""
sep = os.path.sep
# Xcode puts shared_library results into PRODUCT_DIR, and some gyp files
# rely on this. Emulate this behavior for mac.
if (self.type == 'shared_library' and
(self.flavor != 'mac' or self.toolset != 'target')):
# Install all shared libs into a common directory (per toolset) for
# convenient access with LD_LIBRARY_PATH.
return '\$(builddir)%slib.%s%s%s' % (sep, self.toolset, sep, self.alias)
return '\$(builddir)' + sep + self.alias
gyp.generator.make.MakefileWriter._InstallableTargetInstallPath = Monkey_ITIP
if __name__ == '__main__':
sys.exit(gyp.main(sys.argv[1:]))
EOF
# Delete old generated Makefiles.
find out -name '*.mk' -or -name 'Makefile*' -exec rm {} \;
# Generate fresh Makefiles.
mv tools/gyp/gyp tools/gyp/gyp.original
mv tools/gyp/gyp.mingw tools/gyp/gyp
make out/Makefile.ia32
mv tools/gyp/gyp tools/gyp/gyp.mingw
mv tools/gyp/gyp.original tools/gyp/gyp
# Patch generated Makefiles: replace most backslashes with forward slashes,
# fix library names in linker flags.
FILES=$(find out -name '*.mk' -or -name 'Makefile*')
for F in $FILES ; do
echo "Patching $F..."
cp $F $F.orig
cat $F.orig \
| sed -e 's|\([)a-zA-Z0-9]\)\\\([a-zA-Z]\)|\1/\2|g' \
-e 's|\([)a-zA-Z0-9]\)\\\\\([a-zA-Z]\)|\1/\2|g' \
-e 's|'%s/n'|'%s\\\\n'|g' \
-e 's|-lwinmm\.lib|-lwinmm|g' \
-e 's|-lws2_32\.lib|-lws2_32|g' \
> $F
rm $F.orig
done

View File

@ -54,6 +54,9 @@ ADD_TO_GITIGNORE = [ "/testing/gtest/*",
"!/third_party/jinja2",
"!/third_party/markupsafe" ]
# Node.js owns deps/v8/gypfiles in their downstream repository.
FILES_TO_KEEP = [ "gypfiles" ]
def RunGclient(path):
assert os.path.isdir(path)
print ">> Running gclient sync"
@ -73,7 +76,7 @@ def CommitPatch(options):
cwd=options.v8_path,
)
def UpdateTarget(repository, options):
def UpdateTarget(repository, options, files_to_keep):
source = os.path.join(options.v8_path, *repository)
target = os.path.join(options.node_path, TARGET_SUBDIR, *repository)
print ">> Updating target directory %s" % target
@ -83,16 +86,24 @@ def UpdateTarget(repository, options):
# Remove possible remnants of previous incomplete runs.
node_common.UninitGit(target)
git_commands = [
["git", "init"], # initialize target repo
["git", "remote", "add", "origin", source], # point to the source repo
["git", "fetch", "origin", "HEAD"], # sync to the current branch
["git", "reset", "--hard", "FETCH_HEAD"], # reset to the current branch
["git", "clean", "-fd"], # delete removed files
]
git_args = []
git_args.append(["init"]) # initialize target repo
if files_to_keep:
git_args.append(["add"] + files_to_keep) # add and commit
git_args.append(["commit", "-m", "keep files"]) # files we want to keep
git_args.append(["remote", "add", "source", source]) # point to source repo
git_args.append(["fetch", "source", "HEAD"]) # sync to current branch
git_args.append(["checkout", "-f", "FETCH_HEAD"]) # switch to that branch
git_args.append(["clean", "-fd"]) # delete removed files
if files_to_keep:
git_args.append(["cherry-pick", "master"]) # restore kept files
try:
for command in git_commands:
subprocess.check_call(command, cwd=target)
for args in git_args:
subprocess.check_call(["git"] + args, cwd=target)
except:
raise
finally:
@ -155,11 +166,11 @@ def Main(args):
if options.with_patch:
CommitPatch(options)
# Update main V8 repository.
UpdateTarget([""], options)
UpdateTarget([""], options, FILES_TO_KEEP)
# Patch .gitignore before updating sub-repositories.
UpdateGitIgnore(options)
for repo in SUB_REPOSITORIES:
UpdateTarget(repo, options)
UpdateTarget(repo, options, None)
if options.commit:
CreateCommit(options)

View File

@ -281,8 +281,7 @@ class SourceProcessor(SourceFileProcessor):
Check that all files include a copyright notice and no trailing whitespaces.
"""
RELEVANT_EXTENSIONS = ['.js', '.cc', '.h', '.py', '.c',
'.status', '.gyp', '.gypi']
RELEVANT_EXTENSIONS = ['.js', '.cc', '.h', '.py', '.c', '.status']
def __init__(self):
self.runtime_function_call_pattern = self.CreateRuntimeFunctionCallMatcher()
@ -332,7 +331,7 @@ class SourceProcessor(SourceFileProcessor):
def IgnoreDir(self, name):
return (super(SourceProcessor, self).IgnoreDir(name) or
name in ('third_party', 'gyp', 'out', 'obj', 'DerivedSources'))
name in ('third_party', 'out', 'obj', 'DerivedSources'))
IGNORE_COPYRIGHTS = ['box2d.js',
'cpplint.py',