xref: /aosp_15_r20/external/skia/tools/install_dependencies.sh (revision c8dee2aa9b3f27cf6c858bd81872bdeb2c07ed17)
1*c8dee2aaSAndroid Build Coastguard Worker#!/bin/sh
2*c8dee2aaSAndroid Build Coastguard Worker# Copyright 2014 Google Inc.
3*c8dee2aaSAndroid Build Coastguard Worker#
4*c8dee2aaSAndroid Build Coastguard Worker# Use of this source code is governed by a BSD-style license that can be
5*c8dee2aaSAndroid Build Coastguard Worker# found in the LICENSE file.
6*c8dee2aaSAndroid Build Coastguard Worker
7*c8dee2aaSAndroid Build Coastguard Worker# install_dependencies.sh will install system-specific Skia
8*c8dee2aaSAndroid Build Coastguard Worker# dependencies using your system's package manager.  If your system is
9*c8dee2aaSAndroid Build Coastguard Worker# not supported, add logic here to support it.
10*c8dee2aaSAndroid Build Coastguard Worker
11*c8dee2aaSAndroid Build Coastguard Worker# Pass in --yes as the first argument to force apt-get to skip Y/n prompts while
12*c8dee2aaSAndroid Build Coastguard Worker# being backward compatible with the old behavior.
13*c8dee2aaSAndroid Build Coastguard Worker
14*c8dee2aaSAndroid Build Coastguard Workerset -e
15*c8dee2aaSAndroid Build Coastguard Worker
16*c8dee2aaSAndroid Build Coastguard Worker# Return 0 iff all package name arguments are installed.
17*c8dee2aaSAndroid Build Coastguard Workerdpkg_all_installed() {
18*c8dee2aaSAndroid Build Coastguard Worker    for arg; do
19*c8dee2aaSAndroid Build Coastguard Worker        if !(dpkg-query -W -f'${Status}' "$arg" 2>/dev/null | \
20*c8dee2aaSAndroid Build Coastguard Worker            grep -q "ok installed"); then
21*c8dee2aaSAndroid Build Coastguard Worker            return 1
22*c8dee2aaSAndroid Build Coastguard Worker        fi
23*c8dee2aaSAndroid Build Coastguard Worker    done
24*c8dee2aaSAndroid Build Coastguard Worker    return 0
25*c8dee2aaSAndroid Build Coastguard Worker}
26*c8dee2aaSAndroid Build Coastguard Worker
27*c8dee2aaSAndroid Build Coastguard Workerif command -v lsb_release > /dev/null ; then
28*c8dee2aaSAndroid Build Coastguard Worker    case $(lsb_release -i -s) in
29*c8dee2aaSAndroid Build Coastguard Worker        Ubuntu|Debian)
30*c8dee2aaSAndroid Build Coastguard Worker            PACKAGES=$(cat<<-EOF
31*c8dee2aaSAndroid Build Coastguard Worker		build-essential
32*c8dee2aaSAndroid Build Coastguard Worker		freeglut3-dev
33*c8dee2aaSAndroid Build Coastguard Worker		libfontconfig-dev
34*c8dee2aaSAndroid Build Coastguard Worker		libfreetype6-dev
35*c8dee2aaSAndroid Build Coastguard Worker		libgl1-mesa-dev
36*c8dee2aaSAndroid Build Coastguard Worker		libglu1-mesa-dev
37*c8dee2aaSAndroid Build Coastguard Worker		libharfbuzz-dev
38*c8dee2aaSAndroid Build Coastguard Worker		libicu-dev
39*c8dee2aaSAndroid Build Coastguard Worker		libjpeg-dev
40*c8dee2aaSAndroid Build Coastguard Worker		libpng-dev
41*c8dee2aaSAndroid Build Coastguard Worker		libwebp-dev
42*c8dee2aaSAndroid Build Coastguard Worker        libx11-xcb-dev
43*c8dee2aaSAndroid Build Coastguard Worker        libxcb-xkb-dev
44*c8dee2aaSAndroid Build Coastguard Worker        xcb
45*c8dee2aaSAndroid Build Coastguard Worker		EOF
46*c8dee2aaSAndroid Build Coastguard Worker            )
47*c8dee2aaSAndroid Build Coastguard Worker           if [ $(lsb_release -r -s) = '14.04' ] ; then
48*c8dee2aaSAndroid Build Coastguard Worker               PACKAGES="${PACKAGES} ninja-build"
49*c8dee2aaSAndroid Build Coastguard Worker           fi
50*c8dee2aaSAndroid Build Coastguard Worker           if ! dpkg_all_installed $PACKAGES; then
51*c8dee2aaSAndroid Build Coastguard Worker               sudo apt-get $1 install $PACKAGES
52*c8dee2aaSAndroid Build Coastguard Worker           fi
53*c8dee2aaSAndroid Build Coastguard Worker           exit
54*c8dee2aaSAndroid Build Coastguard Worker           ;;
55*c8dee2aaSAndroid Build Coastguard Worker    esac
56*c8dee2aaSAndroid Build Coastguard Workerfi
57*c8dee2aaSAndroid Build Coastguard Worker
58*c8dee2aaSAndroid Build Coastguard Workerecho 'unknown system'
59*c8dee2aaSAndroid Build Coastguard Workerexit 1
60