summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorZerophase2020-01-10 16:46:31 -0600
committerZerophase2020-01-10 17:20:24 -0600
commite90a624ed09c34c58b88dff54fdf61c92b13f4f7 (patch)
tree9d81d005327ef21351037c8c6b101b7c9b2f45af
parent776fb9ff9d1cfef5c767e0e300f6a782d9c4236e (diff)
downloadaur-e90a624ed09c34c58b88dff54fdf61c92b13f4f7.tar.gz
Enable Clang 9 support
-rw-r--r--.SRCINFO6
-rw-r--r--.gitignore2
-rw-r--r--PKGBUILD33
-rw-r--r--feditorstyle-undefined-reference.patch10
-rw-r--r--unreal.patch53
5 files changed, 91 insertions, 13 deletions
diff --git a/.SRCINFO b/.SRCINFO
index eb449af636a..e05dbacc79d 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,7 +1,7 @@
pkgbase = unreal-engine
pkgdesc = A 3D game engine by Epic Games which can be used non-commercially for free.
pkgver = 4.24.1
- pkgrel = 4
+ pkgrel = 5
url = https://www.unrealengine.com/
arch = x86_64
license = custom:UnrealEngine
@@ -23,8 +23,12 @@ pkgbase = unreal-engine
options = staticlibs
source = com.unrealengine.UE4Editor.desktop
source = use-arch-mono.patch
+ source = unreal.patch
+ source = feditorstyle-undefined-reference.patch
sha256sums = fa4bd19ab53e91cc8b4ae6208452a7fe986a08047617213d6250b43e7a140bf3
sha256sums = 90a112f72a498f50dafad4feeaf7c551fe4e19830610bcef634f8e23d3d283b3
+ sha256sums = d3686d76fbdd2e80d8960ee21ad5ab7769451c4a11b980ac3df699fde339e42f
+ sha256sums = 52d3bed7f95906aab3313e4beb263ba505751fb066230bf67f6bedade0ab6e19
pkgname = unreal-engine
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 00000000000..72b29200322
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,2 @@
+unreal-engine-*
+UnrealEngine/*
diff --git a/PKGBUILD b/PKGBUILD
index 664e54331c8..536f6f5e63b 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -5,7 +5,7 @@
# The source is about 200 MiB, with an extra ~11 GiB of dependencies downloaded in Setup.sh, and may take several hours to compile.
pkgname='unreal-engine'
pkgver=4.24.1
-pkgrel=4
+pkgrel=5
pkgdesc='A 3D game engine by Epic Games which can be used non-commercially for free.'
arch=('x86_64')
url='https://www.unrealengine.com/'
@@ -19,9 +19,14 @@ optdepends=('qt5-base: qmake build system for projects'
'clion: IDE for projects')
license=('custom:UnrealEngine')
source=('com.unrealengine.UE4Editor.desktop'
- 'use-arch-mono.patch')
+ 'use-arch-mono.patch'
+ 'unreal.patch'
+ 'feditorstyle-undefined-reference.patch')
+
sha256sums=('fa4bd19ab53e91cc8b4ae6208452a7fe986a08047617213d6250b43e7a140bf3'
- '90a112f72a498f50dafad4feeaf7c551fe4e19830610bcef634f8e23d3d283b3')
+ '90a112f72a498f50dafad4feeaf7c551fe4e19830610bcef634f8e23d3d283b3'
+ 'd3686d76fbdd2e80d8960ee21ad5ab7769451c4a11b980ac3df699fde339e42f'
+ '28842509b38eb4d1d0c328af0f8ab2c5f53849a9815d061fbb199563880b046f')
options=(strip staticlibs) # Package is 3 Gib smaller with "strip" but it takes a long time and generates many warnings
prepare() {
@@ -45,29 +50,33 @@ prepare() {
fi
patch Engine/Build/BatchFiles/Linux/SetupMono.sh $srcdir/use-arch-mono.patch # Use system mono
-
+ patch Engine/Source/Runtime/Launch/Launch.Build.cs $srcdir/feditorstyle-undefined-reference.patch
+ patch -p1 -i $srcdir/unreal.patch
+
# Qt Creator source code access
if [ ! -d Engine/Plugins/Developer/QtCreatorSourceCodeAccess ]
then
git -C Engine/Plugins/Developer clone --depth=1 git@github.com:fire/QtCreatorSourceCodeAccess
fi
+ touch Engine/Build/PerforceBuild.txt
export TERM=xterm
./Setup.sh
- ./GenerateProjectFiles.sh -makefile
+ ./GenerateProjectFiles.sh -makefile -ForceUseSystemCompiler
}
build() {
cd $pkgname
# Build all targets from the "all" rule separately, because building multiple targets in parallel results in an error (but building one target with multiple threads is possible)
- make CrashReportClient-Linux-Shipping
- make CrashReportClientEditor-Linux-Shipping
- make ShaderCompileWorker
- make UnrealLightmass
- make UnrealFrontend
- make UE4Editor
- make UnrealInsights
+ MAKE_ARGS="ARGS=-ForceUseSystemCompiler"
+ make CrashReportClient-Linux-Shipping $MAKE_ARGS
+ make CrashReportClientEditor-Linux-Shipping $MAKE_ARGS
+ make ShaderCompileWorker $MAKE_ARGS
+ make UnrealLightmass $MAKE_ARGS
+ make UnrealFrontend $MAKE_ARGS
+ make UE4Editor $MAKE_ARGS
+ make UnrealInsights $MAKE_ARGS
}
package() {
diff --git a/feditorstyle-undefined-reference.patch b/feditorstyle-undefined-reference.patch
new file mode 100644
index 00000000000..d2042461bc7
--- /dev/null
+++ b/feditorstyle-undefined-reference.patch
@@ -0,0 +1,10 @@
+--- Launch.Build.cs 2020-01-10 15:52:46.177542575 -0600
++++ Launch.Build.cs_new 2020-01-10 15:51:39.197541686 -0600
+@@ -183,6 +183,7 @@
+
+ PrivateDependencyModuleNames.AddRange(new string[] {
+ "SourceControl",
++ "EditorStyle",
+ "UnrealEd",
+ "DesktopPlatform",
+ "PIEPreviewDeviceProfileSelector",
diff --git a/unreal.patch b/unreal.patch
new file mode 100644
index 00000000000..119874a9b87
--- /dev/null
+++ b/unreal.patch
@@ -0,0 +1,53 @@
+diff --git a/Engine/Source/Programs/UnrealBuildTool/Platform/Linux/LinuxToolChain.cs b/Engine/Source/Programs/UnrealBuildTool/Platform/Linux/LinuxToolChain.cs
+index 1dc0d9b4331..b46d10c9ef5 100644
+--- a/Engine/Source/Programs/UnrealBuildTool/Platform/Linux/LinuxToolChain.cs
++++ b/Engine/Source/Programs/UnrealBuildTool/Platform/Linux/LinuxToolChain.cs
+@@ -57,9 +57,6 @@ namespace UnrealBuildTool
+ /** Whether or not to preserve the portable symbol file produced by dump_syms */
+ bool bPreservePSYM = false;
+
+- /** Platform SDK to use */
+- protected LinuxPlatformSDK PlatformSDK;
+-
+ /** Toolchain information to print during the build. */
+ protected string ToolchainInfo;
+
+@@ -163,10 +160,10 @@ namespace UnrealBuildTool
+ throw new BuildException("Unable to build: no compatible clang version found. Please run Setup.sh");
+ }
+ // prevent unknown clangs since the build is likely to fail on too old or too new compilers
+- else if ((CompilerVersionMajor * 10 + CompilerVersionMinor) > 80 || (CompilerVersionMajor * 10 + CompilerVersionMinor) < 60)
++ else if ((CompilerVersionMajor * 10 + CompilerVersionMinor) > 90 || (CompilerVersionMajor * 10 + CompilerVersionMinor) < 60)
+ {
+ throw new BuildException(
+- string.Format("This version of the Unreal Engine can only be compiled with clang 8.0, 7.0 and 6.0. clang {0} may not build it - please use a different version.",
++ string.Format("This version of the Unreal Engine can only be compiled with clang 9.0 8.0, 7.0 and 6.0. clang {0} may not build it - please use a different version.",
+ CompilerVersionString)
+ );
+ }
+diff --git a/Engine/Source/Programs/UnrealBuildTool/ToolChain/UEToolChain.cs b/Engine/Source/Programs/UnrealBuildTool/ToolChain/UEToolChain.cs
+index fbfc9a7f7a4..cbcd2a341b5 100644
+--- a/Engine/Source/Programs/UnrealBuildTool/ToolChain/UEToolChain.cs
++++ b/Engine/Source/Programs/UnrealBuildTool/ToolChain/UEToolChain.cs
+@@ -12,6 +12,9 @@ namespace UnrealBuildTool
+ {
+ abstract class UEToolChain
+ {
++ /** Platform SDK to use */
++ protected LinuxPlatformSDK PlatformSDK;
++
+ public UEToolChain()
+ {
+ }
+diff --git a/Engine/Source/Runtime/Core/Public/Unix/UnixSystemIncludes.h b/Engine/Source/Runtime/Core/Public/Unix/UnixSystemIncludes.h
+index ec5829a834e..79702a4b9fe 100644
+--- a/Engine/Source/Runtime/Core/Public/Unix/UnixSystemIncludes.h
++++ b/Engine/Source/Runtime/Core/Public/Unix/UnixSystemIncludes.h
+@@ -31,7 +31,6 @@
+ #include <utime.h>
+ #include <execinfo.h>
+ #include <signal.h>
+-#include <sys/sysctl.h>
+ #if PLATFORM_ENABLE_VECTORINTRINSICS
+ #include <xmmintrin.h>
+ #endif // PLATFORM_RASPBERRY