blob: 3848069052a837568581872480b36e9eb641aedb [file] [log] [blame]
# -*- mode: ruby -*-
# vi: set ft=ruby :
Vagrant.configure("2") do |config|
config.vm.box = "bento/ubuntu-16.04"
config.vm.network "private_network", type: "dhcp"
# Share an additional folder to the guest VM. The first argument is
# the path on the host to the actual folder. The second argument is
# the path on the guest to mount the folder. And the optional third
# argument is a set of non-required options.
config.vm.synced_folder "..", "/prjxray", type: "nfs"
config.vm.provider "virtualbox" do |vb|
vb.gui = true
end
# Base boxes are almost always server installs. Install the desktop
# components along with the C++ build tools.
config.vm.provision "shell", inline: <<-SHELL
apt-get update
apt-get upgrade -y
apt-get install -y ubuntu-desktop build-essential git cmake
SHELL
# Strangely, headless Vivado installs still require a running X server.
# Turn on auto-login so the user's X server is active.
config.vm.provision "shell", inline: <<-SHELL
mkdir -p /etc/lightdm/
echo "[Seat:*]" > /etc/lightdm/lightdm.conf
echo "autologin-user=vagrant" >> /etc/lightdm/lightdm.conf
systemctl start lightdm
SHELL
# Install Vivado.
config.vm.provision "shell", inline: <<-SHELL
if [ ! -d /vagrant/Vivado ]; then
echo "No Vivado download found. Skipping install."
else
echo "Installing Vivado. This takes a while. I suggest going for a walk."
export DISPLAY=:0
/vagrant/Vivado/xsetup --agree 3rdPartyEULA,WebTalkTerms,XilinxEULA --batch Install -e "Vivado HL WebPACK" --location "/opt/Xilinx"
cp /vagrant/profile.d/* /etc/profile.d/
fi
SHELL
# Turn off idle screen locking and screensaver password.
config.vm.provision "shell" do |s|
s.privileged = false
s.inline = <<-SHELL
export DISPLAY=:0
dconf write /org/gnome/desktop/screensaver/idle-activation-enabled false
dconf write /org/gnome/desktop/screensaver/lock-enabled false
SHELL
end
config.vm.provision :reload
end