xref: /aosp_15_r20/external/cronet/third_party/cpu_features/src/cmake/ci/vagrant/freebsd/Vagrantfile (revision 6777b5387eb2ff775bb5750e3f5d96f37fb7352b)
1# -*- mode: ruby -*-
2# vi: set ft=ruby :
3
4# All Vagrant configuration is done below. The "2" in Vagrant.configure
5# configures the configuration version (we support older styles for
6# backwards compatibility). Please don't change it unless you know what
7# you're doing.
8Vagrant.configure("2") do |config|
9  # The most common configuration options are documented and commented below.
10  # For a complete reference, please see the online documentation at
11  # https://docs.vagrantup.com.
12
13  # Every Vagrant development environment requires a box. You can search for
14  # boxes at https://vagrantcloud.com/search.
15  config.vm.guest = :freebsd
16  config.vm.box = "generic/freebsd12"
17
18  config.ssh.shell = "sh"
19
20  # Disable automatic box update checking. If you disable this, then
21  # boxes will only be checked for updates when the user runs
22  # `vagrant box outdated`. This is not recommended.
23  # config.vm.box_check_update = false
24
25  # Create a forwarded port mapping which allows access to a specific port
26  # within the machine from a port on the host machine. In the example below,
27  # accessing "localhost:8080" will access port 80 on the guest machine.
28  # NOTE: This will enable public access to the opened port
29  # config.vm.network "forwarded_port", guest: 80, host: 8080
30
31  # Create a forwarded port mapping which allows access to a specific port
32  # within the machine from a port on the host machine and only allow access
33  # via 127.0.0.1 to disable public access
34  # config.vm.network "forwarded_port", guest: 80, host: 8080, host_ip: "127.0.0.1"
35
36  # Create a private network, which allows host-only access to the machine
37  # using a specific IP.
38  # config.vm.network "private_network", ip: "192.168.33.10"
39
40  # Create a public network, which generally matched to bridged network.
41  # Bridged networks make the machine appear as another physical device on
42  # your network.
43  # config.vm.network "public_network"
44
45  # Share an additional folder to the guest VM. The first argument is
46  # the path on the host to the actual folder. The second argument is
47  # the path on the guest to mount the folder. And the optional third
48  # argument is a set of non-required options.
49  #config.vm.synced_folder "../../..", "/home/vagrant/project"
50  config.vm.synced_folder ".", "/vagrant", id: "vagrant-root", disabled: true
51
52  config.vm.provision "file", source: "../../../../CMakeLists.txt", destination: "$HOME/project/"
53  config.vm.provision "file", source: "../../../../cmake", destination: "$HOME/project/"
54  config.vm.provision "file", source: "../../../../include", destination: "$HOME/project/"
55  config.vm.provision "file", source: "../../../../src", destination: "$HOME/project/"
56  config.vm.provision "file", source: "../../../../test", destination: "$HOME/project/"
57
58  # Provider-specific configuration so you can fine-tune various
59  # backing providers for Vagrant. These expose provider-specific options.
60  # Example for VirtualBox:
61  #
62  # config.vm.provider "virtualbox" do |vb|
63  #   # Display the VirtualBox GUI when booting the machine
64  #   vb.gui = true
65  #
66  #   # Customize the amount of memory on the VM:
67  #   vb.memory = "1024"
68  # end
69  #
70  # View the documentation for the provider you are using for more
71  # information on available options.
72
73  # Enable provisioning with a shell script. Additional provisioners such as
74  # Ansible, Chef, Docker, Puppet and Salt are also available. Please see the
75  # documentation for more information about their specific syntax and use.
76  # note: clang installed by default
77  config.vm.provision "env", type: "shell", inline:<<-SHELL
78  set -x
79  pkg update -f
80  pkg install -y git cmake
81  SHELL
82  config.vm.provision "devel", type: "shell", inline:<<-SHELL
83  set -x
84  cd project
85  ls
86  SHELL
87  config.vm.provision "configure", type: "shell", inline:<<-SHELL
88  set -x
89  cd project
90  cmake -S. -Bbuild -DBUILD_TESTING=ON
91  SHELL
92  config.vm.provision "build", type: "shell", inline:<<-SHELL
93  set -x
94  cd project
95  cmake --build build -v
96  SHELL
97  config.vm.provision "test", type: "shell", inline:<<-SHELL
98  set -x
99  cd project
100  cmake --build build --target test -v
101  SHELL
102  config.vm.provision "test", type: "shell", inline:<<-SHELL
103  set -x
104  cd project
105  cmake --build build --target install -v
106  SHELL
107end
108