From: goodoldpaul@autistici.org
To: "Ludovic Courtès" <ludo@gnu.org>
Cc: 38687@debbugs.gnu.org
Subject: [bug#38687] [PATCH] gnu: Add libtcod.
Date: Wed, 22 Jan 2020 11:11:34 +0000 [thread overview]
Message-ID: <891e12c54b84a6f4caad6b4c72f1ecba@autistici.org> (raw)
In-Reply-To: <875zi6j3c1.fsf@gnu.org>
[-- Attachment #1: Type: text/plain, Size: 1852 bytes --]
On 2019-12-23 18:37, Ludovic Courtès wrote:
> Hi,
>
> Giacomo Leidi <goodoldpaul@autistici.org> skribis:
>
>> * gnu/packages/game-development.scm (libtcod): New variable.
>
> Could you (1) add a ‘snippet’ that removes zlib and utf8proc from
> src/vendor (assuming it doesn’t break the build system…), and (2) add
> utf8proc as an input?
>
> That way we’d make sure we don’t end up using bundled copies of these
> packages
>
> Apart from that it LGTM, thanks!
>
> Ludo’.
Hi Ludo',
Sorry for the delay. I checked and it seems that a lot of vendor library
paths are hardcoded in the C headers.
I made a new patch with a snippet that deletes zlib sources, but I'm
unsure about how to approach the hardcoded paths.
grepping for 'vendor' inside the source returns
src/libtcod/sys_sdl_img_png.cpp
41:#include "../vendor/lodepng.h"
src/libtcod/console/printing.cpp
54:#include "../../vendor/utf8proc/utf8proc.h"
src/libtcod/sdl2/gl2_ext_.h
36:#include "../../vendor/glad.h"
src/libtcod/color/canvas.cpp
39:#include "../../vendor/lodepng.h"
src/libtcod/tileset/truetype.cpp
43:#include "../../vendor/stb_truetype.h"
src/libtcod/tileset/tilesheet.cpp
34:#include "../../vendor/lodepng.h"
As far as I understood (I'm no C wizard) lodepng, glad and stb are
libraries which are designed to be dropped inside a source tree and
statically built in binaries. Right now I think those are secondary
problems and the main deal is how to effectively replace the included
utf8proc.
I'm not sure if replacing every "#include ../../vendor/something.h" with
"#include <something.h>" ( by including a .patch file or with
substitute* ? Food for thought :D) and then placing something.h inside a
path known by the C linker is enough but it's the I'm not really sure
where to go from here.
Any advice is very welcome, thanks.
Giacomo
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: 0001-gnu-Add-libtcod.patch --]
[-- Type: text/x-diff; name=0001-gnu-Add-libtcod.patch, Size: 2959 bytes --]
From 01877f5f7a7beed2d52729c4ca5577cccc495a88 Mon Sep 17 00:00:00 2001
From: Giacomo Leidi <goodoldpaul@autistici.org>
Date: Sun, 19 Jan 2020 16:59:57 +0100
Subject: [PATCH] gnu: Add libtcod.
* gnu/packages/game-development.scm (libtcod): New variable.
---
gnu/packages/game-development.scm | 45 +++++++++++++++++++++++++++++++
1 file changed, 45 insertions(+)
diff --git a/gnu/packages/game-development.scm b/gnu/packages/game-development.scm
index ee8dea23b5..f03321281e 100644
--- a/gnu/packages/game-development.scm
+++ b/gnu/packages/game-development.scm
@@ -18,6 +18,7 @@
;;; Copyright © 2019, 2020 Leo Prikler <leo.prikler@student.tugraz.at>
;;; Copyright © 2019 Jethro Cao <jethrocao@gmail.com>
;;; Copyright © 2020 Nicolas Goaziou <mail@nicolasgoaziou.fr>
+;;; Copyright © 2020 Giacomo Leidi <goodoldpaul@autistici.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -86,6 +87,7 @@
#:use-module (gnu packages sphinx)
#:use-module (gnu packages stb)
#:use-module (gnu packages texinfo)
+ #:use-module (gnu packages textutils)
#:use-module (gnu packages tls)
#:use-module (gnu packages video)
#:use-module (gnu packages xdisorg)
@@ -2049,3 +2051,46 @@ computer games, 3D authoring tools and simulation tools.")
(description "Chipmunk is a simple, lightweight, fast and portable 2D
rigid body physics library written in C.")
(license license:expat)))
+
+(define-public libtcod
+ (package
+ (name "libtcod")
+ (version "1.15.1")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/libtcod/libtcod.git")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0pzr8ajmbqvh43ldjajx962xirj3rf8ayh344p6mqlrmb8gxrfr5"))
+ (modules '((guix build utils)))
+ (snippet '(begin
+ (delete-file-recursively "src/vendor/zlib")
+ #t))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'change-to-build-dir
+ (lambda _
+ (chdir "buildsys/autotools")
+ (patch-shebang "get_version.py")
+ #t)))))
+ (native-inputs
+ `(("autoconf" ,autoconf)
+ ("automake" ,automake)
+ ("libtool" ,libtool)
+ ("python" ,python)
+ ("pkg-config" ,pkg-config)
+ ("sdl2" ,sdl2)))
+ (inputs
+ `(("zlib" ,zlib)))
+ (home-page "https://github.com/libtcod/libtcod")
+ (synopsis "Library specifically designed for writing roguelikes")
+ (description
+ "libtcod is a free, fast, portable and uncomplicated API for roguelike
+developers providing an advanced true color console, input, and lots of other
+utilities frequently used in roguelikes.")
+ (license license:bsd-3)))
--
2.25.0
next prev parent reply other threads:[~2020-01-22 11:12 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-12-20 12:37 [bug#38687] [PATCH] gnu: Add libtcod Giacomo Leidi
2019-12-23 18:37 ` Ludovic Courtès
2020-01-22 11:11 ` goodoldpaul [this message]
2020-01-22 18:57 ` Marius Bakke
2020-02-06 20:16 ` goodoldpaul
2020-02-10 21:10 ` Marius Bakke
2020-02-06 20:17 ` [bug#38687] [PATCH 1/2] gnu: Add lodepng Giacomo Leidi
2020-02-06 20:17 ` [bug#38687] [PATCH 2/2] gnu: Add libtcod Giacomo Leidi
2020-02-10 21:19 ` Marius Bakke
2020-02-16 21:53 ` [bug#38687] " goodoldpaul
2020-02-24 20:56 ` bug#38687: " Marius Bakke
2020-02-10 21:14 ` [bug#38687] [PATCH 1/2] gnu: Add lodepng Marius Bakke
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=891e12c54b84a6f4caad6b4c72f1ecba@autistici.org \
--to=goodoldpaul@autistici.org \
--cc=38687@debbugs.gnu.org \
--cc=ludo@gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/guix.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.