mirror of
https://gitea.wildfiregames.com/0ad/0ad.git
synced 2026-06-21 01:04:06 +00:00
Backport premake extra arch support
Grab upstream patches adding support for building premake on riscv64 [1], loongarch64 [2], and e2k [3]. [1] 82c9d90495940e2d0d574e1c7849e9698f23b090 [2] 928397f72c00979d57ec4688cb1fb26ec7f2449b [3] 5c524b6d53307bcb4ba7b02c9dba20100df68943 Fixes: #7346 Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
This commit is contained in:
@@ -8,7 +8,7 @@ set -e
|
||||
cd "$(dirname "$0")"
|
||||
|
||||
PV=5.0.0-beta3
|
||||
LIB_VERSION=${PV}+wfg0
|
||||
LIB_VERSION=${PV}+wfg1
|
||||
|
||||
echo "Building Premake..."
|
||||
while [ "$#" -gt 0 ]; do
|
||||
@@ -37,9 +37,17 @@ fi
|
||||
rm -Rf "premake-core-${PV}"
|
||||
tar -xf "premake-core-${PV}.tar.gz"
|
||||
|
||||
#patch
|
||||
# patch
|
||||
# ffcb7790f013bdceacc14ba5fda1c5cd107aac08
|
||||
patch -d "premake-core-${PV}" -p1 <patches/0001-Use-_SC_NPROCESSORS_ONLN-for-CPU-detection-in-BSDs.-.patch
|
||||
# https://github.com/premake/premake-core/issues/2338
|
||||
patch -d "premake-core-${PV}" -p1 <patches/0002-Make-clang-default-toolset-for-BSD.patch
|
||||
# 82c9d90495940e2d0d574e1c7849e9698f23b090
|
||||
patch -d "premake-core-${PV}" -p1 <patches/0003-Add-support-for-riscv64-2356.patch
|
||||
# 928397f72c00979d57ec4688cb1fb26ec7f2449b
|
||||
patch -d "premake-core-${PV}" -p1 <patches/0004-Add-support-for-loongarch64-2363.patch
|
||||
# 5c524b6d53307bcb4ba7b02c9dba20100df68943
|
||||
patch -d "premake-core-${PV}" -p1 <patches/0005-premake.h-added-e2k-definition-2349.patch
|
||||
|
||||
#build
|
||||
(
|
||||
|
||||
@@ -0,0 +1,68 @@
|
||||
From 4a4491c96feb182d219759de0d9e7655d4ab39ec Mon Sep 17 00:00:00 2001
|
||||
From: Levi Zim <rsworktech@outlook.com>
|
||||
Date: Thu, 5 Dec 2024 23:52:42 +0800
|
||||
Subject: [PATCH] Add support for riscv64 (#2356)
|
||||
|
||||
* Add support for riscv64
|
||||
* Make error message clear when architecture is unknown
|
||||
---
|
||||
src/_premake_init.lua | 1 +
|
||||
src/base/_foundation.lua | 1 +
|
||||
src/host/premake.h | 4 ++++
|
||||
website/docs/architecture.md | 1 +
|
||||
4 files changed, 7 insertions(+)
|
||||
|
||||
diff --git a/src/_premake_init.lua b/src/_premake_init.lua
|
||||
index ca901ffc..184f0c43 100644
|
||||
--- a/src/_premake_init.lua
|
||||
+++ b/src/_premake_init.lua
|
||||
@@ -28,6 +28,7 @@
|
||||
p.X86_64,
|
||||
p.ARM,
|
||||
p.ARM64,
|
||||
+ p.RISCV64,
|
||||
},
|
||||
aliases = {
|
||||
i386 = p.X86,
|
||||
diff --git a/src/base/_foundation.lua b/src/base/_foundation.lua
|
||||
index 0c19a861..411eb536 100644
|
||||
--- a/src/base/_foundation.lua
|
||||
+++ b/src/base/_foundation.lua
|
||||
@@ -61,6 +61,7 @@
|
||||
premake.X86_64 = "x86_64"
|
||||
premake.ARM = "ARM"
|
||||
premake.ARM64 = "ARM64"
|
||||
+ premake.RISCV64 = "RISCV64"
|
||||
|
||||
|
||||
|
||||
diff --git a/src/host/premake.h b/src/host/premake.h
|
||||
index 9bf20380..788f8a38 100644
|
||||
--- a/src/host/premake.h
|
||||
+++ b/src/host/premake.h
|
||||
@@ -60,6 +60,10 @@
|
||||
#elif defined(__arm__) || defined(__thumb__) || defined(__TARGET_ARCH_ARM) || defined(__TARGET_ARCH_THUMB) || \
|
||||
defined(__ARM) || defined(_M_ARM) || defined(_M_ARM_T) || defined(__ARM_ARCH)
|
||||
#define PLATFORM_ARCHITECTURE "ARM"
|
||||
+#elif defined(_M_RISCV64) || (defined(__riscv) && __riscv_xlen == 64)
|
||||
+#define PLATFORM_ARCHITECTURE "RISCV64"
|
||||
+#elif !defined(RC_INVOKED)
|
||||
+#error Unknown architecture detected
|
||||
#endif
|
||||
|
||||
/* Pull in platform-specific headers required by built-in functions */
|
||||
diff --git a/website/docs/architecture.md b/website/docs/architecture.md
|
||||
index fb530453..0dbe352e 100644
|
||||
--- a/website/docs/architecture.md
|
||||
+++ b/website/docs/architecture.md
|
||||
@@ -13,6 +13,7 @@ architecture ("value")
|
||||
* `x86_64`
|
||||
* `ARM`
|
||||
* `ARM64`
|
||||
+* `RISCV64`
|
||||
* `armv5`: Only supported in VSAndroid projects
|
||||
* `armv7`: Only supported in VSAndroid projects
|
||||
* `aarch64`: Only supported in VSAndroid projects
|
||||
--
|
||||
2.45.2
|
||||
|
||||
@@ -0,0 +1,64 @@
|
||||
From 64a8e8ae350a734b2b8512c4bcbba6e56a8e814e Mon Sep 17 00:00:00 2001
|
||||
From: Leo <114008189+Leoforever123@users.noreply.github.com>
|
||||
Date: Sat, 7 Dec 2024 11:21:24 +0800
|
||||
Subject: [PATCH] Add support for loongarch64 (#2363)
|
||||
|
||||
---
|
||||
src/_premake_init.lua | 1 +
|
||||
src/base/_foundation.lua | 1 +
|
||||
src/host/premake.h | 2 ++
|
||||
website/docs/architecture.md | 1 +
|
||||
4 files changed, 5 insertions(+)
|
||||
|
||||
diff --git a/src/_premake_init.lua b/src/_premake_init.lua
|
||||
index 184f0c43..d40558df 100644
|
||||
--- a/src/_premake_init.lua
|
||||
+++ b/src/_premake_init.lua
|
||||
@@ -29,6 +29,7 @@
|
||||
p.ARM,
|
||||
p.ARM64,
|
||||
p.RISCV64,
|
||||
+ p.LOONGARCH64
|
||||
},
|
||||
aliases = {
|
||||
i386 = p.X86,
|
||||
diff --git a/src/base/_foundation.lua b/src/base/_foundation.lua
|
||||
index 411eb536..4581d2c0 100644
|
||||
--- a/src/base/_foundation.lua
|
||||
+++ b/src/base/_foundation.lua
|
||||
@@ -62,6 +62,7 @@
|
||||
premake.ARM = "ARM"
|
||||
premake.ARM64 = "ARM64"
|
||||
premake.RISCV64 = "RISCV64"
|
||||
+ premake.LOONGARCH64 = "loongarch64"
|
||||
|
||||
|
||||
|
||||
diff --git a/src/host/premake.h b/src/host/premake.h
|
||||
index 788f8a38..4e15b863 100644
|
||||
--- a/src/host/premake.h
|
||||
+++ b/src/host/premake.h
|
||||
@@ -62,6 +62,8 @@
|
||||
#define PLATFORM_ARCHITECTURE "ARM"
|
||||
#elif defined(_M_RISCV64) || (defined(__riscv) && __riscv_xlen == 64)
|
||||
#define PLATFORM_ARCHITECTURE "RISCV64"
|
||||
+#elif (defined(__loongarch__) && __loongarch_grlen == 64) || defined(__loongarch64)
|
||||
+#define PLATFORM_ARCHITECTURE "loongarch64"
|
||||
#elif !defined(RC_INVOKED)
|
||||
#error Unknown architecture detected
|
||||
#endif
|
||||
diff --git a/website/docs/architecture.md b/website/docs/architecture.md
|
||||
index 0dbe352e..e7f4283f 100644
|
||||
--- a/website/docs/architecture.md
|
||||
+++ b/website/docs/architecture.md
|
||||
@@ -14,6 +14,7 @@ architecture ("value")
|
||||
* `ARM`
|
||||
* `ARM64`
|
||||
* `RISCV64`
|
||||
+* `loongarch64`
|
||||
* `armv5`: Only supported in VSAndroid projects
|
||||
* `armv7`: Only supported in VSAndroid projects
|
||||
* `aarch64`: Only supported in VSAndroid projects
|
||||
--
|
||||
2.45.2
|
||||
|
||||
@@ -0,0 +1,25 @@
|
||||
From a4fa1da72cc969bb85e575be25acd5aaef2edc49 Mon Sep 17 00:00:00 2001
|
||||
From: r-a-sattarov <51679282+r-a-sattarov@users.noreply.github.com>
|
||||
Date: Sun, 8 Dec 2024 22:39:47 +0300
|
||||
Subject: [PATCH] premake.h - added e2k definition (#2349)
|
||||
|
||||
---
|
||||
src/host/premake.h | 2 ++
|
||||
1 file changed, 2 insertions(+)
|
||||
|
||||
diff --git a/src/host/premake.h b/src/host/premake.h
|
||||
index 4e15b863..25ccf33a 100644
|
||||
--- a/src/host/premake.h
|
||||
+++ b/src/host/premake.h
|
||||
@@ -64,6 +64,8 @@
|
||||
#define PLATFORM_ARCHITECTURE "RISCV64"
|
||||
#elif (defined(__loongarch__) && __loongarch_grlen == 64) || defined(__loongarch64)
|
||||
#define PLATFORM_ARCHITECTURE "loongarch64"
|
||||
+#elif defined(__e2k__)
|
||||
+#define PLATFORM_ARCHITECTURE "e2k"
|
||||
#elif !defined(RC_INVOKED)
|
||||
#error Unknown architecture detected
|
||||
#endif
|
||||
--
|
||||
2.45.2
|
||||
|
||||
Reference in New Issue
Block a user