From 97670c449ddc7ab88363cdd575c107d6853172c8 Mon Sep 17 00:00:00 2001 From: Peter Barker Date: Fri, 22 Jan 2016 11:04:05 +1100 Subject: [PATCH] Add a Vagrantfile --- .vagrantconfig.yml | 21 ++++++++++++++ Vagrantfile | 70 ++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 91 insertions(+) create mode 100644 .vagrantconfig.yml create mode 100644 Vagrantfile diff --git a/.vagrantconfig.yml b/.vagrantconfig.yml new file mode 100644 index 000000000..17725979b --- /dev/null +++ b/.vagrantconfig.yml @@ -0,0 +1,21 @@ +configs: + dev: + 'qt_deps_tarball': '/vagrant/Qt5.5.1-linux.tar.bz2' + 'qt_deps_unpack_parent_dir': '/tmp' + + 'qt_deps_unpack_dir': '/tmp/Qt' + 'qt_deps_bin_unpack_dir': '/tmp/Qt/5.5/gcc_64/bin' + 'qt_deps_lib_unpack_dir': '/tmp/Qt/5.5/gcc_64/lib' + 'qt_deps_plugins_unpack_dir': '/tmp/Qt/5.5/gcc_64/plugins' + 'qt_deps_qml_unpack_dir': '/tmp/Qt/5.5/gcc_64/qml' + + 'qt_deps_dir': '/vagrant/shadow-build/release/Qt' + 'qt_deps_bin_dir': '/vagrant/shadow-build/release/Qt/bin' + 'qt_deps_lib_dir': '/vagrant/shadow-build/release/Qt/libs' + 'qt_deps_plugins_dir': '/vagrant/shadow-build/release/Qt/plugins' + 'qt_deps_qml_dir': '/vagrant/shadow-build/release/Qt/qml' + + 'spec': 'linux-g++-64' + 'shadow_build_dir': '/vagrant/shadow-build' + 'pro': '/vagrant/qgroundcontrol.pro' + 'deps_url': 'https://s3-us-west-2.amazonaws.com/qgroundcontrol/dependencies' diff --git a/Vagrantfile b/Vagrantfile new file mode 100644 index 000000000..e49807d9c --- /dev/null +++ b/Vagrantfile @@ -0,0 +1,70 @@ +# -*- mode: ruby -*- +# vi: set ft=ruby : + +require 'yaml' + +current_dir = File.dirname(File.expand_path(__FILE__)) +configfile = YAML.load_file("#{current_dir}/.vagrantconfig.yml") +yaml_config = configfile['configs']['dev'] + +Vagrant.configure(2) do |config| + config.vm.box = "ubuntu/trusty64" + config.vm.provider :virtualbox do |vb| + vb.customize ["modifyvm", :id, "--memory", "4096"] + vb.customize ["modifyvm", :id, "--cpus", "1"] + end + + # the "dev configuration puts the build products and a suitable + # environment into the /vagrant directory. This allows you to run + # qgroundcontrol on the host machine with: + # "cd shadow-build/release; ../../deploy/qgroundcontrol-start.sh" + + $config_shell = <<-'SHELL' + sudo apt-get update -y + sudo apt-get dist-upgrade -y + sudo apt-get install -y git build-essential + sudo apt-get install -y espeak libespeak-dev libudev-dev libsdl1.2-dev + sudo apt-get install -y doxygen + sudo apt-get install -y gstreamer1.0* libgstreamer1.0* + + # taken from travis.yml + su - vagrant -c 'wget --continue -q %{deps_url}/%{qt_deps_tarball}' + su - vagrant -c 'rm -rf %{qt_deps_unpack_dir}' + su - vagrant -c 'mkdir -p %{qt_deps_unpack_parent_dir}' + su - vagrant -c 'tar jxf "%{qt_deps_tarball}" -C %{qt_deps_unpack_parent_dir}' + su - vagrant -c 'rm -rf %{shadow_build_dir}' + su - vagrant -c 'mkdir -p %{shadow_build_dir}' + su - vagrant -c "cd %{shadow_build_dir}; LD_LIBRARY_PATH=%{qt_deps_lib_unpack_dir} PATH=%{qt_deps_bin_unpack_dir}:\$PATH qmake -r %{pro} -spec %{spec}" + su - vagrant -c "cd %{shadow_build_dir}; LD_LIBRARY_PATH=%{qt_deps_lib_unpack_dir} PATH=%{qt_deps_bin_unpack_dir}:\$PATH make -j4" + + su - vagrant -c 'mkdir -p %{qt_deps_dir}' + su - vagrant -c 'cp -a %{qt_deps_bin_unpack_dir} %{qt_deps_bin_dir}' + su - vagrant -c 'cp -a %{qt_deps_lib_unpack_dir} %{qt_deps_lib_dir}' + su - vagrant -c 'cp -a %{qt_deps_plugins_unpack_dir} %{qt_deps_plugins_dir}' + su - vagrant -c 'cp -a %{qt_deps_qml_unpack_dir} %{qt_deps_qml_dir}' + + SHELL + + config.vm.provision "dev", type: "shell", inline: $config_shell % { + :shadow_build_dir => yaml_config['shadow_build_dir'], + :qt_deps_tarball => yaml_config['qt_deps_tarball'], + :pro => yaml_config['pro'], + :spec => yaml_config['spec'], + :deps_url => yaml_config['deps_url'], + + :qt_deps_unpack_parent_dir => yaml_config['qt_deps_unpack_parent_dir'], + :qt_deps_unpack_dir => yaml_config['qt_deps_unpack_dir'], + :qt_deps_bin_unpack_dir => yaml_config['qt_deps_bin_unpack_dir'], + :qt_deps_lib_unpack_dir => yaml_config['qt_deps_lib_unpack_dir'], + :qt_deps_plugins_unpack_dir => yaml_config['qt_deps_plugins_unpack_dir'], + :qt_deps_qml_unpack_dir => yaml_config['qt_deps_qml_unpack_dir'], + + :qt_deps_dir => yaml_config['qt_deps_dir'], + :qt_deps_bin_dir => yaml_config['qt_deps_bin_dir'], + :qt_deps_lib_dir => yaml_config['qt_deps_lib_dir'], + :qt_deps_plugins_dir => yaml_config['qt_deps_plugins_dir'], + :qt_deps_qml_dir => yaml_config['qt_deps_qml_dir'], + } + + +end -- 2.22.0