From af7d1beeebac44c18cac7a37c539043de244215b Mon Sep 17 00:00:00 2001 Message-Id: From: Nicolas Goaziou Date: Tue, 4 Oct 2022 23:51:00 +0200 Subject: [PATCH] gnu: Add dds-bridge. * gnu/packages/game-development.scm (dds-bridge): New variable. --- gnu/packages/game-development.scm | 70 ++++++++++++++++++++++++++++++- 1 file changed, 69 insertions(+), 1 deletion(-) diff --git a/gnu/packages/game-development.scm b/gnu/packages/game-development.scm index 889b435cfb..bda72fe72e 100644 --- a/gnu/packages/game-development.scm +++ b/gnu/packages/game-development.scm @@ -17,7 +17,7 @@ ;;; Copyright © 2019 Pierre Neidhardt ;;; Copyright © 2019, 2020, 2021 Liliana Marie Prikler ;;; Copyright © 2019 Jethro Cao -;;; Copyright © 2020, 2021 Nicolas Goaziou +;;; Copyright © 2020-2022 Nicolas Goaziou ;;; Copyright © 2020 Timotej Lazar ;;; Copyright © 2020 Giacomo Leidi ;;; Copyright © 2021 Alexandru-Sergiu Marton @@ -74,6 +74,7 @@ (define-module (gnu packages game-development) #:use-module (gnu packages freedesktop) #:use-module (gnu packages fribidi) #:use-module (gnu packages dbm) + #:use-module (gnu packages gawk) #:use-module (gnu packages gettext) #:use-module (gnu packages gl) #:use-module (gnu packages glib) @@ -85,6 +86,7 @@ (define-module (gnu packages game-development) #:use-module (gnu packages guile) #:use-module (gnu packages image) #:use-module (gnu packages linux) + #:use-module (gnu packages llvm) #:use-module (gnu packages lua) #:use-module (gnu packages m4) #:use-module (gnu packages mp3) @@ -181,6 +183,72 @@ (define-public bullet is used in some video games and movies.") (license license:zlib))) +(define-public dds-bridge + (package + (name "dds-bridge") + (version "2.9.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/dds-bridge/dds") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1iv09qic43nvla02lm8zgnkqpjgnc95p8zh3wyifmnmlh1rz02yj")))) + (build-system gnu-build-system) + (arguments + (list #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'chdir + (lambda _ + (chdir "src"))) + (replace 'configure + ;; Configuration is done by copying the appropriate + ;; make file in the working directory. There is no + ;; configure script. + (lambda _ + (copy-file "Makefiles/Makefile_linux_shared" + "Makefile"))) + (replace 'check + ;; There is no "check" traget. We must compile + ;; a "dtest" program and apply it on a data set. + (lambda* (#:key tests? #:allow-other-keys) + (when tests? + (install-file "libdds.so" "../test") + (with-directory-excursion "../test" + (copy-file "Makefiles/Makefile_linux" + "Makefile") + (substitute* "Makefile" + (("-Werror") "")) + (invoke "make") + (invoke "./dtest") + (invoke "./dtest" "-f" "../hands/list100.txt"))))) + (replace 'install + ;; "install" target merely moves ".so" file around + ;; the source directory. We install it in the store, + ;; along with all shipped documentation (which cannot + ;; be built from source unfortunately). + (lambda _ + (install-file "libdds.so" + (string-append #$output "/lib")) + (let ((doc (string-append #$output + "/share/doc/" + #$name "-" #$version))) + (install-file "../LICENSE" doc) + (copy-recursively "../doc" doc))))))) + (native-inputs + (list gawk procps)) + (inputs + (list boost libomp)) + (home-page "http://privat.bahnhof.se/wb758135/") + (synopsis "Double dummy solver for the bridge card game") + (description "DDS is a double-dummy solver of bridge hands. It supports +single-threading and multi-threading for improved performance. DDS +offers a wide range of functions, including par-score calculations.") + (license license:asl2.0))) + (define-public deutex (package (name "deutex") -- 2.37.3