mirror of
https://codeberg.org/guix/guix.git
synced 2025-10-02 02:15:12 +00:00
gnu: Add freesolid.
* gnu/packages/game-development.scm (freesolid): New variable. * gnu/packages/patches/freesolid-configure.patch: New file. * gnu/packages/patches/freesolid-pkgconfig.patch: Likewise. * gnu/packages/patches/freesolid-automake.patch: Likewise. * gnu/packages/patches/freesolid-autotools.patch: Likewise. * gnu/local.mk (dist_patch_DATA): Register them. Change-Id: I557332031a30d944f451d0a62c763e5b41c4e29b Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
This commit is contained in:
parent
1592f1ac3b
commit
27751a4e76
6 changed files with 271 additions and 0 deletions
|
@ -1294,6 +1294,10 @@ dist_patch_DATA = \
|
||||||
%D%/packages/patches/freeimage-unbundle.patch \
|
%D%/packages/patches/freeimage-unbundle.patch \
|
||||||
%D%/packages/patches/freeimage-CVE-2020-21428.patch \
|
%D%/packages/patches/freeimage-CVE-2020-21428.patch \
|
||||||
%D%/packages/patches/freeimage-CVE-2020-22524.patch \
|
%D%/packages/patches/freeimage-CVE-2020-22524.patch \
|
||||||
|
%D%/packages/patches/freesolid-automake.patch \
|
||||||
|
%D%/packages/patches/freesolid-autotools.patch \
|
||||||
|
%D%/packages/patches/freesolid-configure.patch \
|
||||||
|
%D%/packages/patches/freesolid-pkgconfig.patch \
|
||||||
%D%/packages/patches/fulcrum-1.9.1-unbundled-libraries.patch \
|
%D%/packages/patches/fulcrum-1.9.1-unbundled-libraries.patch \
|
||||||
%D%/packages/patches/fuse-glibc-2.34.patch \
|
%D%/packages/patches/fuse-glibc-2.34.patch \
|
||||||
%D%/packages/patches/fuse-overlapping-headers.patch \
|
%D%/packages/patches/fuse-overlapping-headers.patch \
|
||||||
|
|
|
@ -30,6 +30,7 @@
|
||||||
;;; Copyright © 2022 dan <i@dan.games>
|
;;; Copyright © 2022 dan <i@dan.games>
|
||||||
;;; Copyright © 2023, 2024 John Kehayias <john.kehayias@protonmail.com>
|
;;; Copyright © 2023, 2024 John Kehayias <john.kehayias@protonmail.com>
|
||||||
;;; Copyright © 2024 Nicolas Graves <ngraves@ngraves.fr>
|
;;; Copyright © 2024 Nicolas Graves <ngraves@ngraves.fr>
|
||||||
|
;;; Copyright © 2024 Maxim Cournoyer <maxim.cournoyer@gmail.com>
|
||||||
;;;
|
;;;
|
||||||
;;; This file is part of GNU Guix.
|
;;; This file is part of GNU Guix.
|
||||||
;;;
|
;;;
|
||||||
|
@ -2780,6 +2781,35 @@ specific knowledge of the hardware they are targeting.")
|
||||||
double-buffering.")
|
double-buffering.")
|
||||||
(license license:gpl2+)))
|
(license license:gpl2+)))
|
||||||
|
|
||||||
|
(define-public freesolid
|
||||||
|
(package
|
||||||
|
(name "freesolid")
|
||||||
|
(version "2.1.2")
|
||||||
|
(source (origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (string-append "mirror://sourceforge/" name "/FreeSOLID-"
|
||||||
|
version ".zip"))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"0wxqiv1ba227kwxpgwf6in9ai1lcamhmp1ib1c1chq4xvnpwdvc9"))
|
||||||
|
(patches (search-patches "freesolid-autotools.patch"
|
||||||
|
"freesolid-pkgconfig.patch"
|
||||||
|
"freesolid-configure.patch"
|
||||||
|
"freesolid-automake.patch"))))
|
||||||
|
(build-system gnu-build-system)
|
||||||
|
(arguments (list #:phases #~(modify-phases %standard-phases
|
||||||
|
(add-after 'unpack 'force-reboostrap
|
||||||
|
(lambda _
|
||||||
|
(delete-file "bootstrap.sh")
|
||||||
|
(delete-file "configure"))))))
|
||||||
|
(native-inputs (list autoconf automake libtool unzip))
|
||||||
|
(home-page "https://sourceforge.net/projects/freesolid/")
|
||||||
|
(synopsis "3D collision detection C++ library")
|
||||||
|
(description "FreeSOLID is a library for collision detection of
|
||||||
|
three-dimensional objects undergoing rigid motion and deformation. FreeSOLID
|
||||||
|
is designed to be used in interactive 3D graphics applications.")
|
||||||
|
(license license:lgpl2.0+)))
|
||||||
|
|
||||||
(define-public libccd
|
(define-public libccd
|
||||||
(package
|
(package
|
||||||
(name "libccd")
|
(name "libccd")
|
||||||
|
|
60
gnu/packages/patches/freesolid-automake.patch
Normal file
60
gnu/packages/patches/freesolid-automake.patch
Normal file
|
@ -0,0 +1,60 @@
|
||||||
|
FreeSOLID-2.1.1-Makefile.am-update.patch
|
||||||
|
|
||||||
|
From: Alec Leamas <alec@tests.notat.diaspora.com>
|
||||||
|
|
||||||
|
This patch causes a few extra header files to be installed; they are used by
|
||||||
|
Speed-Dreams for example.
|
||||||
|
|
||||||
|
Source: https://src.fedoraproject.org/rpms/FreeSOLID/raw/rawhide/f/FreeSOLID-2.1.1-Makefile.am-update.patch
|
||||||
|
Rebased on top of 2.1.2 by Maxim Cournoyer
|
||||||
|
Upstream-status: https://sourceforge.net/p/freesolid/patches/11/
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
Makefile.am | 20 ++++++++++++++++++--
|
||||||
|
libsolid/Makefile.am | 2 +-
|
||||||
|
2 files changed, 19 insertions(+), 3 deletions(-)
|
||||||
|
|
||||||
|
--- a/Makefile.am 2024-10-28 15:17:22.787773430 +0900
|
||||||
|
+++ b/Makefile.am 2024-10-28 15:19:02.367752961 +0900
|
||||||
|
@@ -1,8 +1,24 @@
|
||||||
|
ACLOCAL_AMFLAGS = -I m4
|
||||||
|
SUBDIRS = libmoto libbroad libsolid sample doc
|
||||||
|
|
||||||
|
-EXTRA_DIST = include
|
||||||
|
+EXTRA_DIST = FreeSOLID.pc.in
|
||||||
|
bin_SCRIPTS = freesolid-config
|
||||||
|
|
||||||
|
pkgconfigdir = $(libdir)/pkgconfig
|
||||||
|
-dist_pkgconfig_DATA = FreeSOLID.pc
|
||||||
|
+nodist_pkgconfig_DATA = FreeSOLID.pc
|
||||||
|
+
|
||||||
|
+FreeSOLID_3Ddir = $(includedir)/FreeSOLID/3D
|
||||||
|
+FreeSOLID_3D_HEADERS =
|
||||||
|
+FreeSOLID_3D_HEADERS += include/3D/Basic.h
|
||||||
|
+FreeSOLID_3D_HEADERS += include/3D/Matrix.h
|
||||||
|
+FreeSOLID_3D_HEADERS += include/3D/Point.h
|
||||||
|
+FreeSOLID_3D_HEADERS += include/3D/Quaternion.h
|
||||||
|
+FreeSOLID_3D_HEADERS += include/3D/Tuple3.h
|
||||||
|
+FreeSOLID_3D_HEADERS += include/3D/Tuple4.h
|
||||||
|
+FreeSOLID_3D_HEADERS += include/3D/Vector.h
|
||||||
|
+
|
||||||
|
+FreeSOLID_SOLIDdir = $(includedir)/FreeSOLID/SOLID
|
||||||
|
+FreeSOLID_SOLID_HEADERS =
|
||||||
|
+FreeSOLID_SOLID_HEADERS += include/SOLID/solid.h
|
||||||
|
+FreeSOLID_SOLID_HEADERS += include/SOLID/broad.h
|
||||||
|
+FreeSOLID_SOLID_HEADERS += include/SOLID/types.h
|
||||||
|
|
||||||
|
diff --git a/libsolid/Makefile.am b/libsolid/Makefile.am
|
||||||
|
index f722be3..623b2e8 100644
|
||||||
|
--- a/libsolid/Makefile.am
|
||||||
|
+++ b/libsolid/Makefile.am
|
||||||
|
@@ -21,7 +21,7 @@ libFreeSOLID_la_SOURCES = \
|
||||||
|
../libmoto/MT_Vector4.cpp
|
||||||
|
|
||||||
|
|
||||||
|
-libFreeSOLID_la_LDFLAGS = -no-undefined -version-info @FREESOLID_CURRENT@:@FREESOLID_REVISION@:@FREESOLID_AGE@ -release @VERSION@
|
||||||
|
+libFreeSOLID_la_LDFLAGS = -no-undefined -version-info @FREESOLID_CURRENT@:@FREESOLID_REVISION@:@FREESOLID_AGE@
|
||||||
|
|
||||||
|
AM_CPPFLAGS = @CPPFLAGS@
|
||||||
|
LIBS = @QHULL_LIBS@ -lm
|
73
gnu/packages/patches/freesolid-autotools.patch
Normal file
73
gnu/packages/patches/freesolid-autotools.patch
Normal file
|
@ -0,0 +1,73 @@
|
||||||
|
Upstream-status: https://sourceforge.net/p/freesolid/patches/1/
|
||||||
|
|
||||||
|
Resolve Autoconf warnings.
|
||||||
|
|
||||||
|
diff --git a/Makefile.am b/Makefile.am
|
||||||
|
index 4914f44..77b157a 100644
|
||||||
|
--- a/Makefile.am
|
||||||
|
+++ b/Makefile.am
|
||||||
|
@@ -1,4 +1,5 @@
|
||||||
|
+ACLOCAL_AMFLAGS = -I m4
|
||||||
|
SUBDIRS = libmoto libbroad libsolid sample doc
|
||||||
|
|
||||||
|
EXTRA_DIST = include
|
||||||
|
-bin_SCRIPTS = freesolid-config
|
||||||
|
\ No newline at end of file
|
||||||
|
+bin_SCRIPTS = freesolid-config
|
||||||
|
diff --git a/configure.in b/configure.in
|
||||||
|
index 7d61ba5..41a761c 100644
|
||||||
|
--- a/configure.in
|
||||||
|
+++ b/configure.in
|
||||||
|
@@ -1,5 +1,6 @@
|
||||||
|
dnl Process this file with autoconf to produce a configure script.
|
||||||
|
AC_INIT(sample/sample.cpp)
|
||||||
|
+AC_CONFIG_MACRO_DIR([m4])
|
||||||
|
|
||||||
|
AC_CANONICAL_SYSTEM
|
||||||
|
PACKAGE=FreeSOLID
|
||||||
|
@@ -22,17 +23,14 @@ AC_PROG_CXX
|
||||||
|
AC_PROG_CC
|
||||||
|
AC_PROG_CPP
|
||||||
|
AC_PROG_INSTALL
|
||||||
|
-AC_PROG_RANLIB
|
||||||
|
AC_PROG_LIBTOOL
|
||||||
|
|
||||||
|
CPPFLAGS="$CPPFLAGS -I../include -I./include -I. -I../libbroad -I../libmoto"
|
||||||
|
AC_SUBST(CPPFLAGS)
|
||||||
|
|
||||||
|
dnl Checks for libraries.
|
||||||
|
-dnl Replace `main' with a function in -lm:
|
||||||
|
-AC_CHECK_LIB(m, main)
|
||||||
|
-dnl Replace `main' with a function in -lqhull:
|
||||||
|
-AC_CHECK_LIB(qhull, main, s_have_qhull=yes)
|
||||||
|
+AC_CHECK_LIB(m, ceil)
|
||||||
|
+AC_CHECK_LIB(qhull, qh_initbuild, s_have_qhull=yes)
|
||||||
|
|
||||||
|
if test "X${s_have_qhull}" = Xyes; then
|
||||||
|
QHULL_LIBS="-lqhull"
|
||||||
|
diff --git a/libsolid/Makefile.am b/libsolid/Makefile.am
|
||||||
|
index cc295c7..f722be3 100644
|
||||||
|
--- a/libsolid/Makefile.am
|
||||||
|
+++ b/libsolid/Makefile.am
|
||||||
|
@@ -23,7 +23,7 @@ libFreeSOLID_la_SOURCES = \
|
||||||
|
|
||||||
|
libFreeSOLID_la_LDFLAGS = -no-undefined -version-info @FREESOLID_CURRENT@:@FREESOLID_REVISION@:@FREESOLID_AGE@ -release @VERSION@
|
||||||
|
|
||||||
|
-CPPFLAGS = @CPPFLAGS@
|
||||||
|
+AM_CPPFLAGS = @CPPFLAGS@
|
||||||
|
LIBS = @QHULL_LIBS@ -lm
|
||||||
|
|
||||||
|
pkginclude_HEADERS = \
|
||||||
|
diff --git a/sample/Makefile.am b/sample/Makefile.am
|
||||||
|
index 5559fb0..eaa705f 100644
|
||||||
|
--- a/sample/Makefile.am
|
||||||
|
+++ b/sample/Makefile.am
|
||||||
|
@@ -4,7 +4,7 @@ sample_SOURCES = sample.cpp
|
||||||
|
x_wing_SOURCES = x_wing.cpp
|
||||||
|
teapot_SOURCES = teapot.cpp
|
||||||
|
|
||||||
|
-CPPFLAGS = @CPPFLAGS@
|
||||||
|
+AM_CPPFLAGS = @CPPFLAGS@
|
||||||
|
|
||||||
|
LDADD = ../libsolid/libFreeSOLID.la
|
||||||
|
|
58
gnu/packages/patches/freesolid-configure.patch
Normal file
58
gnu/packages/patches/freesolid-configure.patch
Normal file
|
@ -0,0 +1,58 @@
|
||||||
|
Fixes an incompatibility with Libtool 2+.
|
||||||
|
|
||||||
|
Rebased on FreeSOLID-2.1.2.
|
||||||
|
|
||||||
|
Originally retrieved from Fedora (see:
|
||||||
|
https://src.fedoraproject.org/rpms/FreeSOLID/raw/rawhide/f/FreeSOLID-2.1.1-configure.patch).
|
||||||
|
|
||||||
|
Upstream-status: https://sourceforge.net/p/freesolid/patches/10/
|
||||||
|
|
||||||
|
--- FreeSOLID-2.1.1/configure.in.orig 2012-05-24 20:58:30.000000000 +0200
|
||||||
|
+++ FreeSOLID-2.1.1/configure.in 2012-05-24 21:08:00.932445488 +0200
|
||||||
|
@@ -1,8 +1,11 @@
|
||||||
|
dnl Process this file with autoconf to produce a configure script.
|
||||||
|
-AC_INIT(sample/sample.cpp)
|
||||||
|
+AC_INIT
|
||||||
|
AC_CONFIG_MACRO_DIR([m4])
|
||||||
|
+AC_CONFIG_SRCDIR([sample/sample.cpp])
|
||||||
|
|
||||||
|
-AC_CANONICAL_SYSTEM
|
||||||
|
+AC_CONFIG_MACRO_DIR([m4])
|
||||||
|
+
|
||||||
|
+AC_CANONICAL_TARGET
|
||||||
|
PACKAGE=FreeSOLID
|
||||||
|
VERSION=2.1.1
|
||||||
|
FREESOLID_CURRENT=2
|
||||||
|
@@ -15,15 +18,14 @@
|
||||||
|
|
||||||
|
AM_INIT_AUTOMAKE($PACKAGE, $VERSION)
|
||||||
|
|
||||||
|
-AM_CONFIG_HEADER(include/config.h)
|
||||||
|
+AC_CONFIG_HEADERS([include/config.h])
|
||||||
|
|
||||||
|
dnl Checks for programs.
|
||||||
|
-AC_LIBTOOL_WIN32_DLL
|
||||||
|
AC_PROG_CXX
|
||||||
|
AC_PROG_CC
|
||||||
|
AC_PROG_CPP
|
||||||
|
AC_PROG_INSTALL
|
||||||
|
-AC_PROG_LIBTOOL
|
||||||
|
+LT_INIT([win32-dll])
|
||||||
|
|
||||||
|
CPPFLAGS="$CPPFLAGS -I../include -I./include -I. -I../libbroad -I../libmoto"
|
||||||
|
AC_SUBST(CPPFLAGS)
|
||||||
|
@@ -52,11 +54,6 @@
|
||||||
|
AC_CHECK_FUNCS(sqrt)
|
||||||
|
AC_CHECK_FUNCS(fabs)
|
||||||
|
|
||||||
|
-AC_OUTPUT([ doc/Makefile
|
||||||
|
- sample/Makefile
|
||||||
|
- Makefile
|
||||||
|
- libbroad/Makefile
|
||||||
|
- libmoto/Makefile
|
||||||
|
- libsolid/Makefile
|
||||||
|
- freesolid-config
|
||||||
|
- FreeSOLID.pc])
|
||||||
|
+AC_CONFIG_FILES([doc/Makefile sample/Makefile Makefile libbroad/Makefile libmoto/Makefile libsolid/Makefile freesolid-config])
|
||||||
|
+AC_CONFIG_FILES([FreeSOLID.pc])
|
||||||
|
+AC_OUTPUT
|
46
gnu/packages/patches/freesolid-pkgconfig.patch
Normal file
46
gnu/packages/patches/freesolid-pkgconfig.patch
Normal file
|
@ -0,0 +1,46 @@
|
||||||
|
Upstream-status: https://sourceforge.net/p/freesolid/patches/5/
|
||||||
|
|
||||||
|
diff --git a/FreeSOLID.pc.in b/FreeSOLID.pc.in
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..c354f05
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/FreeSOLID.pc.in
|
||||||
|
@@ -0,0 +1,12 @@
|
||||||
|
+prefix=@prefix@
|
||||||
|
+exec_prefix=@exec_prefix@
|
||||||
|
+libdir=@libdir@
|
||||||
|
+includedir=@includedir@
|
||||||
|
+
|
||||||
|
+Name: FreeSolid
|
||||||
|
+Description: 3D collision detection C++ library
|
||||||
|
+Version: @VERSION@
|
||||||
|
+
|
||||||
|
+Libs: -L${libdir} -lFreeSOLID @QHULL_LIBS@
|
||||||
|
+Cflags: -I${includedir} -I${includedir}/FreeSOLID
|
||||||
|
+
|
||||||
|
diff --git a/configure.in b/configure.in
|
||||||
|
index 41a761c..a4bc7d4 100644
|
||||||
|
--- a/configure.in
|
||||||
|
+++ b/configure.in
|
||||||
|
@@ -52,4 +52,11 @@ dnl Checks for library functions.
|
||||||
|
AC_CHECK_FUNCS(sqrt)
|
||||||
|
AC_CHECK_FUNCS(fabs)
|
||||||
|
|
||||||
|
-AC_OUTPUT(doc/Makefile sample/Makefile Makefile libbroad/Makefile libmoto/Makefile libsolid/Makefile freesolid-config)
|
||||||
|
+AC_OUTPUT([ doc/Makefile
|
||||||
|
+ sample/Makefile
|
||||||
|
+ Makefile
|
||||||
|
+ libbroad/Makefile
|
||||||
|
+ libmoto/Makefile
|
||||||
|
+ libsolid/Makefile
|
||||||
|
+ freesolid-config
|
||||||
|
+ FreeSOLID.pc])
|
||||||
|
--- a/Makefile.am 2024-10-28 10:49:24.006849578 +0900
|
||||||
|
+++ b/Makefile.am 2024-10-28 10:50:13.378839511 +0900
|
||||||
|
@@ -3,3 +3,6 @@
|
||||||
|
|
||||||
|
EXTRA_DIST = include
|
||||||
|
bin_SCRIPTS = freesolid-config
|
||||||
|
+
|
||||||
|
+pkgconfigdir = $(libdir)/pkgconfig
|
||||||
|
+dist_pkgconfig_DATA = FreeSOLID.pc
|
Loading…
Add table
Add a link
Reference in a new issue