summarylogtreecommitdiffstats
path: root/PKGBUILD
blob: dfd203533523349cb02aa479de38dd8b4246a903 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
# PKGBUILD based on  https://aur.archlinux.org/mindustry-git.git
# Maintainer:
# Contributor: acutenoob <handsome23388@outlook.com>
# Contributor: copygirl <copygirl@mcft.net>

: ${_java_ver:=17}

_pkgname="mindustryx"
pkgbase="$_pkgname-git"
pkgver=2026.03.25.B426
pkgrel=1
pkgdesc="Optimized mindustry server&client with more API"
url="https://github.com/TinyLake/MindustryX"
license=('GPL-3.0-only')
arch=('any')

depends=(
  'alsa-lib'
)
makedepends=(
  "java-environment=${_java_ver:?}"
  'git'
  'libicns'
)

_build="${pkgver%%.r*}"
_pkgsrc="$_pkgname"
source=(
  "$_pkgsrc"::"git+https://github.com/TinyLake/MindustryX.git"
  "0001-fixbuild.patch"
)
sha256sums=('SKIP'
            '16d18fb0a159f88b0d019341ef66ad7dbb963748b5bcdf45ca5d334f6c7fb8f6')

pkgver() {
  cd "$_pkgsrc"
  git describe --tags --abbrev=7 \
    | sed -E 's/^[^0-9]*//; s/-([0-9]+)-g/.\1.g/; s/-/./g'
}

prepare()
{
  cd "$_pkgsrc"


  git submodule update --init --depth=10

  cd work
  git config user.email "build@example.com"
  git config user.name "Build User"
  cd ..

  cd Arc
  git config user.email "build@example.com"
  git config user.name "Build User"
  cd ..

  ./scripts/applyPatches.sh
  cd work
  git am --no-gpg-sign -3 "../../0001-fixbuild.patch"
  git commit --allow-empty --no-author --no-gpg-sign --no-date -m "fixbuild" --author="System <system@example.com>"
  # skip android subproject; see settings.gradle
  unset ANDROID_HOME JITPACK
}
build() {
  cd "$_pkgsrc/work"


  ./gradlew clean
    JAVA_HOME="/usr/lib/jvm/java-${_java_ver}-openjdk"\
  ./gradlew  -Pbuildversion="${_build}" --parallel  desktop:dist server:dist

}

_package_common() {
  depends+=(
    'hicolor-icon-theme'
    'java-runtime'
  )

  provides=("${pkgname%$_pkgtype}")
  conflicts=("${pkgname%$_pkgtype}")

  install -Dm755 /dev/stdin "$pkgdir/usr/share/applications/${pkgname%$_pkgtype}.desktop" << END
[Desktop Entry]
Type=Application
Name=$(sed -E -e "s/-/ /g;s/\b(.)/\u\1/g" <<< "${pkgname%$_pkgtype}")
Comment=$pkgdesc
Exec=${pkgname%$_pkgtype}
Icon=${pkgname%$_pkgtype}
Categories=Game;
Terminal=false
END

  install -Dm755 /dev/stdin "$pkgdir/usr/bin/${pkgname%$_pkgtype}" << END
#!/usr/bin/env sh
exec /usr/bin/java -jar /usr/share/java/$_pkgname/${pkgname%$_pkgtype}.jar "\$@"
END

  cd "$_pkgsrc"
  install -Dm644 "assets/icon.png" \
  "$pkgdir/usr/share/icons/hicolor/64x64/apps/${pkgname%$_pkgtype}.png"
}

_package_mindustryx() {
  install -Dm755 "work/desktop/build/libs/Mindustry.jar" "$pkgdir/usr/share/java/$_pkgname/${pkgname%$_pkgtype}.jar"
}

_package_mindustryx-server() {
  pkgdesc+=" - server"

  install -Dm755 "work/server/build/libs/server-release.jar" "$pkgdir/usr/share/java/$_pkgname/${pkgname%$_pkgtype}.jar"
}

_pkgtype=${pkgbase#$_pkgname}
pkgname=("$_pkgname${_pkgtype:-}" "$_pkgname-server${_pkgtype:-}")

for _p in "${pkgname[@]}"; do
  eval "package_$_p() {
    $(declare -f "_package_common" | tail -n +2)
    $(declare -f "_package_${_p%$_pkgtype}" | tail -n +2)
  }"
done