From 2484dac34ae9aedbc6668f726167c86f7e27526b Mon Sep 17 00:00:00 2001 From: Joshua Ashton Date: Sat, 10 Sep 2022 22:10:36 +0000 Subject: [PATCH] [meta] Add package-native.sh --- package-native.sh | 86 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 86 insertions(+) create mode 100755 package-native.sh diff --git a/package-native.sh b/package-native.sh new file mode 100755 index 00000000..ba5f44e4 --- /dev/null +++ b/package-native.sh @@ -0,0 +1,86 @@ +#!/usr/bin/env bash + +set -e + +shopt -s extglob + +if [ -z "$1" ] || [ -z "$2" ]; then + echo "Usage: $0 version destdir [--no-package] [--dev-build]" + exit 1 +fi + +DXVK_VERSION="$1" +DXVK_SRC_DIR=`dirname $(readlink -f $0)` +DXVK_BUILD_DIR=$(realpath "$2")"/dxvk-native-$DXVK_VERSION" +DXVK_ARCHIVE_PATH=$(realpath "$2")"/dxvk-native-$DXVK_VERSION.tar.gz" + +if [ -e "$DXVK_BUILD_DIR" ]; then + echo "Build directory $DXVK_BUILD_DIR already exists" + exit 1 +fi + +shift 2 + +opt_nopackage=0 +opt_devbuild=0 +opt_buildid=false + +CC=${CC:="gcc"} +CXX=${CXX:="g++"} + +while [ $# -gt 0 ]; do + case "$1" in + "--no-package") + opt_nopackage=1 + ;; + "--dev-build") + opt_nopackage=1 + opt_devbuild=1 + ;; + "--build-id") + opt_buildid=true + ;; + *) + echo "Unrecognized option: $1" >&2 + exit 1 + esac + shift +done + +function build_arch { + cd "$DXVK_SRC_DIR" + + opt_strip= + if [ $opt_devbuild -eq 0 ]; then + opt_strip=--strip + fi + + CC="$CC -m$1" CXX="$CXX -m$1" meson \ + --buildtype "release" \ + --prefix "$DXVK_BUILD_DIR/usr" \ + --bindir "$2" \ + --libdir "$2" \ + -Dbuild_id=$opt_buildid \ + "$DXVK_BUILD_DIR/build" + + cd "$DXVK_BUILD_DIR/build" + ninja install + + if [ $opt_devbuild -eq 0 ]; then + rm -r "$DXVK_BUILD_DIR/build" + fi +} + +function package { + cd "$DXVK_BUILD_DIR" + tar -czf "$DXVK_ARCHIVE_PATH" "usr" + cd ".." + rm -R "dxvk-native-$DXVK_VERSION" +} + +build_arch 64 lib +build_arch 32 lib32 + +if [ $opt_nopackage -eq 0 ]; then + package +fi