diff --git a/Platform-v2.0/DXVK/build.sh b/Platform-v2.0/DXVK/build.sh new file mode 100755 index 0000000..758cdf1 --- /dev/null +++ b/Platform-v2.0/DXVK/build.sh @@ -0,0 +1,5 @@ +#! /usr/bin/env bash +# Args: [] + +CONF_PATH="$(dirname "$0")" && +"$CONF_PATH/versions.py" "$CONF_PATH/build_amd64.sh" " $1" "$2" \ No newline at end of file diff --git a/Platform-v2.0/DXVK/build_amd64.sh b/Platform-v2.0/DXVK/build_amd64.sh new file mode 100755 index 0000000..773253d --- /dev/null +++ b/Platform-v2.0/DXVK/build_amd64.sh @@ -0,0 +1,4 @@ +#! /usr/bin/env bash +# Args: [] + +exec "$(dirname "$0")/build_extension.sh" "$1" x86_64 "$2" "$3" \ No newline at end of file diff --git a/Platform-v2.0/DXVK/build_extension.sh b/Platform-v2.0/DXVK/build_extension.sh new file mode 100755 index 0000000..13c0100 --- /dev/null +++ b/Platform-v2.0/DXVK/build_extension.sh @@ -0,0 +1,14 @@ +#! /usr/bin/env bash +# Args: [] + +if [ -z "VERBOSE" ]; then + HASH_MODULE_ARGS="-v" +else + HASH_MODULE_ARGS="" +fi + +CONF_PATH="$(dirname "$0")" && +"$CONF_PATH/../../../tools/hash_modules.py" $HASH_MODULE_ARGS --require-build "$1" "$2" && +exec "$CONF_PATH/../../../tools/build.sh" "$1" "$2" "$3" "$4" + +echo 'No build required.' \ No newline at end of file diff --git a/Platform-v2.0/DXVK/dxvk.yaml b/Platform-v2.0/DXVK/dxvk.yaml new file mode 100644 index 0000000..627e6f4 --- /dev/null +++ b/Platform-v2.0/DXVK/dxvk.yaml @@ -0,0 +1,83 @@ +build-extension: true +id: de.marko10_000.winebarrels.Platform.ExtensionsV2.DXVK_{{VERSION}} +branch: "v2.0" + +sdk: de.marko10_000.winebarrels.WineSdk +runtime: de.marko10_000.winebarrels.Wine +runtime-version: "5.0-rc5" +separate-locales: false +sdk-extensions: + - de.marko10_000.winebarrels.Platform.ExtensionsV2.MinGW + +build-options: + prefix: /usr/wine_extensions/v2/DXVK_{{VERSION}} + env: + C_INCLUDE_PATH: /usr/wine_extensions/v2/DXVK_{{VERSION}}/include + CPLUS_INCLUDE_PATH: /usr/wine_extensions/v2/DXVK_{{VERSION}}/include + prepend-ld-library-path: /usr/wine_extensions/v2/DXVK_{{VERSION}}/lib + ldflags: -L/usr/wine_extensions/v2/DXVK_{{VERSION}}/lib + ldflags-override: true +modules: + # Prepare + - name: test-arch + buildsystem: simple + build-commands: + - false + skip-arches: + - x86_64 + - i386 + - name: glslang + sources: + - type: archive + url: https://github.com/KhronosGroup/glslang/archive/master-tot.tar.gz + sha256: 51074cce1ab877513457fe5acc9dd8b60023b070d34e7dd51f18342a1f23b355 + buildsystem: cmake-ninja + builddir: true + cleanup: + - "*" + + # 32bit dxvk + - name: dxvk-32bit + sources: &DXVK_SOURCES + - type: archive + url: {{SOURCE}} + sha256: {{SOURCE_SHA256}} + buildsystem: meson + config-opts: + - --cross-file=../build-win32.txt + - --buildtype=release + builddir: true + build-options: + prefix: /usr/wine_extensions/v2/DXVK_{{VERSION}}/tmp + env: + PATH: "/usr/wine_extensions/v2/DXVK_{{VERSION}}/bin:/usr/wine_extensions/v2/MinGW/bin:/usr/bin" + post-install: + - mkdir /usr/wine_extensions/v2/DXVK_{{VERSION}}/x32 + - cp -rav /usr/wine_extensions/v2/DXVK_{{VERSION}}/tmp/bin/. /usr/wine_extensions/v2/DXVK_{{VERSION}}/x32 + - rm -rf /usr/wine_extensions/v2/DXVK_{{VERSION}}/tmp + - /usr/wine_extensions/v2/MinGW/bin/i686-w64-mingw32-strip --strip-debug /usr/wine_extensions/v2/DXVK_{{VERSION}}/x32/* + - cp -av ../setup_dxvk.sh /usr/wine_extensions/v2/DXVK_{{VERSION}} + only-arches: + - x86_64 + - i386 + + # 64bit dxvk + - name: dxvk-64bit + sources: *DXVK_SOURCES + buildsystem: meson + config-opts: + - --cross-file=../build-win64.txt + - --buildtype=release + builddir: true + build-options: + prefix: /usr/wine_extensions/v2/DXVK_{{VERSION}}/tmp + env: + PATH: "/usr/wine_extensions/v2/DXVK_{{VERSION}}/bin:/usr/wine_extensions/v2/MinGW/bin:/usr/bin" + post-install: + - mkdir /usr/wine_extensions/v2/DXVK_{{VERSION}}/x64 + - cp -rav /usr/wine_extensions/v2/DXVK_{{VERSION}}/tmp/bin/. /usr/wine_extensions/v2/DXVK_{{VERSION}}/x64 + - rm -rf /usr/wine_extensions/v2/DXVK_{{VERSION}}/tmp + - /usr/wine_extensions/v2/MinGW/bin/x86_64-w64-mingw32-strip --strip-debug /usr/wine_extensions/v2/DXVK_{{VERSION}}/x64/* + - cp -av ../setup_dxvk.sh /usr/wine_extensions/v2/DXVK_{{VERSION}} + only-arches: + - x86_64 \ No newline at end of file diff --git a/Platform-v2.0/DXVK/latest.sh b/Platform-v2.0/DXVK/latest.sh new file mode 100755 index 0000000..b6d6500 --- /dev/null +++ b/Platform-v2.0/DXVK/latest.sh @@ -0,0 +1,10 @@ +#! /usr/bin/env bash +# Args: + +if [ -z "$1" ]; then + echo "Arg 1 is missing." + exit 1 +fi + +VERSION="1_5_1" && +flatpak build-commit-from --disable-fsync --no-update-summary "--src-repo=$1" "--src-ref=runtime/de.marko10_000.winebarrels.Platform.ExtensionsV2.DXVK_$VERSION/x86_64/v2.0" "$1" "runtime/de.marko10_000.winebarrels.Platform.ExtensionsV2.DXVK/x86_64/v2.0" \ No newline at end of file diff --git a/Platform-v2.0/DXVK/sources.yaml b/Platform-v2.0/DXVK/sources.yaml new file mode 100644 index 0000000..5410e2a --- /dev/null +++ b/Platform-v2.0/DXVK/sources.yaml @@ -0,0 +1,3 @@ +"1_5_1": + SOURCE: https://github.com/doitsujin/dxvk/archive/v1.5.1.tar.gz + SOURCE_SHA256: 205e4e122607f3d6d5e249b480cae8564f82435ca6b399bad7285a93b42aa6ae \ No newline at end of file diff --git a/Platform-v2.0/DXVK/versions.py b/Platform-v2.0/DXVK/versions.py new file mode 100755 index 0000000..bfe4502 --- /dev/null +++ b/Platform-v2.0/DXVK/versions.py @@ -0,0 +1,40 @@ +#! /usr/bin/env python3 + +if __name__ == "__main__": + import argparse + import os + import subprocess + import sys + import tempfile + import yaml + + parser = argparse.ArgumentParser(description="Run script for all versions.") + parser.add_argument("script", metavar="script", type=str, nargs=1, + help="The script to run with the config file as argument.") + parser.add_argument("args", metavar="args", nargs='*', help="Args to add aditional.") + args = parser.parse_args() + + # Load configuration + ownPath = os.path.split(sys.argv[0])[0] + filePath = os.path.join(ownPath, "dxvk.yaml") + fileData = open(filePath, "r").read() + config = yaml.load(open(os.path.join(ownPath, "sources.yaml"), "r").read(), Loader=yaml.SafeLoader) + + + # Run script for each version + for version, i in config.items(): + # Gen config file + tmp = fileData.replace("{{VERSION}}", version) + for jID, j in i.items(): + tmp = tmp.replace("{{" + jID + "}}", j) + + # Generate config file + outFile = tempfile.mktemp(".yaml") + with open(outFile, "w") as f: + f.write(tmp) + + # Call script + try: + subprocess.call([args.script[0], outFile] + args.args) + finally: + os.remove(outFile) \ No newline at end of file