123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107 |
- # -*- mode: ruby -*-
- # vi: set ft=ruby ts=2 sts=2 sw=2 et :
- # 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.
- config.vm.box = "ubuntu/bionic64"
- #
- # mass-define "generic" Ubuntu boxes
- #
- %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
- add-apt-repository ppa:stesie/libv8
- apt-get update
- 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}
- 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
- }
- 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
- end
|