X-Git-Url: https://git.hcoop.net/jackhill/guix/guix.git/blobdiff_plain/a7ff66998f6e0eeb5da485bab7f6e0b55a46651e..6a7ac0a829169f665c0aee6cb7899fa943b2d648:/gnu/packages/boost.scm diff --git a/gnu/packages/boost.scm b/gnu/packages/boost.scm index f5c2c58300..0a2a5c5c01 100644 --- a/gnu/packages/boost.scm +++ b/gnu/packages/boost.scm @@ -3,13 +3,14 @@ ;;; Copyright © 2014, 2015, 2018 Mark H Weaver ;;; Copyright © 2015 Andreas Enge ;;; Copyright © 2016 Eric Bavier -;;; Copyright © 2015 Ludovic Courtès +;;; Copyright © 2015, 2019 Ludovic Courtès ;;; Copyright © 2017 Thomas Danckaert ;;; Copyright © 2018 Tobias Geerinckx-Rice ;;; Copyright © 2018 Arun Isaac -;;; Copyright © 2018 Ricardo Wurmus +;;; Copyright © 2018, 2019 Ricardo Wurmus ;;; Copyright © 2018 Maxim Cournoyer ;;; Copyright © 2018 Efraim Flashner +;;; Copyright © 2019 Giacomo Leidi ;;; ;;; This file is part of GNU Guix. ;;; @@ -32,7 +33,6 @@ #:use-module (guix packages) #:use-module (guix download) #:use-module (guix git-download) - #:use-module (guix build utils) #:use-module (guix build-system gnu) #:use-module (guix build-system trivial) #:use-module (gnu packages) @@ -45,17 +45,19 @@ (define-public boost (package (name "boost") - (version "1.68.0") + (version "1.70.0") (source (origin (method url-fetch) - (uri (string-append - "mirror://sourceforge/boost/boost/" version "/boost_" - (string-map (lambda (x) (if (eq? x #\.) #\_ x)) version) - ".tar.bz2")) + (uri (let ((version-with-underscores + (string-map (lambda (x) (if (eq? x #\.) #\_ x)) version))) + (list (string-append "mirror://sourceforge/boost/boost/" version + "/boost_" version-with-underscores ".tar.bz2") + (string-append "https://dl.bintray.com/boostorg/release/" + version "/source/boost_" + version-with-underscores ".tar.bz2")))) (sha256 (base32 - "1dyqsr9yb01y0nnjdq9b8q5s2kvhxbayk34832k5cpzn7jy30qbz")) - (patches (search-patches "boost-fix-icu-build.patch")))) + "0y47nc7w0arwgj4x1phadxbvl7wyfcgknbz5kv8lzpl98wsyh2j3")))) (build-system gnu-build-system) (inputs `(("icu4c" ,icu4c) ("zlib" ,zlib))) @@ -67,7 +69,11 @@ `(#:tests? #f #:make-flags (list "threading=multi" "link=shared" - "cxxflags=-std=c++14" + + ;; XXX: Disable installation of Boosts modular CMake config scripts + ;; which conflicts in 1.70.0 with the ones provided by CMake. + ;; See . + "--no-cmake-config" ;; Set the RUNPATH to $libdir so that the libs find each other. (string-append "linkflags=-Wl,-rpath=" @@ -123,6 +129,72 @@ across a broad spectrum of applications.") (license (license:x11-style "https://www.boost.org/LICENSE_1_0.txt" "Some components have other similar licences.")))) +;; TODO: Merge with 'Boost' in the next rebuild cycle. +(define-public boost-with-python3 + (package + (inherit boost) + (name "boost-python3") + (native-inputs + `(("perl" ,perl) + ("python" ,python) + ("tcsh" ,tcsh))) + (arguments (substitute-keyword-arguments (package-arguments boost) + ((#:phases phases) + `(modify-phases ,phases + (replace 'configure + (lambda* (#:key inputs outputs #:allow-other-keys) + (let ((icu (assoc-ref inputs "icu4c")) + (python (assoc-ref inputs "python")) + (out (assoc-ref outputs "out"))) + (substitute* '("libs/config/configure" + "libs/spirit/classic/phoenix/test/runtest.sh" + "tools/build/src/engine/execunix.c" + "tools/build/src/engine/Jambase" + "tools/build/src/engine/jambase.c") + (("/bin/sh") (which "sh"))) + + (setenv "SHELL" (which "sh")) + (setenv "CONFIG_SHELL" (which "sh")) + + (substitute* "tools/build/src/tools/python.jam" + (("include/python\\$\\(version\\)") + "include/python$(version)m")) + + (invoke "./bootstrap.sh" + (string-append "--prefix=" out) + ;; Auto-detection looks for dependencies only + ;; in traditional install locations. + (string-append "--with-icu=" icu) + (string-append "--with-python=" python "/bin/python3") + (string-append "--with-python-root=" python) + "--with-python-version=3.7" + "--with-toolset=gcc")))) + (replace 'provide-libboost_python + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (with-directory-excursion (string-append out "/lib") + (symlink "libboost_python37.so" "libboost_python.so") + ;; Some packages also look for libboost_python3.so + (symlink "libboost_python37.so" "libboost_python3.so")) + #t))))))))) + +(define-public boost-static + (package + (inherit boost) + (name "boost-static") + (arguments + (substitute-keyword-arguments (package-arguments boost) + ((#:make-flags flags) + `(cons "link=static" (delete "link=shared" ,flags))) + ((#:phases phases) + `(modify-phases ,phases + (replace 'provide-libboost_python + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (with-directory-excursion (string-append out "/lib") + (symlink "libboost_python27.a" "libboost_python.a")) + #t))))))))) + (define-public boost-for-mysql ;; Older version for MySQL 5.7.23. (package @@ -180,6 +252,34 @@ and events and other thread related facilities. Boost.Sync originated from Boost.Thread.") (license (license:x11-style "https://www.boost.org/LICENSE_1_0.txt"))))) +(define-public boost-signals2 + (package + (name "boost-signals2") + (version (package-version boost)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/boostorg/signals2.git") + (commit (string-append "boost-" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1nayaqshhzr1n6jj43bpvvay36d5gn075h0b95psii5x8ingszdk")))) + (build-system trivial-build-system) + (arguments + `(#:modules ((guix build utils)) + #:builder + (begin + (use-modules (guix build utils)) + (let ((source (assoc-ref %build-inputs "source"))) + (copy-recursively (string-append source "/include") + (string-append %output "/include")))))) + (home-page "https://github.com/boostorg/signals2") + (synopsis "Boost.Signals2 library") + (description "The Boost.Signals2 library is an implementation of a managed +signals and slots system.") + (license (license:x11-style "https://www.boost.org/LICENSE_1_0.txt")))) + (define-public mdds (package (name "mdds")