forked from mirrors/nixpkgs
75d2a7dc4d
First, closure size is reduced by including the static libraries in $out instead of trying to move them to $dev. The Qt build system cannot handle libraries being split between different prefixes. Previously, the static libraries were moved into $dev and the shared libraries were symlinked from $out to $dev to fool the build system. However, this causes $dev to be retained at runtime. Instead, we now keep the static libraries in $out. Fortunately, the static libraries are not very large anyway. Second, we build with QT_NO_DEBUG defined unless debugging is enabled. This causes some assertions to be removed; when assertions are included, they pull paths from $dev into the runtime closure by using the __FILE__ macro. We also now patch qtbase to remove even more assertions when QT_NO_DEBUG is defined.
34 lines
1.4 KiB
Diff
34 lines
1.4 KiB
Diff
diff --git a/src/qml/qml/qqmlimport.cpp b/src/qml/qml/qqmlimport.cpp
|
|
index a7cafa1a9..e17ffd35b 100644
|
|
--- a/src/qml/qml/qqmlimport.cpp
|
|
+++ b/src/qml/qml/qqmlimport.cpp
|
|
@@ -1737,6 +1737,15 @@ QQmlImportDatabase::QQmlImportDatabase(QQmlEngine *e)
|
|
QString installImportsPath = QLibraryInfo::location(QLibraryInfo::Qml2ImportsPath);
|
|
addImportPath(installImportsPath);
|
|
|
|
+ // Add import paths derived from PATH
|
|
+ const QStringList paths = QFile::decodeName(qgetenv("PATH")).split(':');
|
|
+ const QString qmldir = QStringLiteral("../" NIXPKGS_QML2_IMPORT_PREFIX);
|
|
+ for (const QString &path: paths) {
|
|
+ if (!path.isEmpty()) {
|
|
+ addImportPath(QDir::cleanPath(path + QDir::separator() + qmldir));
|
|
+ }
|
|
+ }
|
|
+
|
|
// env import paths
|
|
if (Q_UNLIKELY(!qEnvironmentVariableIsEmpty("QML2_IMPORT_PATH"))) {
|
|
const QString envImportPath = qEnvironmentVariable("QML2_IMPORT_PATH");
|
|
diff --git a/tools/qmlcachegen/qmlcache.prf b/tools/qmlcachegen/qmlcache.prf
|
|
index 330da358b..cdf570205 100644
|
|
--- a/tools/qmlcachegen/qmlcache.prf
|
|
+++ b/tools/qmlcachegen/qmlcache.prf
|
|
@@ -44,7 +44,7 @@ defineReplace(qmlCacheOutputFileName) {
|
|
}
|
|
|
|
qmlcacheinst.base = $$QMLCACHE_DESTDIR
|
|
-qmlcacheinst.path = $$[QT_INSTALL_QML]/$$TARGETPATH
|
|
+qmlcacheinst.path = $$NIX_OUTPUT_QML/$$TARGETPATH
|
|
qmlcacheinst.CONFIG = no_check_exist
|
|
|
|
qmlcachegen.input = CACHEGEN_FILES
|