gnu: qtbase: Honor CMAKE_PREFIX_PATH.
* gnu/packages/qt.scm (qtbase)[phases]{honor-CMAKE_PREFIX_PATH}: New phase.
This commit is contained in:
parent
663f12ea24
commit
d48c98cd12
1 changed files with 21 additions and 0 deletions
|
@ -618,6 +618,27 @@ developers using C++ or QML, a CSS & JavaScript like language.")
|
||||||
"-DFEATURE_mips_dspr2=OFF")))
|
"-DFEATURE_mips_dspr2=OFF")))
|
||||||
((#:phases phases)
|
((#:phases phases)
|
||||||
#~(modify-phases #$phases
|
#~(modify-phases #$phases
|
||||||
|
(add-after 'unpack 'honor-CMAKE_PREFIX_PATH
|
||||||
|
(lambda _
|
||||||
|
;; The configuration files for other Qt packages are searched
|
||||||
|
;; through a call to "find_package" in Qt5Config.cmake, which
|
||||||
|
;; disables the use of CMAKE_PREFIX_PATH via the parameter
|
||||||
|
;; "NO_DEFAULT_PATH". Re-enable it so that the different
|
||||||
|
;; components can be installed in different places.
|
||||||
|
(substitute* (find-files "." "\\.cmake(\\.in)?$")
|
||||||
|
(("\\bNO_DEFAULT_PATH\\b") ""))
|
||||||
|
;; Because Qt goes against the grain of CMake and set
|
||||||
|
;; NO_DEFAULT_PATH, it needs to invent yet another variable
|
||||||
|
;; to do what CMAKE_PREFIX_PATH could have done:
|
||||||
|
;; QT_ADDITIONAL_PACKAGES_PREFIX_PATH. Since we patch out
|
||||||
|
;; the NO_DEFAULT_PATH, we can set the default value of
|
||||||
|
;; QT_ADDITIONAL_PACKAGES_PREFIX_PATH to that of
|
||||||
|
;; CMAKE_PREFIX_PATH to ensure tools such as
|
||||||
|
;; 'qmlimportscanner' from qtdeclarative work out of the
|
||||||
|
;; box.
|
||||||
|
(substitute* "cmake/QtConfig.cmake.in"
|
||||||
|
(("(set\\(QT_ADDITIONAL_PACKAGES_PREFIX_PATH )\"\"" _ head)
|
||||||
|
(string-append head "\"$ENV{CMAKE_PREFIX_PATH}\"")))))
|
||||||
(delete 'patch-bin-sh)
|
(delete 'patch-bin-sh)
|
||||||
(delete 'patch-xdg-open)
|
(delete 'patch-xdg-open)
|
||||||
(add-after 'patch-paths 'patch-more-paths
|
(add-after 'patch-paths 'patch-more-paths
|
||||||
|
|
Reference in a new issue