Use system-wide Wine, DXVK & D9VK for Steam Play/Proton (Windows) games directly from Linux Steam client
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

86 lines
2.6 KiB

5 years ago
  1. # Maintainer: Yurii Kolesnykov <root@yurikoles.com>
  2. # Contributor: Sean Anderson <seanga2@gamil.com>
  3. pkgname=proton-git
  4. _pkgname=proton
  5. pkgver=8.0
  6. pkgrel=1
  7. pkgdesc="Compatibility tool for Steam Play based on Wine and additional components"
  8. arch=('x86_64')
  9. url="https://github.com/ValveSoftware/Proton/"
  10. license=('BSD')
  11. depends=('python2'
  12. 'wine')
  13. optdepends=()
  14. provides=("${_pkgname}")
  15. conflicts=("${_pkgname}")
  16. source=("${pkgname}::git+https://github.com/ValveSoftware/Proton.git")
  17. sha512sums=('SKIP')
  18. pkgver() {
  19. local version count
  20. cd "${pkgname}"
  21. version="$(git describe --abbrev=0 --tags)"
  22. count="$(git rev-list --count ${version}..)"
  23. printf '%s.%s' "${version#proton-*-}" "${count}"
  24. }
  25. prepare() {
  26. cd "${pkgname}"
  27. sed -i 's/openvr_v0.9.16//g' vrclient_x64/vrclient_x64/*
  28. }
  29. build() {
  30. cd "${pkgname}"
  31. export CXXFLAGS="$CXXFLAGS -Wno-attributes"
  32. export WINEMAKEFLAGS="--nosource-fix --nolower-include --nodlls --nomsvcrt --dll"
  33. export WINEMAKEFLAGS32="$WINEMAKEFLAGS --wine32"
  34. # The build script provided has so much cruft that it's easier to make everything manually
  35. mkdir -p build/lsteamclient.win32
  36. cp -a lsteamclient/* build/lsteamclient.win32
  37. cd build/lsteamclient.win32
  38. winemaker $WINEMAKEFLAGS32 -DSTEAM_API_EXPORTS .
  39. make
  40. cd ../..
  41. mkdir -p build/lsteamclient.win64
  42. cp -a lsteamclient/* build/lsteamclient.win64
  43. cd build/lsteamclient.win64
  44. winemaker $WINEMAKEFLAGS -DSTEAM_API_EXPORTS .
  45. make
  46. cd ../..
  47. # Currently depends on the custom bundled wine
  48. # Will be re-enabled after I can make a package for it
  49. #mkdir -p build/vrclient.win32
  50. #cp -a vrclient_x64/* build/vrclient.win32
  51. #cd build/vrclient.win32/vrclient_x64
  52. #winemaker $WINEMAKEFLAGS32 .
  53. #CXXFLAGS="$CXXFLAGS --std=c++0x" make
  54. #winebuild --dll --fake-module -E vrclient_64.spec -o vrclient.dll.fake
  55. }
  56. package() {
  57. cd "${pkgname}"
  58. install -d -m755 $pkgdir/usr/share/licenses/$pkgname
  59. install -m644 LICENSE $pkgdir/usr/share/licenses/$pkgname/LICENSE
  60. install -m644 LICENSE.proton $pkgdir/usr/share/licenses/$pkgname/LICENSE.proton
  61. install -m644 dist.LICENSE $pkgdir/usr/share/licenses/$pkgname/dist.LICENSE
  62. install -d -m755 $pkgdir/usr/share/doc/$pkgname
  63. install -m644 README.md $pkgdir/usr/share/doc/$pkgname/README.md
  64. install -d -m755 $pkgdir/usr/lib32/wine
  65. install -m755 build/lsteamclient.win32/lsteamclient.dll.so $pkgdir/usr/lib32/wine/
  66. #install build/vrclient.win32/vrclient.dll.so $pkgdir/usr/lib32/wine/
  67. #install -d $pkgdir/usr/lib32/wine/fakedlls
  68. #install build/vrclient.win32/vrclient.dll.fake $pkgdir/lib/wine/fakedlls/vrclient.dll
  69. install -d -m755 $pkgdir/usr/lib/wine
  70. install -m755 build/lsteamclient.win64/lsteamclient.dll.so $pkgdir/usr/lib/wine/
  71. }