gnu: gobject-introspection: look for 'gcc' when no compiler seems available.

* gnu/packages/patches/gobject-introspection.patch: New file.
This commit is contained in:
Cyril Roelandt 2013-10-16 03:47:56 +02:00
parent 3e778ad3af
commit 503c5f6d5d
3 changed files with 19 additions and 3 deletions

View File

@ -244,6 +244,7 @@ dist_patch_DATA = \
gnu/packages/patches/glibc-bootstrap-system.patch \
gnu/packages/patches/glibc-ldd-x86_64.patch \
gnu/packages/patches/glibc-make-4.0.patch \
gnu/packages/patches/gobject-introspection-cc.patch \
gnu/packages/patches/grub-gets-undeclared.patch \
gnu/packages/patches/gstreamer-0.10-bison3.patch \
gnu/packages/patches/gstreamer-0.10-silly-test.patch \

View File

@ -176,7 +176,8 @@ dynamic loading, and an object system.")
"/gobject-introspection-"
version ".tar.xz"))
(sha256
(base32 "0wvxyvgajmms2bb6k3pf1rdpnd79xdxamykzvxzmcyn1ag9yax9m"))))
(base32 "0wvxyvgajmms2bb6k3pf1rdpnd79xdxamykzvxzmcyn1ag9yax9m"))
(patches (list (search-patch "gobject-introspection-cc.patch")))))
(build-system gnu-build-system)
(inputs
`(("bison" ,bison)
@ -192,8 +193,8 @@ dynamic loading, and an object system.")
'configure
(lambda* (#:key #:allow-other-keys #:rest args)
(let ((configure (assoc-ref %standard-phases 'configure)))
;; giscanner/sourcescanner.py looks for 'CC', let's set it here.
(setenv "CC" "gcc")
(substitute* "giscanner/sourcescanner.py"
(("GUIX_GCC_PATH") (which "gcc")))
(apply configure args)))
%standard-phases)))
(home-page "https://wiki.gnome.org/GObjectIntrospection")

View File

@ -0,0 +1,14 @@
--- a/giscanner/sourcescanner.py 2013-12-15 23:03:54.002937000 +0100
+++ b/giscanner/sourcescanner.py 2013-12-15 23:04:50.322937000 +0100
@@ -277,6 +277,11 @@
defines = ['__GI_SCANNER__']
undefs = []
cpp_args = os.environ.get('CC', 'cc').split() # support CC="ccache gcc"
+ if (cpp_args == ['cc'] and
+ not any(map(lambda x: os.access(os.path.join(x, 'cc'), os.X_OK),
+ os.environ.get('PATH').split(':')))):
+ cpp_args = ['GUIX_GCC_PATH']
+
if 'cl' in cpp_args:
# The Microsoft compiler/preprocessor (cl) does not accept
# source input from stdin (the '-' flag), so we need