mirror of
				https://github.com/RetroDECK/Duckstation.git
				synced 2025-04-10 19:15:14 +00:00 
			
		
		
		
	Deps: Make some libraries optional for Linux
This commit is contained in:
		
							parent
							
								
									cc8e65d444
								
							
						
					
					
						commit
						6bc1d7baf0
					
				|  | @ -2,11 +2,39 @@ | |||
| 
 | ||||
| set -e | ||||
| 
 | ||||
| if [ "$#" -ne 1 ]; then | ||||
|     echo "Syntax: $0 <output directory>" | ||||
| if [ "$#" -lt 1 ]; then | ||||
|     echo "Syntax: $0 [-system-libjpeg] [-system-libpng] [-system-libwebp] [-system-zstd] [-system-qt] [-skip-download] <output directory>" | ||||
|     exit 1 | ||||
| fi | ||||
| 
 | ||||
| for arg in "$@"; do | ||||
| 	if [ "$arg" == "-system-libjpeg" ]; then | ||||
| 		echo "Skipping building libjpeg." | ||||
| 		SKIP_LIBJPEG=true | ||||
| 		shift | ||||
| 	elif [ "$arg" == "-system-libpng" ]; then | ||||
| 		echo "Skipping building libpng." | ||||
| 		SKIP_LIBPNG=true | ||||
| 		shift | ||||
| 	elif [ "$arg" == "-system-libwebp" ]; then | ||||
| 		echo "Skipping building libwebp." | ||||
| 		SKIP_LIBWEBP=true | ||||
| 		shift | ||||
| 	elif [ "$arg" == "-system-zstd" ]; then | ||||
| 		echo "Skipping building zstd." | ||||
| 		SKIP_ZSTD=true | ||||
| 		shift | ||||
| 	elif [ "$arg" == "-system-qt" ]; then | ||||
| 		echo "Skipping building Qt." | ||||
| 		SKIP_QT=true | ||||
| 		shift | ||||
| 	elif [ "$arg" == "-skip-download" ]; then | ||||
| 		echo "Not downloading sources." | ||||
| 		SKIP_DOWNLOAD=true | ||||
| 		shift | ||||
| 	fi | ||||
| done | ||||
| 
 | ||||
| SCRIPTDIR=$(realpath $(dirname "${BASH_SOURCE[0]}")) | ||||
| NPROCS="$(getconf _NPROCESSORS_ONLN)" | ||||
| INSTALLDIR="$1" | ||||
|  | @ -31,49 +59,85 @@ SPIRV_CROSS=vulkan-sdk-1.3.290.0 | |||
| mkdir -p deps-build | ||||
| cd deps-build | ||||
| 
 | ||||
| if [ "$SKIP_DOWNLOAD" != true ]; then | ||||
| 	curl -C - -L \ | ||||
| 		-O "https://github.com/ianlancetaylor/libbacktrace/archive/$LIBBACKTRACE.zip" \ | ||||
| 		-O "https://github.com/libsdl-org/SDL/releases/download/release-$SDL2/SDL2-$SDL2.tar.gz" \ | ||||
| 		-o "cpuinfo-$CPUINFO.tar.gz" "https://github.com/stenzek/cpuinfo/archive/$CPUINFO.tar.gz" \ | ||||
| 		-o "discord-rpc-$DISCORD_RPC.tar.gz" "https://github.com/stenzek/discord-rpc/archive/$DISCORD_RPC.tar.gz" \ | ||||
| 		-o "shaderc-$SHADERC.tar.gz" "https://github.com/stenzek/shaderc/archive/$SHADERC.tar.gz" \ | ||||
| 		-o "soundtouch-$SOUNDTOUCH.tar.gz" "https://github.com/stenzek/soundtouch/archive/$SOUNDTOUCH.tar.gz" | ||||
| fi | ||||
| 
 | ||||
| cat > SHASUMS <<EOF | ||||
| fd6f417fe9e3a071cf1424a5152d926a34c4a3c5070745470be6cf12a404ed79  $LIBBACKTRACE.zip | ||||
| 343e789069fc7afbcdfe44dbba7dbbf45afa98a15150e079a38e60e44578865d  libjpeg-turbo-$LIBJPEGTURBO.tar.gz | ||||
| 6a5ca0652392a2d7c9db2ae5b40210843c0bbc081cbd410825ab00cc59f14a6c  libpng-$LIBPNG.tar.xz | ||||
| 61f873ec69e3be1b99535634340d5bde750b2e4447caa1db9f61be3fd49ab1e5  libwebp-$LIBWEBP.tar.gz | ||||
| c6ef64ca18a19d13df6eb22df9aff19fb0db65610a74cc81dae33a82235cacd4  SDL2-$SDL2.tar.gz | ||||
| 8c29e06cf42aacc1eafc4077ae2ec6c6fcb96a626157e0593d5e82a34fd403c1  zstd-$ZSTD.tar.gz | ||||
| c5f22a5e10fb162895ded7de0963328e7307611c688487b5d152c9ee64767599  qtbase-everywhere-src-$QT.tar.xz | ||||
| e1a1d8785fae67d16ad0a443b01d5f32663a6b68d275f1806ebab257485ce5d6  qtimageformats-everywhere-src-$QT.tar.xz | ||||
| fb0d1286a35be3583fee34aeb5843c94719e07193bdf1d4d8b0dc14009caef01  qtsvg-everywhere-src-$QT.tar.xz | ||||
| 58e855ad1b2533094726c8a425766b63a04a0eede2ed85086860e54593aa4b2a  qttools-everywhere-src-$QT.tar.xz | ||||
| 9845780b5dc1b7279d57836db51aeaf2e4a1160c42be09750616f39157582ca9  qttranslations-everywhere-src-$QT.tar.xz | ||||
| a2a057e1dd644bd44abb9990fecc194b2e25c2e0f39e81aa9fee4c1e5e2a8a5b  qtwayland-everywhere-src-$QT.tar.xz | ||||
| e1351218d270db49c3dddcba04fb2153b09731ea3fa6830e423f5952f44585be  cpuinfo-$CPUINFO.tar.gz | ||||
| 3eea5ccce6670c126282f1ba4d32c19d486db49a1a5cbfb8d6f48774784d310c  discord-rpc-$DISCORD_RPC.tar.gz | ||||
| 4c1780b6c65c27c4dcb109f08ab632241c98b77fe2e22be726c151ff514482bf  shaderc-$SHADERC.tar.gz | ||||
| fe45c2af99f6102d2704277d392c1c83b55180a70bfd17fb888cc84a54b70573  soundtouch-$SOUNDTOUCH.tar.gz | ||||
| EOF | ||||
| 
 | ||||
| if [ "$SKIP_LIBJPEG" != true ]; then | ||||
| 	if [ "$SKIP_DOWNLOAD" != true ]; then | ||||
| 		curl -C - -L -O "https://github.com/libjpeg-turbo/libjpeg-turbo/releases/download/$LIBJPEGTURBO/libjpeg-turbo-$LIBJPEGTURBO.tar.gz" | ||||
| 	fi | ||||
| 	cat >> SHASUMS <<EOF | ||||
| 343e789069fc7afbcdfe44dbba7dbbf45afa98a15150e079a38e60e44578865d  libjpeg-turbo-$LIBJPEGTURBO.tar.gz | ||||
| EOF | ||||
| fi | ||||
| if [ "$SKIP_LIBPNG" != true ]; then | ||||
| 	if [ "$SKIP_DOWNLOAD" != true ]; then | ||||
| 		curl -C - -L -O "https://downloads.sourceforge.net/project/libpng/libpng16/$LIBPNG/libpng-$LIBPNG.tar.xz" | ||||
| 	fi | ||||
| 	cat >> SHASUMS <<EOF | ||||
| 6a5ca0652392a2d7c9db2ae5b40210843c0bbc081cbd410825ab00cc59f14a6c  libpng-$LIBPNG.tar.xz | ||||
| EOF | ||||
| fi | ||||
| if [ "$SKIP_LIBWEBP" != true ]; then | ||||
| 	if [ "$SKIP_DOWNLOAD" != true ]; then | ||||
| 		curl -C - -L -O "https://storage.googleapis.com/downloads.webmproject.org/releases/webp/libwebp-$LIBWEBP.tar.gz" | ||||
| 	fi | ||||
| 	cat >> SHASUMS <<EOF | ||||
| 61f873ec69e3be1b99535634340d5bde750b2e4447caa1db9f61be3fd49ab1e5  libwebp-$LIBWEBP.tar.gz | ||||
| EOF | ||||
| fi | ||||
| if [ "$SKIP_ZSTD" != true ]; then | ||||
| 	if [ "$SKIP_DOWNLOAD" != true ]; then | ||||
| 		curl -C - -L -O "https://github.com/facebook/zstd/releases/download/v$ZSTD/zstd-$ZSTD.tar.gz" | ||||
| 	fi | ||||
| 	cat >> SHASUMS <<EOF | ||||
| 8c29e06cf42aacc1eafc4077ae2ec6c6fcb96a626157e0593d5e82a34fd403c1  zstd-$ZSTD.tar.gz | ||||
| EOF | ||||
| fi | ||||
| if [ "$SKIP_QT" != true ]; then | ||||
| 	if [ "$SKIP_DOWNLOAD" != true ]; then | ||||
| 		curl -C - -L \ | ||||
| 	-O "https://github.com/ianlancetaylor/libbacktrace/archive/$LIBBACKTRACE.zip" \ | ||||
| 	-O "https://github.com/libjpeg-turbo/libjpeg-turbo/releases/download/$LIBJPEGTURBO/libjpeg-turbo-$LIBJPEGTURBO.tar.gz" \ | ||||
| 	-O "https://downloads.sourceforge.net/project/libpng/libpng16/$LIBPNG/libpng-$LIBPNG.tar.xz" \ | ||||
| 	-O "https://storage.googleapis.com/downloads.webmproject.org/releases/webp/libwebp-$LIBWEBP.tar.gz" \ | ||||
| 	-O "https://github.com/libsdl-org/SDL/releases/download/release-$SDL2/SDL2-$SDL2.tar.gz" \ | ||||
| 	-O "https://github.com/facebook/zstd/releases/download/v$ZSTD/zstd-$ZSTD.tar.gz" \ | ||||
| 			-O "https://download.qt.io/official_releases/qt/${QT%.*}/$QT/submodules/qtbase-everywhere-src-$QT.tar.xz" \ | ||||
| 			-O "https://download.qt.io/official_releases/qt/${QT%.*}/$QT/submodules/qtimageformats-everywhere-src-$QT.tar.xz" \ | ||||
| 			-O "https://download.qt.io/official_releases/qt/${QT%.*}/$QT/submodules/qtsvg-everywhere-src-$QT.tar.xz" \ | ||||
| 			-O "https://download.qt.io/official_releases/qt/${QT%.*}/$QT/submodules/qttools-everywhere-src-$QT.tar.xz" \ | ||||
| 			-O "https://download.qt.io/official_releases/qt/${QT%.*}/$QT/submodules/qttranslations-everywhere-src-$QT.tar.xz" \ | ||||
| 	-O "https://download.qt.io/official_releases/qt/${QT%.*}/$QT/submodules/qtwayland-everywhere-src-$QT.tar.xz" \ | ||||
| 	-o "cpuinfo-$CPUINFO.tar.gz" "https://github.com/stenzek/cpuinfo/archive/$CPUINFO.tar.gz" \ | ||||
| 	-o "discord-rpc-$DISCORD_RPC.tar.gz" "https://github.com/stenzek/discord-rpc/archive/$DISCORD_RPC.tar.gz" \ | ||||
| 	-o "shaderc-$SHADERC.tar.gz" "https://github.com/stenzek/shaderc/archive/$SHADERC.tar.gz" \ | ||||
| 	-o "soundtouch-$SOUNDTOUCH.tar.gz" "https://github.com/stenzek/soundtouch/archive/$SOUNDTOUCH.tar.gz" | ||||
| 			-O "https://download.qt.io/official_releases/qt/${QT%.*}/$QT/submodules/qtwayland-everywhere-src-$QT.tar.xz"  | ||||
| 	fi | ||||
| 	cat >> SHASUMS <<EOF | ||||
| c5f22a5e10fb162895ded7de0963328e7307611c688487b5d152c9ee64767599  qtbase-everywhere-src-$QT.tar.xz | ||||
| e1a1d8785fae67d16ad0a443b01d5f32663a6b68d275f1806ebab257485ce5d6  qtimageformats-everywhere-src-$QT.tar.xz | ||||
| fb0d1286a35be3583fee34aeb5843c94719e07193bdf1d4d8b0dc14009caef01  qtsvg-everywhere-src-$QT.tar.xz | ||||
| 58e855ad1b2533094726c8a425766b63a04a0eede2ed85086860e54593aa4b2a  qttools-everywhere-src-$QT.tar.xz | ||||
| 9845780b5dc1b7279d57836db51aeaf2e4a1160c42be09750616f39157582ca9  qttranslations-everywhere-src-$QT.tar.xz | ||||
| a2a057e1dd644bd44abb9990fecc194b2e25c2e0f39e81aa9fee4c1e5e2a8a5b  qtwayland-everywhere-src-$QT.tar.xz | ||||
| EOF | ||||
| fi | ||||
| 
 | ||||
| shasum -a 256 --check SHASUMS | ||||
| 
 | ||||
| # Have to clone with git, because it does version detection. | ||||
| if [ "$SKIP_DOWNLOAD" != true ]; then | ||||
| 	if [ ! -d "SPIRV-Cross" ]; then | ||||
| 		git clone https://github.com/KhronosGroup/SPIRV-Cross/ -b $SPIRV_CROSS --depth 1 | ||||
| 	fi | ||||
| fi | ||||
| 
 | ||||
| echo "Building libbacktrace..." | ||||
| rm -fr "libbacktrace-$LIBBACKTRACE" | ||||
|  | @ -84,6 +148,7 @@ make | |||
| make install | ||||
| cd .. | ||||
| 
 | ||||
| if [ "$SKIP_LIBPNG" != true ]; then | ||||
| 	echo "Building libpng..." | ||||
| 	rm -fr "libpng-$LIBPNG" | ||||
| 	tar xf "libpng-$LIBPNG.tar.xz" | ||||
|  | @ -92,7 +157,9 @@ cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH="$INSTALLDIR" -DCMAKE_INSTA | |||
| 	cmake --build build --parallel | ||||
| 	ninja -C build install | ||||
| 	cd .. | ||||
| fi | ||||
| 
 | ||||
| if [ "$SKIP_LIBJPEG" != true ]; then | ||||
| 	echo "Building libjpeg..." | ||||
| 	rm -fr "libjpeg-turbo-$LIBJPEGTURBO" | ||||
| 	tar xf "libjpeg-turbo-$LIBJPEGTURBO.tar.gz" | ||||
|  | @ -101,7 +168,9 @@ cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH="$INSTALLDIR" -DCMAKE_INSTA | |||
| 	cmake --build build --parallel | ||||
| 	ninja -C build install | ||||
| 	cd .. | ||||
| fi | ||||
| 
 | ||||
| if [ "$SKIP_ZSTD" != true ]; then | ||||
| 	echo "Building Zstandard..." | ||||
| 	rm -fr "zstd-$ZSTD" | ||||
| 	tar xf "zstd-$ZSTD.tar.gz" | ||||
|  | @ -110,7 +179,9 @@ cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH="$INSTALLDIR" -DCMAKE_INSTA | |||
| 	cmake --build build --parallel | ||||
| 	ninja -C build install | ||||
| 	cd .. | ||||
| fi | ||||
| 
 | ||||
| if [ "$SKIP_LIBWEBP" != true ]; then | ||||
| 	echo "Building WebP..." | ||||
| 	rm -fr "libwebp-$LIBWEBP" | ||||
| 	tar xf "libwebp-$LIBWEBP.tar.gz" | ||||
|  | @ -121,6 +192,7 @@ cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH="$INSTALLDIR" -DCMAKE_INSTA | |||
| 	cmake --build build --parallel | ||||
| 	ninja -C build install | ||||
| 	cd .. | ||||
| fi | ||||
| 
 | ||||
| echo "Building SDL2..." | ||||
| rm -fr "SDL2-$SDL2" | ||||
|  | @ -131,6 +203,7 @@ cmake --build build --parallel | |||
| ninja -C build install | ||||
| cd .. | ||||
| 
 | ||||
| if [ "$SKIP_QT" != true ]; then | ||||
| 	# Couple notes: | ||||
| 	# -fontconfig is needed otherwise Qt Widgets render only boxes. | ||||
| 	# -qt-doubleconversion avoids a dependency on libdouble-conversion. | ||||
|  | @ -226,6 +299,7 @@ cd build | |||
| 	cmake --build . --parallel | ||||
| 	ninja install | ||||
| 	cd ../../ | ||||
| fi | ||||
| 
 | ||||
| echo "Building shaderc..." | ||||
| rm -fr "shaderc-$SHADERC" | ||||
|  |  | |||
		Loading…
	
		Reference in a new issue
	
	 Stenzek
						Stenzek