Serenity Operating System
1parameters:
2 os: 'Linux'
3
4steps:
5 - checkout: self
6 persistCredentials: true
7
8 - ${{ if eq(parameters.os, 'Serenity') }}:
9 - script: |
10 wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add -
11 sudo add-apt-repository 'deb http://apt.llvm.org/jammy/ llvm-toolchain-jammy-15 main'
12 sudo apt-get update
13 sudo apt-get install clang-format-15 ccache e2fsprogs gcc-12 g++-12 libstdc++-12-dev libmpfr-dev libmpc-dev ninja-build qemu-utils qemu-system-i386 unzip lld
14 displayName: 'Install Dependencies'
15
16 - ${{ if eq(parameters.os, 'Linux') }}:
17 - script: |
18 sudo apt-get purge -y clang-12 gcc-10
19 wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add -
20 sudo add-apt-repository 'deb http://apt.llvm.org/jammy/ llvm-toolchain-jammy-13 main'
21 sudo apt-get update
22 sudo apt-get install ccache gcc-12 g++-12 clang-13 libstdc++-12-dev ninja-build unzip qt6-base-dev qt6-tools-dev-tools libgl1-mesa-dev
23
24 sudo update-alternatives --install /usr/bin/clang clang /usr/bin/clang-13 100
25 sudo update-alternatives --install /usr/bin/clang++ clang++ /usr/bin/clang++-13 100
26 sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-12 100
27 sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-12 100
28
29 wget https://github.com/WebAssembly/wabt/releases/download/1.0.23/wabt-1.0.23-ubuntu.tar.gz
30 tar -xzf ./wabt-1.0.23-ubuntu.tar.gz
31 rm ./wabt-1.0.23-ubuntu.tar.gz
32 displayName: 'Install Dependencies'
33
34 - ${{ if eq(parameters.os, 'macOS') }}:
35 # macOS ships an ancient Bash 3.x by default
36 - script: |
37 brew update
38 brew install bash ninja wabt ccache unzip qt llvm@15
39 displayName: 'Install Dependencies'
40
41 - ${{ if eq(parameters.os, 'Android') }}:
42 - script: |
43 sudo apt-get install ccache gcc-12 g++-12 libstdc++-12-dev ninja-build unzip
44 sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-12 100
45 sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-12 100
46 displayName: 'Install Dependencies'