Alexander Afanasyev | c7c9900 | 2015-10-09 17:27:30 -0700 | [diff] [blame] | 1 | #!/usr/bin/env bash |
Davide Pesavento | 423553e | 2022-08-19 20:46:06 -0400 | [diff] [blame] | 2 | set -eo pipefail |
Alexander Afanasyev | c7c9900 | 2015-10-09 17:27:30 -0700 | [diff] [blame] | 3 | |
Davide Pesavento | 16479f3 | 2024-02-10 17:10:35 -0500 | [diff] [blame] | 4 | APT_PKGS=( |
Davide Pesavento | 679c42a | 2025-03-25 20:50:03 -0400 | [diff] [blame^] | 5 | dpkg-dev |
| 6 | g++ |
Davide Pesavento | 16479f3 | 2024-02-10 17:10:35 -0500 | [diff] [blame] | 7 | libboost-chrono-dev |
| 8 | libboost-date-time-dev |
| 9 | libboost-dev |
| 10 | libboost-filesystem-dev |
| 11 | libboost-log-dev |
| 12 | libboost-program-options-dev |
| 13 | libboost-stacktrace-dev |
| 14 | libboost-test-dev |
| 15 | libboost-thread-dev |
| 16 | libsqlite3-dev |
| 17 | libssl-dev |
Davide Pesavento | 679c42a | 2025-03-25 20:50:03 -0400 | [diff] [blame^] | 18 | pkgconf |
| 19 | python3 |
Davide Pesavento | 16479f3 | 2024-02-10 17:10:35 -0500 | [diff] [blame] | 20 | ) |
Davide Pesavento | 679c42a | 2025-03-25 20:50:03 -0400 | [diff] [blame^] | 21 | DNF_PKGS=( |
| 22 | boost-devel |
| 23 | gcc-c++ |
| 24 | libasan |
| 25 | lld |
| 26 | openssl-devel |
| 27 | pkgconf |
| 28 | python3 |
| 29 | sqlite-devel |
| 30 | ) |
| 31 | FORMULAE=(boost openssl pkgconf) |
Davide Pesavento | 423553e | 2022-08-19 20:46:06 -0400 | [diff] [blame] | 32 | case $JOB_NAME in |
| 33 | *code-coverage) |
Davide Pesavento | 679c42a | 2025-03-25 20:50:03 -0400 | [diff] [blame^] | 34 | APT_PKGS+=(lcov) |
Davide Pesavento | 423553e | 2022-08-19 20:46:06 -0400 | [diff] [blame] | 35 | ;; |
| 36 | *Docs) |
Davide Pesavento | 679c42a | 2025-03-25 20:50:03 -0400 | [diff] [blame^] | 37 | APT_PKGS+=(doxygen graphviz) |
Davide Pesavento | 90a632b | 2021-10-04 01:05:24 -0400 | [diff] [blame] | 38 | FORMULAE+=(doxygen graphviz) |
Davide Pesavento | 423553e | 2022-08-19 20:46:06 -0400 | [diff] [blame] | 39 | ;; |
| 40 | esac |
Alexander Afanasyev | c7c9900 | 2015-10-09 17:27:30 -0700 | [diff] [blame] | 41 | |
Davide Pesavento | 679c42a | 2025-03-25 20:50:03 -0400 | [diff] [blame^] | 42 | install_uv() { |
| 43 | if [[ -z $GITHUB_ACTIONS && $ID_LIKE == *debian* ]]; then |
| 44 | sudo apt-get install -qy --no-install-recommends pipx |
| 45 | pipx upgrade uv || pipx install uv |
| 46 | fi |
| 47 | } |
| 48 | |
Davide Pesavento | 423553e | 2022-08-19 20:46:06 -0400 | [diff] [blame] | 49 | set -x |
| 50 | |
| 51 | if [[ $ID == macos ]]; then |
Davide Pesavento | 679c42a | 2025-03-25 20:50:03 -0400 | [diff] [blame^] | 52 | export HOMEBREW_COLOR=1 |
| 53 | export HOMEBREW_NO_ENV_HINTS=1 |
Davide Pesavento | 90a632b | 2021-10-04 01:05:24 -0400 | [diff] [blame] | 54 | if [[ -n $GITHUB_ACTIONS ]]; then |
Davide Pesavento | dadbc3e | 2023-02-14 02:32:36 -0500 | [diff] [blame] | 55 | export HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK=1 |
Davide Pesavento | 423553e | 2022-08-19 20:46:06 -0400 | [diff] [blame] | 56 | fi |
| 57 | brew update |
| 58 | brew install --formula "${FORMULAE[@]}" |
Davide Pesavento | 423553e | 2022-08-19 20:46:06 -0400 | [diff] [blame] | 59 | elif [[ $ID_LIKE == *debian* ]]; then |
Davide Pesavento | 16479f3 | 2024-02-10 17:10:35 -0500 | [diff] [blame] | 60 | sudo apt-get update -qq |
| 61 | sudo apt-get install -qy --no-install-recommends "${APT_PKGS[@]}" |
Davide Pesavento | 423553e | 2022-08-19 20:46:06 -0400 | [diff] [blame] | 62 | elif [[ $ID_LIKE == *fedora* ]]; then |
Davide Pesavento | 679c42a | 2025-03-25 20:50:03 -0400 | [diff] [blame^] | 63 | sudo dnf install -y "${DNF_PKGS[@]}" |
Alexander Afanasyev | c7c9900 | 2015-10-09 17:27:30 -0700 | [diff] [blame] | 64 | fi |
Davide Pesavento | b2034db | 2022-11-16 17:21:22 -0500 | [diff] [blame] | 65 | |
Davide Pesavento | 679c42a | 2025-03-25 20:50:03 -0400 | [diff] [blame^] | 66 | case $JOB_NAME in |
| 67 | *code-coverage) |
| 68 | install_uv |
| 69 | ;; |
| 70 | *Docs) |
| 71 | install_uv |
| 72 | export FORCE_COLOR=1 |
| 73 | export UV_NO_MANAGED_PYTHON=1 |
| 74 | uv tool install sphinx --upgrade --with-requirements docs/requirements.txt |
| 75 | ;; |
| 76 | esac |