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 /BuildTools/SCons
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
Diffstat (limited to 'BuildTools/SCons')
-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"
-