From ee9eafc1df043e6aacfdace1da046a86773dac67 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Thu, 28 Nov 2019 15:10:30 +0100 Subject: gnu: openclonk: Adjust for GCC 7. * gnu/packages/games.scm (openclonk)[arguments]: Add phase 'adjust-backward-cpp-includes'. --- gnu/packages/games.scm | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index dcb8aaf9d2..8955b597e6 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -27,7 +27,7 @@ ;;; Copyright © 2017, 2018, 2019 Tobias Geerinckx-Rice ;;; Copyright © 2017, 2019 nee ;;; Copyright © 2017 Clément Lassieur -;;; Copyright © 2017 Marius Bakke +;;; Copyright © 2017, 2019 Marius Bakke ;;; Copyright © 2017, 2018 Rutger Helling ;;; Copyright © 2017 Roel Janssen ;;; Copyright © 2017, 2018, 2019 Nicolas Goaziou @@ -6888,6 +6888,22 @@ a fortress beyond the forbidden swamp.") (("PATH_SUFFIXES \"src\" \"gtest\"") "PATH_SUFFIXES \"src\"")) #t)) + (add-after 'unpack 'adjust-backward-cpp-includes + (lambda _ + ;; XXX: The bundled backward-cpp exports a CMake "interface" + ;; that includes external libraries such as libdl from glibc. + ;; By default, CMake interface includes are treated as "system + ;; headers", and GCC behaves poorly when glibc is passed as a + ;; system header (causing #include_next failures). + + ;; Here we prevent targets that consume the Backward::Backward + ;; interface from treating it as "system includes". + (substitute* "CMakeLists.txt" + (("target_link_libraries\\((.+) Backward::Backward\\)" all target) + (string-append "set_property(TARGET " target " PROPERTY " + "NO_SYSTEM_FROM_IMPORTED true)\n" + all))) + #t)) (add-after 'unpack 'add-libiberty ;; Build fails upon linking executables without this. (lambda _ -- cgit v1.2.3