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-CVE-2020-21428.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/fuse-glibc-2.34.patch \
|
||||
%D%/packages/patches/fuse-overlapping-headers.patch \
|
||||
|
|
|
@ -30,6 +30,7 @@
|
|||
;;; Copyright © 2022 dan <i@dan.games>
|
||||
;;; Copyright © 2023, 2024 John Kehayias <john.kehayias@protonmail.com>
|
||||
;;; Copyright © 2024 Nicolas Graves <ngraves@ngraves.fr>
|
||||
;;; Copyright © 2024 Maxim Cournoyer <maxim.cournoyer@gmail.com>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -2780,6 +2781,35 @@ specific knowledge of the hardware they are targeting.")
|
|||
double-buffering.")
|
||||
(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
|
||||
(package
|
||||
(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