diff --git a/Tools/Vagrant/Vagrantfile b/Tools/Vagrant/Vagrantfile new file mode 100644 index 000000000..8c6d0f381 --- /dev/null +++ b/Tools/Vagrant/Vagrantfile @@ -0,0 +1,38 @@ +# -*- mode: ruby -*- +# vi: set ft=ruby : + +def gui? + !ENV.fetch('GUI', '').empty? +end + +# Vagrantfile API/syntax version. Don't touch unless you know what you're doing! +VAGRANTFILE_API_VERSION = '2' + +Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| + config.vm.box = 'ubuntu/trusty64' + + config.vm.provider 'virtualbox' do |vb| + vb.memory = 1024 + if gui? + vb.memory = 2048 + vb.customize ['modifyvm', :id, '--vram', '256'] + vb.customize ['modifyvm', :id, '--accelerate3d', 'on'] + vb.customize ['modifyvm', :id, '--hwvirtex', 'on'] + vb.gui = true + end + end + + config.vm.synced_folder '../../', '/torque' + + config.vm.provision :shell, path: 'provision.sh' + if gui? + config.vm.provision :shell, path: 'provision-gui.sh' + end + + # config.vm.network 'forwarded_port', guest: 80, host: 8080 + + # More info at http://fgrehm.viewdocs.io/vagrant-cachier/usage + if Vagrant.has_plugin?('vagrant-cachier') + config.cache.scope = :box + end +end diff --git a/Tools/Vagrant/provision-gui.sh b/Tools/Vagrant/provision-gui.sh new file mode 100644 index 000000000..36ab028a7 --- /dev/null +++ b/Tools/Vagrant/provision-gui.sh @@ -0,0 +1,5 @@ +# Install Unity desktop for GUI purposes. +apt-get install --no-install-recommends \ + ubuntu-desktop \ + gnome-terminal \ + -y diff --git a/Tools/Vagrant/provision.sh b/Tools/Vagrant/provision.sh new file mode 100644 index 000000000..cec4b6938 --- /dev/null +++ b/Tools/Vagrant/provision.sh @@ -0,0 +1,31 @@ +# Make sure package listings are up to date. +apt-get update -y + +# Install software for development. +sudo apt-get install \ + git \ + build-essential \ + nasm \ + cmake \ + cmake-qt-gui \ + xorg-dev \ + ninja-build \ + gcc-multilib \ + g++-multilib \ + -y + +# Install libraries. +sudo apt-get install \ + libogg-dev \ + libxft-dev \ + libx11-dev \ + libxxf86vm-dev \ + libopenal-dev \ + libfreetype6-dev \ + libxcursor-dev \ + libxinerama-dev \ + libxi-dev \ + libxrandr-dev \ + libxss-dev \ + libglu1-mesa-dev \ + -y