blob: bb48d9bf3ae452f4562c42fb2e40121c88d52964 (
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
|
# Maintainer: Dylan Ferris <dylan@psilly.com>
# You must register at unrealengine.com and link your github account to access this private repo.
# @see https://wiki.archlinux.org/index.php/Unreal_Engine_4
# The source is over 3 GiB, with an extra 3 GiB of dependencies downloaded in build(), and may take several hours to compile.
pkgname='unreal-engine'
pkgver=4.14.3
pkgrel=1
pkgdesc='A 3D game engine by Epic Games which can be used non-commercially for free.'
arch=('x86_64')
url='https://www.unrealengine.com/'
makedepends=('clang' 'mono' 'dos2unix' 'cmake' 'git')
depends=('icu' 'xdg-user-dirs' 'sdl2' 'qt4' 'python')
license=('custom:UnrealEngine')
source=(
"git+ssh://git@github.com/EpicGames/UnrealEngine.git#tag=$pkgver-release"
'UE4Editor.desktop'
'remove-clang35-dependency.patch'
'IOS-Typo.patch'
'ignore-return-value-error.patch'
)
md5sums=(
'SKIP'
'c7fc35a7eb9e23c0a9b7c593f7f9878d'
'271579e814358390d210d57c724a3b00'
'3f8fc7334eb41fbe0531f89c0ee2e207'
'183ca1792f46a21461ed6f4c6d621a37'
)
# seems these are no longer necessary; package is 3 Gib smaller with default options
#options=(!strip staticlibs)
prepare() {
patch "$srcdir/UnrealEngine/Engine/Build/BatchFiles/Linux/Setup.sh" remove-clang35-dependency.patch
patch "$srcdir/UnrealEngine/Engine/Source/Developer/iOS/IOSPlatformEditor/Private/IOSTargetSettingsCustomization.cpp" IOS-Typo.patch
patch "$srcdir/UnrealEngine/Engine/Source/Programs/UnrealBuildTool/Linux/LinuxToolChain.cs" ignore-return-value-error.patch
cd $srcdir/UnrealEngine
# help to clean up old builds when there is a new version
# git clean -xdf
./Setup.sh
./GenerateProjectFiles.sh
}
build() {
cd $srcdir/UnrealEngine
# this should work instead of "git clean", but something leftover causes crashes
#make ARGS=-clean
# first build fails with more than one process
make -j1
# delete windows-only files
#find \( -iname "Win64" -o -iname "vs2013" -o -iname "vs2015" \) -type d -prune -exec rm -r "{}" \;
#find -iregex '.*\.\(exe\|dll\|bat\|vcx?proj\(\.filters\|\.user\)?\|sln\)$' -delete
# delete mac-only files (1+ GiB)
#find Engine/Source/ThirdParty \( -iname "IOS" -o -iname "TVOS" -o -iname "osx64" \) -type d -prune -exec rm -r "{}" \;
}
package() {
install -Dm644 UE4Editor.desktop "$pkgdir/usr/share/applications/UE4Editor.desktop"
cd $srcdir/UnrealEngine
# license
install -Dm644 LICENSE.pdf "$pkgdir/usr/share/licenses/UnrealEngine/LICENSE.pdf"
# engine
install -d "$pkgdir/opt/$pkgname/Engine"
# these folders needs to be writable, otherwise there is a segmentation fault when starting the editor
cp -r Engine/Binaries "$pkgdir/opt/$pkgname/Engine/Binaries"
cp -r Engine/Build "$pkgdir/opt/$pkgname/Engine/Build"
cp -r Engine/Config "$pkgdir/opt/$pkgname/Engine/Config"
cp -r Engine/Content "$pkgdir/opt/$pkgname/Engine/Content"
install -d "$pkgdir/opt/$pkgname/Engine/DerivedDataCache" # editor needs this
cp -r Engine/Documentation "$pkgdir/opt/$pkgname/Engine/Documentation"
cp -r Engine/Extras "$pkgdir/opt/$pkgname/Engine/Extras"
install -d "$pkgdir/opt/$pkgname/Engine/Intermediate" # editor needs this, but not the contents
cp -r Engine/Plugins "$pkgdir/opt/$pkgname/Engine/Plugins"
cp -r Engine/Programs "$pkgdir/opt/$pkgname/Engine/Programs"
cp -r Engine/Saved "$pkgdir/opt/$pkgname/Engine/Saved"
cp -r Engine/Shaders "$pkgdir/opt/$pkgname/Engine/Shaders"
cp -r Engine/Source "$pkgdir/opt/$pkgname/Engine/Source" # the source cannot be redistributed, but seems to be needed to compile c++ projects
chmod -R a+rwX "$pkgdir/opt/$pkgname/Engine"
# content
cp -r FeaturePacks "$pkgdir/opt/$pkgname/FeaturePacks"
cp -r Samples "$pkgdir/opt/$pkgname/Samples"
cp -r Templates "$pkgdir/opt/$pkgname/Templates"
# build scripts, used by some plugins (CLion)
install -Dm755 GenerateProjectFiles.sh "$pkgdir/opt/$pkgname/GenerateProjectFiles.sh"
install -Dm755 Setup.sh "$pkgdir/opt/$pkgname/Setup.sh"
install -Dm644 .ue4dependencies "$pkgdir/opt/$pkgname/.ue4dependencies"
# icon for .desktop file
install -Dm644 Engine/Source/Programs/UnrealVS/Resources/Preview.png "$pkgdir/usr/share/pixmaps/UE4Editor.png"
}
# vim:set ts=2 sw=2 et:
|