mirror of
				https://github.com/OpenMW/openmw.git
				synced 2025-10-31 19:26:38 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			128 lines
		
	
	
	
		
			3.2 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable file
		
	
	
	
	
			
		
		
	
	
			128 lines
		
	
	
	
		
			3.2 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable file
		
	
	
	
	
| #!/bin/bash
 | |
| 
 | |
| set -euo pipefail
 | |
| 
 | |
| print_help() {
 | |
|   echo "usage: $0 [group]..."
 | |
|   echo
 | |
|   echo "  available groups: "${!GROUPED_DEPS[@]}""
 | |
| }
 | |
| 
 | |
| declare -rA GROUPED_DEPS=(
 | |
|   [gcc]="binutils gcc build-essential cmake ccache curl unzip git pkg-config mold"
 | |
|   [clang]="binutils clang make cmake ccache curl unzip git pkg-config mold"
 | |
|   [coverity]="binutils clang-12 make cmake ccache curl unzip git pkg-config"
 | |
|   [gcc_preprocess]="
 | |
|     binutils
 | |
|     build-essential
 | |
|     clang
 | |
|     cmake
 | |
|     curl
 | |
|     gcc
 | |
|     git
 | |
|     libclang-dev
 | |
|     ninja-build
 | |
|     python3-clang
 | |
|     python3-pip
 | |
|     unzip
 | |
|   "
 | |
| 
 | |
|   # Common dependencies for building OpenMW.
 | |
|   [openmw-deps]="
 | |
|     libboost-program-options-dev
 | |
|     libboost-system-dev libboost-iostreams-dev
 | |
| 
 | |
|     libavcodec-dev libavformat-dev libavutil-dev libswscale-dev libswresample-dev
 | |
|     libsdl2-dev libqt5opengl5-dev libopenal-dev libunshield-dev libtinyxml-dev
 | |
|     libbullet-dev liblz4-dev libpng-dev libjpeg-dev libluajit-5.1-dev
 | |
|     librecast-dev libsqlite3-dev ca-certificates libicu-dev libyaml-cpp-dev
 | |
|   "
 | |
| 
 | |
|   # These dependencies can alternatively be built and linked statically.
 | |
|   [openmw-deps-dynamic]="libmygui-dev libopenscenegraph-dev libsqlite3-dev libcollada-dom-dev"
 | |
|   [clang-tidy]="clang-tidy"
 | |
| 
 | |
|   # Pre-requisites for building MyGUI and OSG for static linking.
 | |
|   #
 | |
|   # * MyGUI and OSG: libsdl2-dev liblz4-dev libfreetype6-dev
 | |
|   # * OSG: libgl-dev
 | |
|   #
 | |
|   #   Plugins:
 | |
|   #   * DAE: libcollada-dom-dev libboost-system-dev libboost-filesystem-dev
 | |
|   #   * JPEG: libjpeg-dev
 | |
|   #   * PNG: libpng-dev
 | |
|   [openmw-deps-static]="
 | |
|     libcollada-dom-dev libfreetype6-dev libjpeg-dev libpng-dev
 | |
|     libsdl2-dev libboost-system-dev libboost-filesystem-dev libgl-dev
 | |
|   "
 | |
| 
 | |
|   [openmw-coverage]="gcovr"
 | |
| 
 | |
|   [openmw-integration-tests]="
 | |
|     ca-certificates
 | |
|     gdb
 | |
|     git
 | |
|     git-lfs
 | |
|     libavcodec58
 | |
|     libavformat58
 | |
|     libavutil56
 | |
|     libboost-iostreams1.74.0
 | |
|     libboost-program-options1.74.0
 | |
|     libboost-system1.74.0
 | |
|     libbullet3.24
 | |
|     libcollada-dom2.5-dp0
 | |
|     libicu70
 | |
|     libjpeg8
 | |
|     libluajit-5.1-2
 | |
|     liblz4-1
 | |
|     libmyguiengine3debian1v5
 | |
|     libopenal1
 | |
|     libopenscenegraph161
 | |
|     libpng16-16
 | |
|     libqt5opengl5
 | |
|     librecast1
 | |
|     libsdl2-2.0-0
 | |
|     libsqlite3-0
 | |
|     libswresample3
 | |
|     libswscale5
 | |
|     libtinyxml2.6.2v5
 | |
|     libyaml-cpp0.8
 | |
|     python3-pip
 | |
|     xvfb
 | |
|   "
 | |
| 
 | |
|   [libasan6]="libasan6"
 | |
| 
 | |
|   [android]="binutils build-essential cmake ccache curl unzip git pkg-config"
 | |
|   
 | |
|   [openmw-clang-format]="
 | |
|     clang-format-14
 | |
|     git-core
 | |
|   "
 | |
| )
 | |
| 
 | |
| if [[ $# -eq 0 ]]; then
 | |
|   >&2 print_help
 | |
|   exit 1
 | |
| fi
 | |
| 
 | |
| deps=()
 | |
| for group in "$@"; do
 | |
|   if [[ ! -v GROUPED_DEPS[$group] ]]; then
 | |
|     >&2 echo "error: unknown group ${group}"
 | |
|     exit 1
 | |
|   fi
 | |
|   deps+=(${GROUPED_DEPS[$group]})
 | |
| done
 | |
| 
 | |
| export APT_CACHE_DIR="${PWD}/apt-cache"
 | |
| export DEBIAN_FRONTEND=noninteractive
 | |
| set -x
 | |
| mkdir -pv "$APT_CACHE_DIR"
 | |
| apt-get update -yqq
 | |
| apt-get -qq -o dir::cache::archives="$APT_CACHE_DIR" install -y --no-install-recommends software-properties-common gnupg >/dev/null
 | |
| add-apt-repository -y ppa:openmw/openmw
 | |
| add-apt-repository -y ppa:openmw/openmw-daily
 | |
| add-apt-repository -y ppa:openmw/staging
 | |
| apt-get -qq -o dir::cache::archives="$APT_CACHE_DIR" install -y --no-install-recommends "${deps[@]}" >/dev/null
 | |
| apt list --installed
 |