mirror of
https://https.git.savannah.gnu.org/git/guix.git/
synced 2025-07-13 10:30:43 +02:00
gnu: Add ericw-tools.
* gnu/packages/game-development.scm: (ericw-tools): New variable. * gnu/packages/patches/ericw-tools-add-check-for-sse2-in-light.cc.patch: New file. * gnu/packages/patches/ericw-tools-gcc-11-pass-const-to-offsetof.patch: New file. * gnu/local.mk: Register patch files. Change-Id: I896b8f781054442e4db4a7220d526b8f2878873c Signed-off-by: Nicolas Goaziou <mail@nicolasgoaziou.fr>
This commit is contained in:
parent
6863b689eb
commit
df6e23586c
4 changed files with 195 additions and 0 deletions
|
@ -70,6 +70,7 @@
|
||||||
# Copyright © 2024 Noé Lopez <noelopez@free.fr>
|
# Copyright © 2024 Noé Lopez <noelopez@free.fr>
|
||||||
# Copyright © 2024 Runciter <runciter@whispers-vpn.org>
|
# Copyright © 2024 Runciter <runciter@whispers-vpn.org>
|
||||||
# Copyright © 2024 Ashvith Shetty <ashvithshetty10@gmail.com>
|
# Copyright © 2024 Ashvith Shetty <ashvithshetty10@gmail.com>
|
||||||
|
# Copyright © 2024 James Smith <jsubuntuxp@disroot.org>
|
||||||
#
|
#
|
||||||
# This file is part of GNU Guix.
|
# This file is part of GNU Guix.
|
||||||
#
|
#
|
||||||
|
@ -1244,6 +1245,8 @@ dist_patch_DATA = \
|
||||||
%D%/packages/patches/epiphany-fix-encoding-test.patch \
|
%D%/packages/patches/epiphany-fix-encoding-test.patch \
|
||||||
%D%/packages/patches/ergodox-firmware-fix-json-target.patch \
|
%D%/packages/patches/ergodox-firmware-fix-json-target.patch \
|
||||||
%D%/packages/patches/ergodox-firmware-fix-numpad.patch \
|
%D%/packages/patches/ergodox-firmware-fix-numpad.patch \
|
||||||
|
%D%/packages/patches/ericw-tools-add-check-for-sse2-in-light.cc.patch \
|
||||||
|
%D%/packages/patches/ericw-tools-gcc-11-pass-const-to-offsetof.patch \
|
||||||
%D%/packages/patches/erlang-man-path.patch \
|
%D%/packages/patches/erlang-man-path.patch \
|
||||||
%D%/packages/patches/esmini-use-pkgconfig.patch \
|
%D%/packages/patches/esmini-use-pkgconfig.patch \
|
||||||
%D%/packages/patches/esmtp-add-lesmtp.patch \
|
%D%/packages/patches/esmtp-add-lesmtp.patch \
|
||||||
|
|
|
@ -2603,6 +2603,74 @@ scripted in a Python-like language.")
|
||||||
(license (list license:expat ; code
|
(license (list license:expat ; code
|
||||||
license:cc-by4.0)))) ; documentation
|
license:cc-by4.0)))) ; documentation
|
||||||
|
|
||||||
|
(define-public ericw-tools
|
||||||
|
(package
|
||||||
|
(name "ericw-tools")
|
||||||
|
(version "0.18.1")
|
||||||
|
(source
|
||||||
|
(origin
|
||||||
|
(method git-fetch)
|
||||||
|
(uri (git-reference (url "https://github.com/ericwa/ericw-tools")
|
||||||
|
(commit (string-append "v" version))))
|
||||||
|
(file-name (git-file-name name version))
|
||||||
|
(sha256
|
||||||
|
(base32 "11sap7qv0rlhw8q25azvhgjcwiql3zam09q0gim3i04cg6fkh0vp"))
|
||||||
|
(patches
|
||||||
|
(search-patches "ericw-tools-add-check-for-sse2-in-light.cc.patch"
|
||||||
|
"ericw-tools-gcc-11-pass-const-to-offsetof.patch"))))
|
||||||
|
(build-system cmake-build-system)
|
||||||
|
(arguments
|
||||||
|
(list #:configure-flags #~(list "-DENABLE_LIGHTPREVIEW=OFF")
|
||||||
|
#:phases
|
||||||
|
#~(modify-phases %standard-phases
|
||||||
|
(add-after 'unpack 'disable-copying-embree-files
|
||||||
|
(lambda _
|
||||||
|
;; Tries to copy files from embree, disable it.
|
||||||
|
(substitute* "light/CMakeLists.txt"
|
||||||
|
(("install\\\(FILES \\$\\{EMBREE")
|
||||||
|
"#install(FILES ${EMBREE"))))
|
||||||
|
(add-after 'install 'rename-binaries
|
||||||
|
(lambda _
|
||||||
|
;; Rename binaries to prevent collisions with other
|
||||||
|
;; packages.
|
||||||
|
(rename-file (string-append #$output "/bin/bspinfo")
|
||||||
|
(string-append #$output "/bin/qbspinfo"))
|
||||||
|
(rename-file (string-append #$output "/bin/bsputil")
|
||||||
|
(string-append #$output "/bin/qbsputil"))
|
||||||
|
(rename-file (string-append #$output "/bin/light")
|
||||||
|
(string-append #$output "/bin/qlight"))
|
||||||
|
(rename-file (string-append #$output "/bin/vis")
|
||||||
|
(string-append #$output "/bin/qvis"))))
|
||||||
|
(add-after 'install-license-files 'clean-up-bin-directory
|
||||||
|
(lambda _
|
||||||
|
;; Install target copies text documents to #$output/bin, move
|
||||||
|
;; them to #$output/share/doc.
|
||||||
|
(delete-file (string-append #$output "/bin/gpl_v3.txt"))
|
||||||
|
(rename-file
|
||||||
|
(string-append #$output "/bin/changelog.txt")
|
||||||
|
(string-append #$output "/share/doc/"
|
||||||
|
#$(package-name this-package) "-"
|
||||||
|
#$(package-version this-package)
|
||||||
|
"/changelog.txt"))
|
||||||
|
(rename-file
|
||||||
|
(string-append #$output "/bin/README.md")
|
||||||
|
(string-append #$output "/share/doc/"
|
||||||
|
#$(package-name this-package) "-"
|
||||||
|
#$(package-version this-package)
|
||||||
|
"/README.md")))))
|
||||||
|
#:tests? #f)) ; No tests
|
||||||
|
(inputs (list embree-2))
|
||||||
|
(home-page "https://ericwa.github.io/ericw-tools/")
|
||||||
|
(synopsis "Map compiling tools for Quake/Hexen 2")
|
||||||
|
(description
|
||||||
|
"This package provides a collection of command line utilities used for
|
||||||
|
building Quake maps as well as working with various Quake file formats. The
|
||||||
|
utilities include @command{qbsp} for building the geometry, @command{qvis} for
|
||||||
|
calculating visibility, @command{qlight} for lighting, @command{bspinfo} for
|
||||||
|
getting information, and @command{bsputil} for basic editing of data in a map
|
||||||
|
file.")
|
||||||
|
(license license:gpl2+)))
|
||||||
|
|
||||||
(define-public eureka
|
(define-public eureka
|
||||||
(package
|
(package
|
||||||
(name "eureka")
|
(name "eureka")
|
||||||
|
|
|
@ -0,0 +1,34 @@
|
||||||
|
This patch is from upstream and shouldn't be needed in the next release.
|
||||||
|
https://github.com/ericwa/ericw-tools/commit/982ef5276bb231ded12c45a686b0875594175774.patch
|
||||||
|
|
||||||
|
From 982ef5276bb231ded12c45a686b0875594175774 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Bryan Haley <bryanmhaley@gmail.com>
|
||||||
|
Date: Mon, 28 Mar 2022 22:05:28 -0700
|
||||||
|
Subject: [PATCH] Add check for SSE2 in light.cc (#328)
|
||||||
|
|
||||||
|
---
|
||||||
|
light/light.cc | 4 ++--
|
||||||
|
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/light/light.cc b/light/light.cc
|
||||||
|
index 7e23d040f..c00844643 100644
|
||||||
|
--- a/light/light.cc
|
||||||
|
+++ b/light/light.cc
|
||||||
|
@@ -33,7 +33,7 @@
|
||||||
|
#include <common/polylib.hh>
|
||||||
|
#include <common/bsputils.hh>
|
||||||
|
|
||||||
|
-#ifdef HAVE_EMBREE
|
||||||
|
+#if defined(HAVE_EMBREE) && defined (__SSE2__)
|
||||||
|
#include <xmmintrin.h>
|
||||||
|
//#include <pmmintrin.h>
|
||||||
|
#endif
|
||||||
|
@@ -255,7 +255,7 @@ LightThread(void *arg)
|
||||||
|
{
|
||||||
|
const mbsp_t *bsp = (const mbsp_t *)arg;
|
||||||
|
|
||||||
|
-#ifdef HAVE_EMBREE
|
||||||
|
+#if defined(HAVE_EMBREE) && defined (__SSE2__)
|
||||||
|
_MM_SET_FLUSH_ZERO_MODE(_MM_FLUSH_ZERO_ON);
|
||||||
|
// _MM_SET_DENORMALS_ZERO_MODE(_MM_DENORMALS_ZERO_ON);
|
||||||
|
#endif
|
|
@ -0,0 +1,90 @@
|
||||||
|
This patch is from upstream and shouldn't be needed in the next release.
|
||||||
|
https://github.com/ericwa/ericw-tools/commit/c9570260fa895dde5a21272d76f9a3b05d59efdd.patch
|
||||||
|
|
||||||
|
From c9570260fa895dde5a21272d76f9a3b05d59efdd Mon Sep 17 00:00:00 2001
|
||||||
|
From: Eric Wasylishen <ewasylishen@gmail.com>
|
||||||
|
Date: Sun, 30 May 2021 23:12:17 -0600
|
||||||
|
Subject: [PATCH] gcc 11: pass constant to offsetof
|
||||||
|
|
||||||
|
---
|
||||||
|
common/polylib.cc | 5 ++++-
|
||||||
|
qbsp/util.cc | 5 ++++-
|
||||||
|
qbsp/winding.cc | 4 +++-
|
||||||
|
vis/vis.cc | 10 ++++++++--
|
||||||
|
4 files changed, 19 insertions(+), 5 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/common/polylib.cc b/common/polylib.cc
|
||||||
|
index 6397b3107..c8e1afbff 100644
|
||||||
|
--- a/common/polylib.cc
|
||||||
|
+++ b/common/polylib.cc
|
||||||
|
@@ -230,7 +230,10 @@ polylib::CopyWinding(const winding_t * w)
|
||||||
|
int size;
|
||||||
|
winding_t *c;
|
||||||
|
|
||||||
|
- size = offsetof(winding_t, p[w->numpoints]);
|
||||||
|
+ //size = offsetof(winding_t, p[w->numpoints]);
|
||||||
|
+ size = offsetof(winding_t, p[0]);
|
||||||
|
+ size += w->numpoints * sizeof(w->p[0]);
|
||||||
|
+
|
||||||
|
c = static_cast<winding_t *>(malloc(size));
|
||||||
|
memcpy(c, w, size);
|
||||||
|
return c;
|
||||||
|
diff --git a/qbsp/util.cc b/qbsp/util.cc
|
||||||
|
index e8baf7205..16c9077f1 100644
|
||||||
|
--- a/qbsp/util.cc
|
||||||
|
+++ b/qbsp/util.cc
|
||||||
|
@@ -53,7 +53,10 @@ AllocMem(int Type, int cElements, bool fZero)
|
||||||
|
if (cElements > MAX_POINTS_ON_WINDING)
|
||||||
|
Error("Too many points (%d) on winding (%s)", cElements, __func__);
|
||||||
|
|
||||||
|
- cSize = offsetof(winding_t, points[cElements]) + sizeof(int);
|
||||||
|
+ //cSize = offsetof(winding_t, points[cElements]) + sizeof(int);
|
||||||
|
+ cSize = offsetof(winding_t, points[0]);
|
||||||
|
+ cSize += cElements * sizeof(static_cast<winding_t*>(nullptr)->points[0]);
|
||||||
|
+ cSize += sizeof(int);
|
||||||
|
|
||||||
|
// Set cElements to 1 so bookkeeping works OK
|
||||||
|
cElements = 1;
|
||||||
|
diff --git a/qbsp/winding.cc b/qbsp/winding.cc
|
||||||
|
index 1af1d096c..6e286c387 100644
|
||||||
|
--- a/qbsp/winding.cc
|
||||||
|
+++ b/qbsp/winding.cc
|
||||||
|
@@ -106,7 +106,9 @@ CopyWinding(const winding_t *w)
|
||||||
|
winding_t *c;
|
||||||
|
|
||||||
|
c = (winding_t *)AllocMem(WINDING, w->numpoints, false);
|
||||||
|
- size = offsetof(winding_t, points[w->numpoints]);
|
||||||
|
+ //size = offsetof(winding_t, points[w->numpoints]);
|
||||||
|
+ size = offsetof(winding_t, points[0]);
|
||||||
|
+ size += w->numpoints * sizeof(w->points[0]);
|
||||||
|
memcpy(c, w, size);
|
||||||
|
|
||||||
|
return c;
|
||||||
|
diff --git a/vis/vis.cc b/vis/vis.cc
|
||||||
|
index 9fb0ea9ea..ec43a8a5f 100644
|
||||||
|
--- a/vis/vis.cc
|
||||||
|
+++ b/vis/vis.cc
|
||||||
|
@@ -127,7 +127,10 @@ NewWinding(int points)
|
||||||
|
if (points > MAX_WINDING)
|
||||||
|
Error("%s: %i points", __func__, points);
|
||||||
|
|
||||||
|
- size = offsetof(winding_t, points[points]);
|
||||||
|
+ //size = offsetof(winding_t, points[points]);
|
||||||
|
+ size = offsetof(winding_t, points[0]);
|
||||||
|
+ size += points * sizeof(w->points[0]);
|
||||||
|
+
|
||||||
|
w = static_cast<winding_t *>(malloc(size));
|
||||||
|
memset(w, 0, size);
|
||||||
|
|
||||||
|
@@ -178,7 +181,10 @@ CopyWinding(const winding_t * w)
|
||||||
|
int size;
|
||||||
|
winding_t *c;
|
||||||
|
|
||||||
|
- size = offsetof(winding_t, points[w->numpoints]);
|
||||||
|
+ //size = offsetof(winding_t, points[w->numpoints]);
|
||||||
|
+ size = offsetof(winding_t, points[0]);
|
||||||
|
+ size += w->numpoints * sizeof(w->points[0]);
|
||||||
|
+
|
||||||
|
c = static_cast<winding_t *>(malloc(size));
|
||||||
|
memcpy(c, w, size);
|
||||||
|
return c;
|
Loading…
Add table
Add a link
Reference in a new issue