summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTobias Markmann <tm@ayena.de>2018-05-17 14:55:13 (GMT)
committerTobias Markmann <tm@ayena.de>2018-05-17 14:55:13 (GMT)
commit158e5b729c6379f1e3bec64b7e3c4a7aa7cf06a5 (patch)
tree27296fe5c4efefdd98acfdcf5fc2de4a1ea8f566
parentb7849f50877dffd2755445a986d856340eed59c2 (diff)
downloadswift-158e5b729c6379f1e3bec64b7e3c4a7aa7cf06a5.zip
swift-158e5b729c6379f1e3bec64b7e3c4a7aa7cf06a5.tar.bz2
Add support for QtWebKit 5.6 and newer to packaging on Windows
Qt's windeployqt tool does not know about QtWebKit's dependencies, as it is not shipped together anymore and QtWebKit is not maintained by the same maintainers as Qt anymore. Test-Information: With this patch ./scons dist=1 on Windows with latest Qt 5.10 and QtWebKit 5.212.0 Alpha 2 creates a Swift/QtUI/Swift directory with a running Swift.exe inside. Without this patch Swift.exe crashes due to missing libxml2.dll and missing libxslt.dll. Change-Id: I2f8e658bf417bde20648618bac19b1c148831e1e
-rw-r--r--BuildTools/SCons/Tools/WindowsBundle.py14
1 files changed, 13 insertions, 1 deletions
diff --git a/BuildTools/SCons/Tools/WindowsBundle.py b/BuildTools/SCons/Tools/WindowsBundle.py
index 20d41ff..b0f7772 100644
--- a/BuildTools/SCons/Tools/WindowsBundle.py
+++ b/BuildTools/SCons/Tools/WindowsBundle.py
@@ -83,6 +83,19 @@ def generate(env) :
qtmappings = captureWinDeployQtMapping()
assert(qtmappings)
+ # Add QtWebKit dependencies.
+ # This is needed as QtWebKit since 5.6 is developed and released seperately
+ # of Qt and windeployqt does not know about its dependencies anymore.
+ for map_from, map_to in qtmappings:
+ if map_to == "Qt5WebKit.dll":
+ # hidden Qt5WebKit dependencies
+ hidden_dependencies = ["libxml2.dll", "libxslt.dll"]
+ for dependency in hidden_dependencies:
+ dependency_from_path = os.path.join(env["QTDIR"], "bin", dependency)
+ if os.path.isfile(dependency_from_path):
+ qtmappings.append((dependency_from_path, dependency))
+ break
+
# handle core DLLs
qt_corelib_regex = re.compile(ur".*bin.*\\(.*)\.dll")
@@ -119,4 +132,3 @@ def generate(env) :
def exists(env) :
return env["PLATFORM"] == "win32"
-