aboutsummaryrefslogtreecommitdiff
path: root/scripts/ue_build_linux/get_ue_toolchain.sh
diff options
context:
space:
mode:
authorMartin Ridgers <[email protected]>2023-02-02 14:42:28 +0100
committerMartin Ridgers <[email protected]>2023-02-02 14:55:14 +0100
commit995b9371dbd567d0ea77fc969bacccb7cd64dc4f (patch)
tree6a4df94026ae8a6018d2a82b549101b4415edd4d /scripts/ue_build_linux/get_ue_toolchain.sh
parentFixed symbol resolution error because xmake reverses dependent libraries (diff)
downloadzen-995b9371dbd567d0ea77fc969bacccb7cd64dc4f.tar.xz
zen-995b9371dbd567d0ea77fc969bacccb7cd64dc4f.zip
Scripts to acquire and use UE's Linux toolchain
Diffstat (limited to 'scripts/ue_build_linux/get_ue_toolchain.sh')
-rwxr-xr-xscripts/ue_build_linux/get_ue_toolchain.sh64
1 files changed, 64 insertions, 0 deletions
diff --git a/scripts/ue_build_linux/get_ue_toolchain.sh b/scripts/ue_build_linux/get_ue_toolchain.sh
new file mode 100755
index 000000000..67fd922c2
--- /dev/null
+++ b/scripts/ue_build_linux/get_ue_toolchain.sh
@@ -0,0 +1,64 @@
+#!/bin/bash
+
+die() { echo "ERROR: $1"; exit; }
+
+if [ -z $1 ]; then
+ echo "usage: $(basename ${BASH_SOURCE[0]}) <output_dir>"
+ exit
+fi
+
+if [ -e $1 ]; then
+ rmdir $1
+ if [ $? -gt 0 ]; then
+ die "$1 is not empty"
+ exit
+ fi
+fi
+
+mkdir -p $1
+cd $1
+
+p4 login -s
+if [ $? -gt 0 ]; then
+ die "Not logged into Perforce"
+fi
+
+# Perforce paths
+if [ -z $AUTOSDK_PATH ]; then
+ AUTOSDK_PATH=//depot/CarefullyRedist/HostLinux/Linux_x64/v21_clang-15.0.1-centos7/x86_64-unknown-linux-gnu
+fi
+
+if [ -z $UE_PATH ]; then
+ UE_PATH=//UE5/Main
+fi
+
+if [ -z $UE_LIBCXX_PATH ]; then
+ UE_LIBCXX_PATH=$UE_PATH/Engine/Source/ThirdParty/Unix/LibCxx
+fi
+
+p4_print() {
+ echo -n $1
+ p4 print -q -o$2/$(basename $1) $1
+ echo
+}
+
+# toolchain
+p4_print $AUTOSDK_PATH/bin/clang* bin
+#p4_print $AUTOSDK_PATH/bin/lld bin
+
+p4_print $AUTOSDK_PATH/lib/gcc/... lib/gcc
+p4_print $AUTOSDK_PATH/lib/clang/*/include/... lib/clang/*/include
+
+# headers
+p4_print $AUTOSDK_PATH/usr/include/...h usr/include
+
+# libraries
+p4_print $AUTOSDK_PATH/lib64/* lib64
+p4_print $AUTOSDK_PATH/usr/lib64/* usr/lib64
+
+mkdir -p usr/lib
+mv usr/lib64/*.o usr/lib
+
+# ue's libc++
+p4_print $UE_LIBCXX_PATH/include/... include
+p4_print $UE_LIBCXX_PATH/lib/Unix/x86_64-unknown-linux-gnu/* lib64