gnu: qtbase: Specify configure flags via the #:configure-flags argument.
* gnu/packages/qt.scm (qtbase): Delete trailing #t. [phases]{configure}: Print build directory and configure flags. Move configure flags to... [#:configure-flags]: ... this new argument.
This commit is contained in:
parent
206193fec9
commit
3245d72bcd
@ -303,25 +303,24 @@ system, and the core design of Django is reused in Grantlee.")
|
||||
(name "qtbase")
|
||||
(version "5.15.2")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (qt5-urls name version))
|
||||
(sha256
|
||||
(base32
|
||||
"1y70libf2x52lpbqvhz10lpk7nyl1ajjwzjxly9pjdpfj4jsv7wh"))
|
||||
;; Use TZDIR to avoid depending on package "tzdata".
|
||||
(patches (search-patches "qtbase-use-TZDIR.patch"
|
||||
"qtbase-moc-ignore-gcc-macro.patch"
|
||||
"qtbase-absolute-runpath.patch"))
|
||||
(modules '((guix build utils)))
|
||||
(snippet
|
||||
(method url-fetch)
|
||||
(uri (qt5-urls name version))
|
||||
(sha256
|
||||
(base32
|
||||
"1y70libf2x52lpbqvhz10lpk7nyl1ajjwzjxly9pjdpfj4jsv7wh"))
|
||||
;; Use TZDIR to avoid depending on package "tzdata".
|
||||
(patches (search-patches "qtbase-use-TZDIR.patch"
|
||||
"qtbase-moc-ignore-gcc-macro.patch"
|
||||
"qtbase-absolute-runpath.patch"))
|
||||
(modules '((guix build utils)))
|
||||
(snippet
|
||||
;; corelib uses bundled harfbuzz, md4, md5, sha3
|
||||
'(begin
|
||||
(with-directory-excursion "src/3rdparty"
|
||||
(for-each delete-file-recursively
|
||||
(list "double-conversion" "freetype" "harfbuzz-ng"
|
||||
"libpng" "libjpeg" "pcre2" "sqlite" "xcb"
|
||||
"zlib"))
|
||||
#t)))))
|
||||
'(begin
|
||||
(with-directory-excursion "src/3rdparty"
|
||||
(for-each delete-file-recursively
|
||||
(list "double-conversion" "freetype" "harfbuzz-ng"
|
||||
"libpng" "libjpeg" "pcre2" "sqlite" "xcb"
|
||||
"zlib")))))))
|
||||
(build-system gnu-build-system)
|
||||
(outputs '("out" "debug"))
|
||||
(propagated-inputs
|
||||
@ -383,7 +382,56 @@ system, and the core design of Django is reused in Grantlee.")
|
||||
("vulkan-headers" ,vulkan-headers)
|
||||
("ruby" ,ruby)))
|
||||
(arguments
|
||||
`(#:phases
|
||||
`(#:configure-flags
|
||||
(let ((out (assoc-ref %outputs "out")))
|
||||
(list "-verbose"
|
||||
"-prefix" out
|
||||
"-docdir" (string-append out "/share/doc/qt5")
|
||||
"-headerdir" (string-append out "/include/qt5")
|
||||
"-archdatadir" (string-append out "/lib/qt5")
|
||||
"-datadir" (string-append out "/share/qt5")
|
||||
"-examplesdir" (string-append
|
||||
out "/share/doc/qt5/examples")
|
||||
"-opensource"
|
||||
"-confirm-license"
|
||||
|
||||
;; Later stripped into the :debug output.
|
||||
"-force-debug-info"
|
||||
|
||||
;; These features require higher versions of Linux than the
|
||||
;; minimum version of the glibc. See
|
||||
;; src/corelib/global/minimum-linux_p.h. By disabling these
|
||||
;; features Qt5 applications can be used on the oldest
|
||||
;; kernels that the glibc supports, including the RHEL6
|
||||
;; (2.6.32) and RHEL7 (3.10) kernels.
|
||||
"-no-feature-getentropy" ; requires Linux 3.17
|
||||
"-no-feature-renameat2" ; requires Linux 3.16
|
||||
|
||||
;; Do not build examples; if desired, these could go
|
||||
;; into a separate output, but for the time being, we
|
||||
;; prefer to save the space and build time.
|
||||
"-no-compile-examples"
|
||||
;; Most "-system-..." are automatic, but some use
|
||||
;; the bundled copy by default.
|
||||
"-system-sqlite"
|
||||
"-system-harfbuzz"
|
||||
"-system-pcre"
|
||||
;; explicitly link with openssl instead of dlopening it
|
||||
"-openssl-linked"
|
||||
;; explicitly link with dbus instead of dlopening it
|
||||
"-dbus-linked"
|
||||
;; don't use the precompiled headers
|
||||
"-no-pch"
|
||||
;; drop special machine instructions that do not have
|
||||
;; runtime detection
|
||||
,@(if (string-prefix? "x86_64"
|
||||
(or (%current-target-system)
|
||||
(%current-system)))
|
||||
'()
|
||||
'("-no-sse2"))
|
||||
"-no-mips_dsp"
|
||||
"-no-mips_dspr2"))
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-after 'configure 'patch-bin-sh
|
||||
(lambda _
|
||||
@ -391,18 +439,18 @@ system, and the core design of Django is reused in Grantlee.")
|
||||
"configure"
|
||||
"mkspecs/features/qt_functions.prf"
|
||||
"qmake/library/qmakebuiltins.cpp")
|
||||
(("/bin/sh") (which "sh")))
|
||||
#t))
|
||||
(("/bin/sh") (which "sh")))))
|
||||
(add-after 'configure 'patch-xdg-open
|
||||
(lambda _
|
||||
(substitute* '("src/platformsupport/services/genericunix/qgenericunixservices.cpp")
|
||||
(("^.*const char \\*browsers.*$" all)
|
||||
(string-append "*browser = QStringLiteral(\""
|
||||
(which "xdg-open")
|
||||
"\"); return true; \n" all)))
|
||||
#t))
|
||||
(("^.*const char \\*browsers.*$" all)
|
||||
(string-append "*browser = QStringLiteral(\""
|
||||
(which "xdg-open")
|
||||
"\"); return true; \n" all)))))
|
||||
(replace 'configure
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
;; Overridden to not pass "--enable-fast-install", which makes the
|
||||
;; configure process fail.
|
||||
(lambda* (#:key outputs configure-flags #:allow-other-keys)
|
||||
(let ((out (assoc-ref outputs "out")))
|
||||
(substitute* "configure"
|
||||
(("/bin/pwd") (which "pwd")))
|
||||
@ -415,57 +463,9 @@ system, and the core design of Django is reused in Grantlee.")
|
||||
;; components can be installed in different places.
|
||||
(substitute* (find-files "." ".*\\.cmake")
|
||||
(("NO_DEFAULT_PATH") ""))
|
||||
;; do not pass "--enable-fast-install", which makes the
|
||||
;; configure process fail
|
||||
(invoke
|
||||
"./configure"
|
||||
"-verbose"
|
||||
"-prefix" out
|
||||
"-docdir" (string-append out "/share/doc/qt5")
|
||||
"-headerdir" (string-append out "/include/qt5")
|
||||
"-archdatadir" (string-append out "/lib/qt5")
|
||||
"-datadir" (string-append out "/share/qt5")
|
||||
"-examplesdir" (string-append
|
||||
out "/share/doc/qt5/examples")
|
||||
"-opensource"
|
||||
"-confirm-license"
|
||||
|
||||
;; Later stripped into the :debug output.
|
||||
"-force-debug-info"
|
||||
|
||||
;; These features require higher versions of Linux than the
|
||||
;; minimum version of the glibc. See
|
||||
;; src/corelib/global/minimum-linux_p.h. By disabling these
|
||||
;; features Qt5 applications can be used on the oldest
|
||||
;; kernels that the glibc supports, including the RHEL6
|
||||
;; (2.6.32) and RHEL7 (3.10) kernels.
|
||||
"-no-feature-getentropy" ; requires Linux 3.17
|
||||
"-no-feature-renameat2" ; requires Linux 3.16
|
||||
|
||||
;; Do not build examples; if desired, these could go
|
||||
;; into a separate output, but for the time being, we
|
||||
;; prefer to save the space and build time.
|
||||
"-no-compile-examples"
|
||||
;; Most "-system-..." are automatic, but some use
|
||||
;; the bundled copy by default.
|
||||
"-system-sqlite"
|
||||
"-system-harfbuzz"
|
||||
"-system-pcre"
|
||||
;; explicitly link with openssl instead of dlopening it
|
||||
"-openssl-linked"
|
||||
;; explicitly link with dbus instead of dlopening it
|
||||
"-dbus-linked"
|
||||
;; don't use the precompiled headers
|
||||
"-no-pch"
|
||||
;; drop special machine instructions that do not have
|
||||
;; runtime detection
|
||||
,@(if (string-prefix? "x86_64"
|
||||
(or (%current-target-system)
|
||||
(%current-system)))
|
||||
'()
|
||||
'("-no-sse2"))
|
||||
"-no-mips_dsp"
|
||||
"-no-mips_dspr2"))))
|
||||
(format #t "build directory: ~s~%" (getcwd))
|
||||
(format #t "configure flags: ~s~%" configure-flags)
|
||||
(apply invoke "./configure" configure-flags))))
|
||||
(add-after 'install 'patch-mkspecs
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(let* ((out (assoc-ref outputs "out"))
|
||||
@ -497,8 +497,7 @@ system, and the core design of Django is reused in Grantlee.")
|
||||
'("device_config.prf" "moc.prf" "qt_build_config.prf"
|
||||
"qt_config.prf" "winrt/package_manifest.prf"))
|
||||
(("\\$\\$\\[QT_HOST_DATA/get\\]") archdata)
|
||||
(("\\$\\$\\[QT_HOST_DATA/src\\]") archdata))
|
||||
#t)))
|
||||
(("\\$\\$\\[QT_HOST_DATA/src\\]") archdata)))))
|
||||
(add-after 'patch-mkspecs 'patch-prl-files
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(let ((out (assoc-ref outputs "out")))
|
||||
@ -507,8 +506,7 @@ system, and the core design of Django is reused in Grantlee.")
|
||||
;; on context. See <https://bugs.gnu.org/38405>
|
||||
(substitute* (find-files (string-append out "/lib") "\\.prl$")
|
||||
(("\\$\\$\\[QT_INSTALL_LIBS\\]")
|
||||
(string-append out "/lib")))
|
||||
#t)))
|
||||
(string-append out "/lib"))))))
|
||||
(add-after 'unpack 'patch-paths
|
||||
;; Use the absolute paths for dynamically loaded libs, otherwise
|
||||
;; the lib will be searched in LD_LIBRARY_PATH which typically is
|
||||
@ -520,7 +518,7 @@ system, and the core design of Django is reused in Grantlee.")
|
||||
(substitute* '("src/network/kernel/qdnslookup_unix.cpp"
|
||||
"src/network/kernel/qhostinfo_unix.cpp")
|
||||
(("^\\s*(lib.setFileName\\(QLatin1String\\(\")(resolv\"\\)\\);)" _ a b)
|
||||
(string-append a glibc "/lib/lib" b))))
|
||||
(string-append a glibc "/lib/lib" b))))
|
||||
;; libGL
|
||||
(substitute* "src/plugins/platforms/xcb/gl_integrations/xcb_glx/qglxintegration.cpp"
|
||||
(("^\\s*(QLibrary lib\\(QLatin1String\\(\")(GL\"\\)\\);)" _ a b)
|
||||
@ -530,8 +528,7 @@ system, and the core design of Django is reused in Grantlee.")
|
||||
(("^\\s*(QLibrary xcursorLib\\(QLatin1String\\(\")(Xcursor\"\\), 1\\);)" _ a b)
|
||||
(string-append a (assoc-ref inputs "libxcursor") "/lib/lib" b))
|
||||
(("^\\s*(xcursorLib.setFileName\\(QLatin1String\\(\")(Xcursor\"\\)\\);)" _ a b)
|
||||
(string-append a (assoc-ref inputs "libxcursor") "/lib/lib" b)))
|
||||
#t)))))
|
||||
(string-append a (assoc-ref inputs "libxcursor") "/lib/lib" b))))))))
|
||||
(native-search-paths
|
||||
(list (search-path-specification
|
||||
(variable "QMAKEPATH")
|
||||
|
Loading…
Reference in New Issue
Block a user