0
0
mirror of https://github.com/phpv8/v8js.git synced 2024-11-14 07:18:40 +00:00
phpv8/Vagrantfile

108 lines
3.3 KiB
Ruby
Raw Normal View History

2017-01-22 11:19:44 +00:00
# -*- mode: ruby -*-
2017-01-22 13:18:02 +00:00
# vi: set ft=ruby ts=2 sts=2 sw=2 et :
2017-01-22 11:19:44 +00:00
# All Vagrant configuration is done below. The "2" in Vagrant.configure
# configures the configuration version (we support older styles for
# backwards compatibility). Please don't change it unless you know what
# you're doing.
Vagrant.configure("2") do |config|
# Every Vagrant development environment requires a box. You can search for
# boxes at https://atlas.hashicorp.com/search.
2019-06-22 16:55:58 +00:00
config.vm.box = "ubuntu/bionic64"
2017-03-06 20:12:33 +00:00
2017-01-22 13:18:02 +00:00
#
# mass-define "generic" Ubuntu boxes
#
2019-06-22 16:55:58 +00:00
%w{7.5}.each { |version|
config.vm.define "v8-#{version}" do |i|
i.vm.synced_folder ".", "/data/v8js"
i.vm.provision "shell", inline: <<-SHELL
gpg --keyserver keys.gnupg.net --recv 7F438280EF8D349F
gpg --armor --export 7F438280EF8D349F | apt-key add -
apt-get update
apt-get install -y software-properties-common gdb tmux git tig curl apache2-utils lcov
add-apt-repository ppa:ondrej/php
2018-11-06 12:17:49 +00:00
add-apt-repository ppa:stesie/libv8
apt-get update
2017-03-11 17:11:27 +00:00
apt-get install -y php7.1-dev libv8-#{version}-dbg libv8-#{version}-dev
SHELL
end
}
%w{}.each { |version|
config.vm.define "v8-#{version}" do |i|
i.vm.synced_folder ".", "/data/v8js"
i.vm.provision "shell", inline: <<-SHELL
gpg --keyserver keys.gnupg.net --recv 7F438280EF8D349F
gpg --armor --export 7F438280EF8D349F | apt-key add -
apt-get update
apt-get install -y software-properties-common gdb tmux git tig curl apache2-utils lcov build-essential python libglib2.0-dev
add-apt-repository ppa:ondrej/php
apt-get update
apt-get install -y php7.1-dev
mkdir -p /data
cd /data
# Install depot_tools first (needed for source checkout)
git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git
export PATH=`pwd`/depot_tools:"$PATH"
# Download v8
fetch v8
cd v8
# checkout version
git checkout #{version}
gclient sync
# Setup GN
tools/dev/v8gen.py -vv x64.release -- is_component_build=true
# Build
ninja -C out.gn/x64.release/
# Install to /opt/libv8-#{version}/
sudo mkdir -p /opt/libv8-#{version}/{lib,include}
2017-05-29 19:15:52 +00:00
sudo cp out.gn/x64.release/lib*.so out.gn/x64.release/*_blob.bin out.gn/x64.release/icudtl.dat /opt/libv8-#{version}/lib/
sudo cp -R include/* /opt/libv8-#{version}/include/
SHELL
end
}
2019-06-22 18:25:13 +00:00
config.vm.define "php-7.4" do |i|
i.vm.synced_folder ".", "/data/v8js"
i.vm.provision "shell", inline: <<-SHELL
gpg --keyserver keys.gnupg.net --recv 7F438280EF8D349F
gpg --armor --export 7F438280EF8D349F | apt-key add -
apt-get update
apt-get install -y software-properties-common gdb tmux git tig curl apache2-utils lcov
add-apt-repository ppa:stesie/libv8
apt-get update
apt-get install -y libv8-7.5-dbg libv8-7.5-dev
test -x /tmp/php-src || git clone https://github.com/php/php-src.git /tmp/php-src -b PHP-7.4 --depth 1
cd /tmp/php-src
apt-get install -y build-essential bison re2c libreadline-dev
./buildconf
./configure --disable-all --with-readline
make -j4
make install
SHELL
end
config.vm.provision "shell", privileged: false, inline: <<-SHELL
sudo mkdir -p /data/build && sudo chown $USER:$USER /data/build
SHELL
2017-01-22 11:19:44 +00:00
end