From ccff3380867b588f0c68e9daedd5728392a91a3f Mon Sep 17 00:00:00 2001
From: Franck Pérignon <Franck.Perignon@univ-grenoble-alpes.fr>
Date: Thu, 8 Apr 2021 13:42:27 +0000
Subject: gnu: Add boost-mpi.
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

* gnu/packages/boost.scm (boost-mpi): New variable.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
---
 gnu/packages/boost.scm | 26 ++++++++++++++++++++++++++
 1 file changed, 26 insertions(+)

diff --git a/gnu/packages/boost.scm b/gnu/packages/boost.scm
index 1323e28278..a59bb01f3d 100644
--- a/gnu/packages/boost.scm
+++ b/gnu/packages/boost.scm
@@ -14,6 +14,7 @@
 ;;; Copyright © 2019, 2020 Giacomo Leidi <goodoldpaul@autistici.org>
 ;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com>
 ;;; Copyright © 2020 Jonathan Brielmaier <jonathan.brielmaier@web.de>
+;;; Copyright © 2021 Franck Pérignon <franck.perignon@univ-grenoble-alpes.fr>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -45,6 +46,7 @@
   #:use-module (gnu packages perl)
   #:use-module (gnu packages python)
   #:use-module (gnu packages shells)
+  #:use-module (gnu packages mpi)
   #:use-module (srfi srfi-1))
 
 (define (version-with-underscores version)
@@ -347,6 +349,30 @@ Boost.Thread.")
 signals and slots system.")
     (license (license:x11-style "https://www.boost.org/LICENSE_1_0.txt"))))
 
+
+(define-public boost-mpi
+  (package
+    (inherit boost)
+    (name "boost-mpi")
+    (native-inputs
+     `(("perl" ,perl)
+       ,@(if (%current-target-system)
+             '()
+             `(("python" ,python-wrapper)))
+       ("openmpi" , openmpi)))
+    (arguments
+     (substitute-keyword-arguments (package-arguments boost)
+      ((#:phases phases)
+       `(modify-phases ,phases
+          (add-after 'configure 'update-jam
+            (lambda* (#:key inputs outputs #:allow-other-keys)
+              (let ((output-port (open-file "project-config.jam" "a")))
+                (display "using mpi ;" output-port)
+                (newline output-port)
+                (close output-port))))))))
+    (home-page "https://www.boost.org")
+    (synopsis "Message Passing Interface (MPI) library for C++")))
+
 (define-public mdds
   (package
     (name "mdds")
-- 
cgit 1.4.1