Merge pull request #63707 from matthewbauer/fix-63043

Qt5 + Darwin fixes
This commit is contained in:
Matthew Bauer 2019-06-23 20:37:54 -04:00 committed by GitHub
commit e49729f9b1
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
9 changed files with 106 additions and 4 deletions

View File

@ -69,3 +69,18 @@ index 4318b16f..d60db4ff 100644
_qt5_LinguistTools_check_file_exists(${imported_location}) _qt5_LinguistTools_check_file_exists(${imported_location})
set_target_properties(Qt5::lconvert PROPERTIES set_target_properties(Qt5::lconvert PROPERTIES
--- a/src/macdeployqt/shared/shared.cpp
+++ b/src/macdeployqt/shared/shared.cpp
@@ -1241,6 +1241,12 @@ bool deployQmlImports(const QString &appBundlePath, DeploymentInfo deploymentInf
if (!QFile(qmlImportScannerPath).exists())
qmlImportScannerPath = QCoreApplication::applicationDirPath() + "/qmlimportscanner";
+#ifdef NIXPKGS_QMLIMPORTSCANNER
+ // Fallback: Nixpkgs hardcoded path
+ if (!QFile(qmlImportScannerPath).exists())
+ qmlImportScannerPath = NIXPKGS_QMLIMPORTSCANNER;
+#endif
+
// Verify that we found a qmlimportscanner binary
if (!QFile(qmlImportScannerPath).exists()) {
LogError() << "qmlimportscanner not found at" << qmlImportScannerPath;

View File

@ -66,6 +66,7 @@ let
./qtwebkit-darwin-no-readline.patch ./qtwebkit-darwin-no-readline.patch
./qtwebkit-darwin-no-qos-classes.patch ./qtwebkit-darwin-no-qos-classes.patch
]; ];
qttools = [ ./qttools.patch ];
}; };
mkDerivation = mkDerivation =

View File

@ -1094,3 +1094,63 @@ index 99d87e2e46..a4eab2aa72 100644
!!ELSE !!ELSE
set(imported_location \"$${CMAKE_BIN_DIR}uic$$CMAKE_BIN_SUFFIX\") set(imported_location \"$${CMAKE_BIN_DIR}uic$$CMAKE_BIN_SUFFIX\")
!!ENDIF !!ENDIF
diff --git a/src/corelib/kernel/qcore_mac_p.h b/src/corelib/kernel/qcore_mac_p.h
index b14a494296..779c4eda95 100644
--- a/src/corelib/kernel/qcore_mac_p.h
+++ b/src/corelib/kernel/qcore_mac_p.h
@@ -211,7 +211,7 @@ private:
// --------------------------------------------------------------------------
-#if !defined(QT_BOOTSTRAPPED)
+#if 0
QT_END_NAMESPACE
#include <os/activity.h>
@@ -289,7 +289,19 @@ QT_MAC_WEAK_IMPORT(_os_activity_current);
#define QT_APPLE_SCOPED_LOG_ACTIVITY(...) QAppleLogActivity scopedLogActivity = QT_APPLE_LOG_ACTIVITY(__VA_ARGS__).enter();
-#endif // !defined(QT_BOOTSTRAPPED)
+#else // !defined(QT_BOOTSTRAPPED)
+
+#define QT_APPLE_LOG_ACTIVITY_WITH_PARENT3(...)
+#define QT_APPLE_LOG_ACTIVITY_WITH_PARENT2(...)
+#define QT_APPLE_LOG_ACTIVITY_WITH_PARENT(...)
+
+#define QT_APPLE_LOG_ACTIVITY2(...)
+#define QT_APPLE_LOG_ACTIVITY1(...)
+#define QT_APPLE_LOG_ACTIVITY(...)
+
+#define QT_APPLE_SCOPED_LOG_ACTIVITY(...)
+
+#endif
// -------------------------------------------------------------------------
diff --git a/src/testlib/qappletestlogger.cpp b/src/testlib/qappletestlogger.cpp
index 2c1005ad80..244147ea7d 100644
--- a/src/testlib/qappletestlogger.cpp
+++ b/src/testlib/qappletestlogger.cpp
@@ -43,7 +43,7 @@
QT_BEGIN_NAMESPACE
-#if defined(QT_USE_APPLE_UNIFIED_LOGGING)
+#if defined(QT_USE_APPLE_UNIFIED_LOGGING) && 0
using namespace QTestPrivate;
diff --git a/src/testlib/qtestlog.cpp b/src/testlib/qtestlog.cpp
index 1268730cc6..a50e9b0764 100644
--- a/src/testlib/qtestlog.cpp
+++ b/src/testlib/qtestlog.cpp
@@ -524,7 +524,7 @@ void QTestLog::addLogger(LogMode mode, const char *filename)
#endif
}
-#if defined(QT_USE_APPLE_UNIFIED_LOGGING)
+#if defined(QT_USE_APPLE_UNIFIED_LOGGING) && 0
// Logger that also feeds messages to AUL. It needs to wrap the existing
// logger, as it needs to be able to short circuit the existing logger
// in case AUL prints to stderr.

View File

@ -0,0 +1,15 @@
--- a/src/macdeployqt/shared/shared.cpp
+++ b/src/macdeployqt/shared/shared.cpp
@@ -1241,6 +1241,12 @@ bool deployQmlImports(const QString &appBundlePath, DeploymentInfo deploymentInf
if (!QFile(qmlImportScannerPath).exists())
qmlImportScannerPath = QCoreApplication::applicationDirPath() + "/qmlimportscanner";
+#ifdef NIXPKGS_QMLIMPORTSCANNER
+ // Fallback: Nixpkgs hardcoded path
+ if (!QFile(qmlImportScannerPath).exists())
+ qmlImportScannerPath = NIXPKGS_QMLIMPORTSCANNER;
+#endif
+
// Verify that we found a qmlimportscanner binary
if (!QFile(qmlImportScannerPath).exists()) {
LogError() << "qmlimportscanner not found at" << qmlImportScannerPath;

View File

@ -56,7 +56,7 @@ stdenv.mkDerivation {
# TODO: move to buildInputs, this should not be propagated. # TODO: move to buildInputs, this should not be propagated.
AGL AppKit ApplicationServices Carbon Cocoa CoreAudio CoreBluetooth AGL AppKit ApplicationServices Carbon Cocoa CoreAudio CoreBluetooth
CoreLocation CoreServices DiskArbitration Foundation OpenGL CoreLocation CoreServices DiskArbitration Foundation OpenGL
darwin.libobjc libiconv darwin.libobjc libiconv MetalKit
] ]
else else
[ [

View File

@ -1,4 +1,4 @@
{ qtModule, stdenv, lib, qtbase }: { qtModule, stdenv, lib, qtbase, qtdeclarative }:
with lib; with lib;
@ -32,5 +32,8 @@ qtModule {
"bin/macdeployqt" "bin/macdeployqt"
]; ];
NIX_CFLAGS_COMPILE =
lib.optional stdenv.isDarwin ''-DNIXPKGS_QMLIMPORTSCANNER="${qtdeclarative.dev}/bin/qmlimportscanner"'';
setupHook = ../hooks/qttools-setup-hook.sh; setupHook = ../hooks/qttools-setup-hook.sh;
} }

View File

@ -211,6 +211,13 @@ in rec {
--replace "QuartzCore/../Frameworks/CoreImage.framework/Headers" "CoreImage" --replace "QuartzCore/../Frameworks/CoreImage.framework/Headers" "CoreImage"
''; '';
}); });
MetalKit = stdenv.lib.overrideDerivation super.MetalKit (drv: {
installPhase = drv.installPhase + ''
mkdir -p $out/include/simd
cp ${lib.getDev sdk}/include/simd/*.h $out/include/simd/
'';
});
}; };
bareFrameworks = stdenv.lib.mapAttrs framework (import ./frameworks.nix { bareFrameworks = stdenv.lib.mapAttrs framework (import ./frameworks.nix {

View File

@ -74,6 +74,8 @@ with frameworks; with libs; {
MediaAccessibility = [ CF CoreGraphics CoreText QuartzCore ]; MediaAccessibility = [ CF CoreGraphics CoreText QuartzCore ];
MediaToolbox = [ AudioToolbox AudioUnit CF CoreMedia ]; MediaToolbox = [ AudioToolbox AudioUnit CF CoreMedia ];
Metal = []; Metal = [];
MetalKit = [ ModelIO Metal ];
ModelIO = [ ];
NetFS = [ CF ]; NetFS = [ CF ];
OSAKit = [ Carbon ]; OSAKit = [ Carbon ];
OpenAL = []; OpenAL = [];

View File

@ -12828,8 +12828,7 @@ in
libsForQt512 = recurseIntoAttrs (lib.makeScope qt512.newScope mkLibsForQt5); libsForQt512 = recurseIntoAttrs (lib.makeScope qt512.newScope mkLibsForQt5);
# TODO bump to 5.12 on darwin once it's not broken qt5 = qt512;
qt5 = if stdenv.isDarwin then qt511 else qt512;
libsForQt5 = if stdenv.isDarwin then libsForQt511 else libsForQt512; libsForQt5 = if stdenv.isDarwin then libsForQt511 else libsForQt512;
qt5ct = libsForQt5.callPackage ../tools/misc/qt5ct { }; qt5ct = libsForQt5.callPackage ../tools/misc/qt5ct { };